public CalculatePriceResponseDto CalculatePrice(CalculatePriceRequestDto request) { var response = apiClient.Post <CalculatePriceResponseDto>("Pricing", null, request); //TODO: maybe it should return Task<CalculatePriceResponseDto> or use async/await return(response.Result); }
public PolicyPrice CalculatePolicyPrice(CalculatePriceRequestDto request) { var tariffVersion = TariffVersions.FirstOrDefault(x => x.CoverFrom <= request.PolicyStartDate && x.CoverTo >= request.PolicyStartDate); if (tariffVersion == null) { throw new NoValidTariffForProductAndDateException(request.ProductCode, request.PolicyStartDate); } var coverPrices = new List <CoverPrice>(); foreach (var selectedCover in request.SelectedCovers) { var coverPrice = tariffVersion.GetCoverPrice(selectedCover, request.PolicyHolderAge); if (coverPrice == null) { throw new NoPriceForGivenAgeException(selectedCover, request.PolicyHolderAge); } coverPrices.Add(coverPrice); } return(new PolicyPrice(Code, coverPrices)); }
public Task <CreateOfferResponseDto> Handle(CreateOfferRequestDto request, CancellationToken cancellationToken) { //TODO: add request validtion var calculatePriceRequest = new CalculatePriceRequestDto() { PolicyHolderAge = AgeUtils.CalculateAgeFromPesel(request.PolicyHolder.Pesel), PolicyStartDate = request.PolicyFrom, ProductCode = request.ProductCode, SelectedCovers = request.SelectedCovers }; var calculatePriceResponse = pricingApiFacade.CalculatePrice(calculatePriceRequest); var offer = new Offer(request, calculatePriceResponse); dbContext.Offer.Add(offer); dbContext.SaveChanges(); var response = new CreateOfferResponseDto() { OfferNumber = offer.OfferNumber, OfferValidityEnd = offer.ValidTo, TotalPrice = offer.TotalPrice }; return(Task.FromResult(response)); }
public async Task <CalculatePriceResponseDto> CalculatePrice([FromBody] CalculatePriceRequestDto request) { CalculatePriceResponseDto response = await mediator.Send(request); return(response); }