2021-04-20 11:15:13 +03:00

44 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using ELT.Client.Models.Insurance;
using ELT.Client.Models.Insurance.Request;
using ELTOsago;
namespace ELT.Client.Managers.Insurance
{
public class OsagoManager : InsuranceManager<CalculateOsagoRequest, OSAGOFullCalculationResponse>
{
private readonly EltSoap _eltOsagoSoap;
public OsagoManager()
{
_eltOsagoSoap = new EltSoapClient();
}
public override Dictionary<string, OSAGOFullCalculationResponse> Calculate(
CalculateOsagoRequest calculateOsagoRequest, ELTPreData preRequestData)
{
var result = new Dictionary<string, OSAGOFullCalculationResponse>();
var osagoParams = calculateOsagoRequest.ELTParams;
osagoParams.UsagePlace = preRequestData.Kladr;
osagoParams.CarInfo.Mark = preRequestData.Brand;
osagoParams.CarInfo.Model = preRequestData.Model;
osagoParams.AuthInfo = new ELTOsago.AuthInfo
{
Login = AuthInfo.Login,
Password = AuthInfo.Password
};
var tasks = calculateOsagoRequest.CompanyIds.Distinct().Select(companyId => new Task(() =>
{
var res = _eltOsagoSoap.OSAGOFullCalculation(osagoParams);
if (string.IsNullOrEmpty(res.Error))
result.Add(companyId, res);
}));
return result;
}
}
}