ELT.Gateway/ELT.Client/Kasko/KaskoManager.cs
2021-02-20 16:19:47 +03:00

83 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using ELT.Models;
using ELTKasko;
namespace ELT.Client.Kasko
{
public class KaskoManager
{
private readonly EltSoap _eltKaskoSoap;
public KaskoManager()
{
_eltKaskoSoap = new EltSoapClient();
}
public Dictionary<string, KASKOCalculationResult> CalculateKasko(CalculateKaskoRequest calculateKaskoRequest)
{
var authInfo = new AuthInfo
{
Login = Environment.GetEnvironmentVariable("eltLogin"),
Password = Environment.GetEnvironmentVariable("eltPassword")
};
var eltParams = calculateKaskoRequest.ELTParams;
//KLADR
var kladr = "0";
var eltRegions = _eltKaskoSoap.GetRegionsExt(new GetRegionsExtRequest());
var eltRegion = eltRegions.GetRegionsExtResult.FirstOrDefault(x =>
x.Name.Contains(calculateKaskoRequest.Preparams.RegionName.Split(" ")[0])
);
if (eltRegion != null)
{
if (eltRegion.Kladr != null)
{
kladr = eltRegion.Kladr;
}
else
{
if (eltRegion.Id != null)
{
var eltCities = _eltKaskoSoap.GetCitiesExt(new GetCitiesExtRequest {RegionId = eltRegion.Id});
var eltCity = eltCities.GetCitiesExtResult.FirstOrDefault(x =>
x.Name.Contains(calculateKaskoRequest.Preparams.CityName.Split(" ")[0]));
if (eltCity != null) kladr = eltCity.Kladr;
}
}
}
eltParams.UsageCityKLADR = kladr;
//KLADR
//CAR
var mappedCars = _eltKaskoSoap.MappedCars(new MappedCarsRequest
{
Marka = calculateKaskoRequest.Preparams.BrandId,
Model = calculateKaskoRequest.Preparams.ModelId
});
eltParams.Mark = mappedCars.Mark;
eltParams.Model = mappedCars.Model;
//CAR
var result = new Dictionary<string, KASKOCalculationResult>();
foreach (var companyId in calculateKaskoRequest.CompanyIds)
try
{
var res = _eltKaskoSoap.PreliminaryKASKOCalculation(authInfo, null, companyId, null, null, null,
"15", null,
false, null, null, eltParams);
result.Add(companyId, res);
}
catch (Exception)
{
// ignored
}
return result;
}
}
}