Last active
August 16, 2017 11:08
-
-
Save LazyTarget/2425fd402461a08d0f375998ccc94a54 to your computer and use it in GitHub Desktop.
SessionDataService - 1. original
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public SessionData GetSessionData(SessionRequest request) | |
{ | |
var response = new SessionData(); | |
var frameAgreement = _thirdPartyWs.GetFrameAgreementDetail(request.FrameAgreementId); | |
var agreements = frameAgreement.Agreements; | |
foreach (var agreement in agreements) | |
{ | |
var agreementDto = new AgreementDto(); | |
response.Agreements.Add(agreementDto); | |
// data is gathered from thirdPartyWs and then combined into a custom `agreementDto` | |
var agreementDetail = _thirdPartyWs.GetAgreementDetail(agreement.Id); | |
var fuelCards = _thirdPartyWs.GetFuelCards(agreement.Id); | |
var serviceLevels = _thirdPartyWs.GetServiceLevels(agreement.Id); | |
var customers = _thirdPartyWs.GetCustomers(agreement.Id) | |
foreach (var customer in customers) | |
{ | |
var customerDto = response.Customers.FirstOrDefault(c => c.Id == customer.Id); | |
if (customerDto == null) | |
{ | |
customerDto = new CustomerDto(); | |
response.Customers.Add(customerDto); | |
} | |
agreementDto.Customers.Add(customerDto); | |
var address = _thirdPartyWs.GetAddressByCustomer(customer.Id); | |
var branches = _thirdPartyWs.GetBranches(customer.Id); | |
// and even more thirdparty calls... | |
// data is combined into a custom `customerDto` | |
var customerDto = new CustomerDto(); | |
response.Customers.Add(CustomerDto); | |
} | |
} | |
var person = _thirdPartyWs.GetPerson(request.UserId); | |
var accounts = _thirdPartyWs.GetAccount(person.Id); | |
foreach (var account in accounts) | |
{ | |
var accountDetail = _thirdPartyWs.GetAccountDetail(account.Id); | |
foreach (var vehicle in accountDetail.Vehicles) | |
{ | |
var milageReport = _thirdPartyWs.GetCurrentMilageReport(vehicle.Id); | |
// data is combined into a custom `vehicleDto` | |
var vehicleDto = new VehicleDto(); | |
response.Person.Vehicles.Add(vehicleDto); | |
} | |
} | |
return response; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment