calculate osago
This commit is contained in:
parent
b816b1d172
commit
95115b53d7
@ -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<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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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; }
|
||||
}
|
||||
}
|
||||
20
ELT.Client/Managers/BaseManager.cs
Normal file
20
ELT.Client/Managers/BaseManager.cs
Normal file
@ -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")
|
||||
};
|
||||
}
|
||||
}
|
||||
58
ELT.Client/Managers/Insurance/KaskoManager.cs
Normal file
58
ELT.Client/Managers/Insurance/KaskoManager.cs
Normal file
@ -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<string, KASKOCalculationResult> 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<string, KASKOCalculationResult>();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
50
ELT.Client/Managers/Insurance/OsagoManager.cs
Normal file
50
ELT.Client/Managers/Insurance/OsagoManager.cs
Normal file
@ -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<string, OSAGOFullCalculationResponse> CalculateOsago(
|
||||
CalculateOsagoRequest calculateOsagoRequest, ELTPreData preRequestData)
|
||||
{
|
||||
var result = new Dictionary<string, OSAGOFullCalculationResponse>();
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
60
ELT.Client/Managers/Insurance/PreRequestManager.cs
Normal file
60
ELT.Client/Managers/Insurance/PreRequestManager.cs
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
8
ELT.Client/Models/Insurance/BaseInsuranceRequest.cs
Normal file
8
ELT.Client/Models/Insurance/BaseInsuranceRequest.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace ELT.Client.Models.Insurance
|
||||
{
|
||||
public class BaseInsuranceRequest
|
||||
{
|
||||
public string[] CompanyIds { get; set; }
|
||||
public Preparams Preparams { get; set; }
|
||||
}
|
||||
}
|
||||
9
ELT.Client/Models/Insurance/ELTPreData.cs
Normal file
9
ELT.Client/Models/Insurance/ELTPreData.cs
Normal file
@ -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; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
using ELTKasko;
|
||||
|
||||
namespace ELT.Client.Models.Insurance.Kasko
|
||||
{
|
||||
public class CalculateKaskoRequest : BaseInsuranceRequest
|
||||
{
|
||||
public PreliminaryKASKOCalculationParams KaskoParams { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
using ELTOsago;
|
||||
|
||||
namespace ELT.Client.Models.Insurance.Osago
|
||||
{
|
||||
public class CalculateOsagoRequest : BaseInsuranceRequest
|
||||
{
|
||||
public OSAGOFullCalculationRequest OsagoParams { get; set; }
|
||||
}
|
||||
}
|
||||
10
ELT.Client/Models/Insurance/Preparams.cs
Normal file
10
ELT.Client/Models/Insurance/Preparams.cs
Normal file
@ -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; }
|
||||
}
|
||||
}
|
||||
37
ELT/Controllers/InsuranceController.cs
Normal file
37
ELT/Controllers/InsuranceController.cs
Normal file
@ -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<Dictionary<string, KASKOCalculationResult>> 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<Dictionary<string, OSAGOFullCalculationResponse>> CalculateKasko(
|
||||
[FromBody] CalculateOsagoRequest calculateOsagoRequest)
|
||||
{
|
||||
var preRequestManager = new PreRequestManager();
|
||||
var preRequestData = preRequestManager.GetPreRequestData(calculateOsagoRequest.Preparams);
|
||||
|
||||
var osagoManager = new OsagoManager();
|
||||
return osagoManager.CalculateOsago(calculateOsagoRequest, preRequestData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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<Dictionary<string, KASKOCalculationResult>> CalculateKasko(
|
||||
[FromBody] CalculateKaskoRequest calculateKaskoRequest)
|
||||
{
|
||||
var kaskoManager = new KaskoManager();
|
||||
return kaskoManager.CalculateKasko(calculateKaskoRequest);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user