Beispiel #1
0
        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.");
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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}"));
        }