public async Task Create_ShouldReturnCorrectResults() { string errorMessagePrefix = "PremiumService Create(PremiumServiceModel) method does not work properly."; var context = HealthInsDbContextInMemoryFactory.InitializeContext(); this.premiumService = new PremiumService(context, new ContractService(context)); await SeedData(context); PremiumServiceModel prem = new PremiumServiceModel() { Id = 14, ContractId = 2, OperationAmount = 100 }; var actualResults = await this.premiumService.Create(prem); var actualEntry = this.premiumService.GetById(14); var contract = context.Contracts.SingleOrDefault(c => c.Id == actualEntry.ContractId); Assert.True(prem.ContractId == actualEntry.ContractId, errorMessagePrefix + " " + "Contract is not returned properly."); Assert.True(prem.OperationAmount == actualEntry.OperationAmount, errorMessagePrefix + " " + "Contract is not returned properly."); Assert.True(HealthIns.Data.Models.Financial.Enums.Status.Pending == actualEntry.Status, errorMessagePrefix + " " + "Contract is not returned properly."); Assert.True(DateTime.Parse("01/01/2020").ToShortDateString() == contract.NextBillingDueDate.ToShortDateString(), errorMessagePrefix + " " + "Contract NextBillingDueDate is not calculated properly."); }
public async Task <IActionResult> Create(long id) { PremiumServiceModel premiumServiceModel = this.premiumService.SimulatePremiumForContract(id); PremiumCreateInputModel premiumCreateInputModel = AutoMapper.Mapper.Map <PremiumCreateInputModel>(premiumServiceModel); premiumCreateInputModel.ContractId = id; return(this.View(premiumCreateInputModel)); }
public async Task <IActionResult> Create(PremiumCreateInputModel premiumCreateInputModel) { if (!this.ModelState.IsValid) { return(this.View()); } PremiumServiceModel premiumServiceModel = AutoMapper.Mapper.Map <PremiumServiceModel>(premiumCreateInputModel); premiumServiceModel.ContractId = premiumCreateInputModel.Id; premiumServiceModel.Id = 0; await this.premiumService.Create(premiumServiceModel); await this.contractService.TryToApplyFinancial(premiumServiceModel.ContractId); this.TempData["info"] = String.Format(PREMIUM_CREATED); return(this.Redirect($"/Contract/Details/{premiumServiceModel.ContractId}")); }