From 95115b53d73b71549ee916e56a10ea2db8204207 Mon Sep 17 00:00:00 2001 From: Chika Date: Thu, 25 Feb 2021 12:29:02 +0300 Subject: [PATCH] calculate osago --- ELT.Client/Kasko/KaskoManager.cs | 83 ------------------- .../Kasko/Models/CalculateKaskoRequest.cs | 19 ----- ELT.Client/Managers/BaseManager.cs | 20 +++++ ELT.Client/Managers/Insurance/KaskoManager.cs | 58 +++++++++++++ ELT.Client/Managers/Insurance/OsagoManager.cs | 50 +++++++++++ .../Managers/Insurance/PreRequestManager.cs | 60 ++++++++++++++ .../Models/Insurance/BaseInsuranceRequest.cs | 8 ++ ELT.Client/Models/Insurance/ELTPreData.cs | 9 ++ .../Insurance/Kasko/CalculateKaskoRequest.cs | 9 ++ .../Insurance/Osago/CalculateOsagoRequest.cs | 9 ++ ELT.Client/Models/Insurance/Preparams.cs | 10 +++ ELT/Controllers/InsuranceController.cs | 37 +++++++++ ELT/Controllers/KaskoController.cs | 21 ----- 13 files changed, 270 insertions(+), 123 deletions(-) delete mode 100644 ELT.Client/Kasko/KaskoManager.cs delete mode 100644 ELT.Client/Kasko/Models/CalculateKaskoRequest.cs create mode 100644 ELT.Client/Managers/BaseManager.cs create mode 100644 ELT.Client/Managers/Insurance/KaskoManager.cs create mode 100644 ELT.Client/Managers/Insurance/OsagoManager.cs create mode 100644 ELT.Client/Managers/Insurance/PreRequestManager.cs create mode 100644 ELT.Client/Models/Insurance/BaseInsuranceRequest.cs create mode 100644 ELT.Client/Models/Insurance/ELTPreData.cs create mode 100644 ELT.Client/Models/Insurance/Kasko/CalculateKaskoRequest.cs create mode 100644 ELT.Client/Models/Insurance/Osago/CalculateOsagoRequest.cs create mode 100644 ELT.Client/Models/Insurance/Preparams.cs create mode 100644 ELT/Controllers/InsuranceController.cs delete mode 100644 ELT/Controllers/KaskoController.cs diff --git a/ELT.Client/Kasko/KaskoManager.cs b/ELT.Client/Kasko/KaskoManager.cs deleted file mode 100644 index a51d3b2..0000000 --- a/ELT.Client/Kasko/KaskoManager.cs +++ /dev/null @@ -1,83 +0,0 @@ -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 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(); - 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; - } - } -} \ No newline at end of file diff --git a/ELT.Client/Kasko/Models/CalculateKaskoRequest.cs b/ELT.Client/Kasko/Models/CalculateKaskoRequest.cs deleted file mode 100644 index ffe80f8..0000000 --- a/ELT.Client/Kasko/Models/CalculateKaskoRequest.cs +++ /dev/null @@ -1,19 +0,0 @@ -using ELTKasko; - -namespace ELT.Models -{ - public class Preparams - { - public string RegionName { get; set; } - public string CityName { get; set; } - public string BrandId { get; set; } - public string ModelId { get; set; } - } - - public class CalculateKaskoRequest - { - public string[] CompanyIds { get; set; } - public PreliminaryKASKOCalculationParams ELTParams { get; set; } - public Preparams Preparams { get; set; } - } -} \ No newline at end of file diff --git a/ELT.Client/Managers/BaseManager.cs b/ELT.Client/Managers/BaseManager.cs new file mode 100644 index 0000000..1448c98 --- /dev/null +++ b/ELT.Client/Managers/BaseManager.cs @@ -0,0 +1,20 @@ +using System; + +namespace ELT.Client.Managers +{ + public class AuthInfo + { + public string Login { get; set; } + public string Password { get; set; } + } + + public class BaseManager + { + protected AuthInfo AuthInfo => + new AuthInfo + { + Login = Environment.GetEnvironmentVariable("eltLogin"), + Password = Environment.GetEnvironmentVariable("eltPassword") + }; + } +} \ No newline at end of file diff --git a/ELT.Client/Managers/Insurance/KaskoManager.cs b/ELT.Client/Managers/Insurance/KaskoManager.cs new file mode 100644 index 0000000..56b3b5d --- /dev/null +++ b/ELT.Client/Managers/Insurance/KaskoManager.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using ELT.Client.Models.Insurance; +using ELT.Client.Models.Insurance.Kasko; +using ELTKasko; + +namespace ELT.Client.Managers.Insurance +{ + public class KaskoManager : BaseManager + { + private readonly EltSoap _eltKaskoSoap; + + public KaskoManager() + { + _eltKaskoSoap = new EltSoapClient(); + } + + public Dictionary CalculateKasko(CalculateKaskoRequest calculateKaskoRequest, + ELTPreData preRequestData) + { + var kaskoParams = calculateKaskoRequest.KaskoParams; + kaskoParams.UsageCityKLADR = preRequestData.Kladr; + kaskoParams.Mark = preRequestData.Brand; + kaskoParams.Model = preRequestData.Model; + + var result = new Dictionary(); + foreach (var companyId in calculateKaskoRequest.CompanyIds) + try + { + var res = _eltKaskoSoap.PreliminaryKASKOCalculation( + new ELTKasko.AuthInfo + { + Login = AuthInfo.Login, + Password = AuthInfo.Password + } + , null + , companyId + , null + , null + , null + , "15" + , null + , false + , null + , null + , kaskoParams); + if (string.IsNullOrEmpty(res.Error)) + result.Add(companyId, res); + } + catch (Exception) + { + // ignored + } + + return result; + } + } +} \ No newline at end of file diff --git a/ELT.Client/Managers/Insurance/OsagoManager.cs b/ELT.Client/Managers/Insurance/OsagoManager.cs new file mode 100644 index 0000000..e447e98 --- /dev/null +++ b/ELT.Client/Managers/Insurance/OsagoManager.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using ELT.Client.Models.Insurance; +using ELT.Client.Models.Insurance.Osago; +using ELTOsago; + +namespace ELT.Client.Managers.Insurance +{ + public class OsagoManager : BaseManager + { + private readonly EltSoap _eltOsagoSoap; + + public OsagoManager() + { + _eltOsagoSoap = new EltSoapClient(); + } + + public Dictionary CalculateOsago( + CalculateOsagoRequest calculateOsagoRequest, ELTPreData preRequestData) + { + var result = new Dictionary(); + + var osagoParams = calculateOsagoRequest.OsagoParams; + 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 + }; + + foreach (var companyId in calculateOsagoRequest.CompanyIds) + { + try + { + var res = _eltOsagoSoap.OSAGOFullCalculation(osagoParams); + if (string.IsNullOrEmpty(res.Error)) + result.Add(companyId, res); + } + catch (Exception) + { + // ignored + } + } + + return result; + } + } +} \ No newline at end of file diff --git a/ELT.Client/Managers/Insurance/PreRequestManager.cs b/ELT.Client/Managers/Insurance/PreRequestManager.cs new file mode 100644 index 0000000..80d8b90 --- /dev/null +++ b/ELT.Client/Managers/Insurance/PreRequestManager.cs @@ -0,0 +1,60 @@ +using System.Linq; +using ELT.Client.Models.Insurance; +using ELTKasko; + +namespace ELT.Client.Managers.Insurance +{ + public class PreRequestManager + { + private readonly EltSoap _eltKaskoSoap; + + public PreRequestManager() + { + _eltKaskoSoap = new EltSoapClient(); + } + + public ELTPreData GetPreRequestData(Preparams preparams) + { + var eltPreData = new ELTPreData(); + //KLADR + var kladr = "0"; + var eltRegions = _eltKaskoSoap.GetRegionsExt(new GetRegionsExtRequest()); + var eltRegion = eltRegions.GetRegionsExtResult.FirstOrDefault(x => + x.Name.Contains(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(preparams.CityName.Split(" ")[0])); + if (eltCity != null) kladr = eltCity.Kladr; + } + } + } + + eltPreData.Kladr = kladr; + //KLADR + + //CAR + var mappedCars = _eltKaskoSoap.MappedCars(new MappedCarsRequest + { + Marka = preparams.BrandId, + Model = preparams.ModelId + }); + + eltPreData.Brand = mappedCars.Mark; + eltPreData.Model = mappedCars.Model; + //CAR + + return eltPreData; + } + } +} \ No newline at end of file diff --git a/ELT.Client/Models/Insurance/BaseInsuranceRequest.cs b/ELT.Client/Models/Insurance/BaseInsuranceRequest.cs new file mode 100644 index 0000000..4e56510 --- /dev/null +++ b/ELT.Client/Models/Insurance/BaseInsuranceRequest.cs @@ -0,0 +1,8 @@ +namespace ELT.Client.Models.Insurance +{ + public class BaseInsuranceRequest + { + public string[] CompanyIds { get; set; } + public Preparams Preparams { get; set; } + } +} \ No newline at end of file diff --git a/ELT.Client/Models/Insurance/ELTPreData.cs b/ELT.Client/Models/Insurance/ELTPreData.cs new file mode 100644 index 0000000..e1d7ffb --- /dev/null +++ b/ELT.Client/Models/Insurance/ELTPreData.cs @@ -0,0 +1,9 @@ +namespace ELT.Client.Models.Insurance +{ + public class ELTPreData + { + public string Kladr { get; set; } + public string Brand { get; set; } + public string Model { get; set; } + } +} \ No newline at end of file diff --git a/ELT.Client/Models/Insurance/Kasko/CalculateKaskoRequest.cs b/ELT.Client/Models/Insurance/Kasko/CalculateKaskoRequest.cs new file mode 100644 index 0000000..4b433a3 --- /dev/null +++ b/ELT.Client/Models/Insurance/Kasko/CalculateKaskoRequest.cs @@ -0,0 +1,9 @@ +using ELTKasko; + +namespace ELT.Client.Models.Insurance.Kasko +{ + public class CalculateKaskoRequest : BaseInsuranceRequest + { + public PreliminaryKASKOCalculationParams KaskoParams { get; set; } + } +} \ No newline at end of file diff --git a/ELT.Client/Models/Insurance/Osago/CalculateOsagoRequest.cs b/ELT.Client/Models/Insurance/Osago/CalculateOsagoRequest.cs new file mode 100644 index 0000000..b361bd9 --- /dev/null +++ b/ELT.Client/Models/Insurance/Osago/CalculateOsagoRequest.cs @@ -0,0 +1,9 @@ +using ELTOsago; + +namespace ELT.Client.Models.Insurance.Osago +{ + public class CalculateOsagoRequest : BaseInsuranceRequest + { + public OSAGOFullCalculationRequest OsagoParams { get; set; } + } +} \ No newline at end of file diff --git a/ELT.Client/Models/Insurance/Preparams.cs b/ELT.Client/Models/Insurance/Preparams.cs new file mode 100644 index 0000000..2d7543d --- /dev/null +++ b/ELT.Client/Models/Insurance/Preparams.cs @@ -0,0 +1,10 @@ +namespace ELT.Client.Models.Insurance +{ + public class Preparams + { + public string RegionName { get; set; } + public string CityName { get; set; } + public string BrandId { get; set; } + public string ModelId { get; set; } + } +} \ No newline at end of file diff --git a/ELT/Controllers/InsuranceController.cs b/ELT/Controllers/InsuranceController.cs new file mode 100644 index 0000000..156ed79 --- /dev/null +++ b/ELT/Controllers/InsuranceController.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using ELT.Client.Managers.Insurance; +using ELT.Client.Models.Insurance.Kasko; +using ELT.Client.Models.Insurance.Osago; +using ELTKasko; +using ELTOsago; +using Microsoft.AspNetCore.Mvc; + +namespace ELT.Controllers +{ + [ApiController] + [Route("[controller]")] + public class InsuranceController : ControllerBase + { + [HttpPost("[action]")] + public ActionResult> CalculateOsago( + [FromBody] CalculateKaskoRequest calculateKaskoRequest) + { + var preRequestManager = new PreRequestManager(); + var preRequestData = preRequestManager.GetPreRequestData(calculateKaskoRequest.Preparams); + + var kaskoManager = new KaskoManager(); + return kaskoManager.CalculateKasko(calculateKaskoRequest, preRequestData); + } + + [HttpPost("[action]")] + public ActionResult> CalculateKasko( + [FromBody] CalculateOsagoRequest calculateOsagoRequest) + { + var preRequestManager = new PreRequestManager(); + var preRequestData = preRequestManager.GetPreRequestData(calculateOsagoRequest.Preparams); + + var osagoManager = new OsagoManager(); + return osagoManager.CalculateOsago(calculateOsagoRequest, preRequestData); + } + } +} \ No newline at end of file diff --git a/ELT/Controllers/KaskoController.cs b/ELT/Controllers/KaskoController.cs deleted file mode 100644 index 574bf8b..0000000 --- a/ELT/Controllers/KaskoController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections.Generic; -using ELT.Client.Kasko; -using ELT.Models; -using ELTKasko; -using Microsoft.AspNetCore.Mvc; - -namespace ELT.Controllers -{ - [ApiController] - [Route("[controller]")] - public class KaskoController : ControllerBase - { - [HttpPost("[action]")] - public ActionResult> CalculateKasko( - [FromBody] CalculateKaskoRequest calculateKaskoRequest) - { - var kaskoManager = new KaskoManager(); - return kaskoManager.CalculateKasko(calculateKaskoRequest); - } - } -} \ No newline at end of file