public async Task <IHttpActionResult> Add([FromBody] NewCoverageModel model) { if (ModelState.IsValid) { using (IUnitOfWork unitOfWork = UnitOfWork.Create()) { var userId = User.Identity.GetUserId(); unitOfWork.BeginTransaction(); Coverage coverage = new Coverage(); coverage.InsurerId = model.InsurerId; coverage.Title = model.Title; coverage.Description = model.Description; coverage.Type = model.Type; coverage.CreatedById = userId; coverage.CreatedDate = DateTime.Now; unitOfWork.CoverageRepository.Insert(coverage); await unitOfWork.SaveAsync(); if (model.PolicyTypeId.HasValue) { PolicyTypeCoverage policyTypeCoverage = new PolicyTypeCoverage(); policyTypeCoverage.PolicyTypeId = model.PolicyTypeId.Value; policyTypeCoverage.CoverageId = coverage.Id; policyTypeCoverage.CreatedById = userId; policyTypeCoverage.CreatedDate = DateTime.Now; unitOfWork.PolicyTypeCoverageRepository.Insert(policyTypeCoverage); await unitOfWork.SaveAsync(); } unitOfWork.CommitTransaction(); var result = new { id = coverage.Id, title = coverage.Title, type = coverage.Type, description = coverage.Description, insurerId = coverage.InsurerId }; return(Json(result)); } } else { return(JsonError(HttpStatusCode.BadRequest, 10, "Warning", ModelState)); } }
public async Task <IHttpActionResult> Assign([FromBody] AssignCoverageModel model) { if (ModelState.IsValid) { using (IUnitOfWork unitOfWork = UnitOfWork.Create()) { var userId = User.Identity.GetUserId(); Coverage coverage = unitOfWork.CoverageRepository.GetById(model.CoverageId); PolicyType policyType = unitOfWork.PolicyTypeRepository.GetById(model.PolicyTypeId); if (coverage.InsurerId != policyType.InsurerId) { ModelState.AddModelError("coverageId", "The coverage is missing in coverage list of the insurer"); return(JsonError(HttpStatusCode.BadRequest, 10, "Warning", ModelState)); } PolicyTypeCoverage policyTypeCoverage = unitOfWork.PolicyTypeCoverageRepository.GetAll().FirstOrDefault(a => a.CoverageId == model.CoverageId && a.PolicyTypeId == model.PolicyTypeId); if (policyTypeCoverage != null) { ModelState.AddModelError("coverageId", "The coverage is present in the policy type"); return(JsonError(HttpStatusCode.BadRequest, 10, "Warning", ModelState)); } policyTypeCoverage = new PolicyTypeCoverage(); policyTypeCoverage.PolicyTypeId = model.PolicyTypeId; policyTypeCoverage.CoverageId = coverage.Id; policyTypeCoverage.CreatedById = userId; policyTypeCoverage.CreatedDate = DateTime.Now; unitOfWork.PolicyTypeCoverageRepository.Insert(policyTypeCoverage); await unitOfWork.SaveAsync(); return(Ok()); } } else { return(JsonError(HttpStatusCode.BadRequest, 10, "Warning", ModelState)); } }
public async Task <IHttpActionResult> DeleteFromPolicyType(int coverageId, int policyTypeId) { if (ModelState.IsValid) { using (IUnitOfWork unitOfWork = UnitOfWork.Create()) { var userId = User.Identity.GetUserId(); PolicyTypeCoverage policyTypeCoverage = unitOfWork.PolicyTypeCoverageRepository.GetAll() .FirstOrDefault(a => a.CoverageId == coverageId && a.PolicyTypeId == policyTypeId); unitOfWork.PolicyTypeCoverageRepository.Delete(policyTypeCoverage); await unitOfWork.SaveAsync(); return(Ok()); } } else { return(JsonError(HttpStatusCode.BadRequest, 10, "Warning", ModelState)); } }