public async Task <IHttpActionResult> CreateClaim(ClaimViewModel claimViewModel) { using (var context = new ApplicationDbContext()) { if (ModelState.IsValid) { var userIdentityid = User.Identity.GetUserId <int>(); var abonents = context.Abonent.Where(x => x.ApplicationUser.Id == userIdentityid); if (!abonents.Any()) { return(NotFound()); } if (abonents.Count() > 1) { return(BadRequest()); } var abonent = abonents.Single(); var claim = new AbonentClaim { OrganizationId = abonent.OrganizationId, CreatorId = abonent.Id, ApartmentFullAddress = abonent.ApartmentFullAddress, ChangedTime = DateTime.Now, CreationTime = DateTime.Now, ContactPhoneNumber = claimViewModel.ContactPhoneNumber, PersonalAccountId = abonent.PersonalAccountId, DictClaimKindId = claimViewModel.DictClaimKindId, Description = claimViewModel.Description, ClaimStatus = EClaimStatus.Created }; context.AbonentClaim.Add(claim); await context.SaveChangesAsync(); return(Ok()); } return(BadRequest()); } }
public async Task <ActionResult> CreateClaim(ClaimViewModel claimViewModel, HttpPostedFileBase inputFile, bool printJobOrderAfterSave = false) { using (var context = new ApplicationDbContext()) { var userIdentityid = User.Identity.GetUserId <int>(); var employee = await GetCurrentEmployee(context); if (ModelState.IsValid) { var personalAccount = context.PersonalAccount.FirstOrDefault(x => x.Id == claimViewModel.PersonalAccountId); if (personalAccount == null) { throw new Exception($"Не найден ЛС с идентификатором: {claimViewModel.PersonalAccountId}"); } var claim = new AbonentClaim { OrganizationId = personalAccount.OrganizationId, ApartmentFullAddress = personalAccount.ApartmentFullAddress, ChangedTime = DateTime.Now, CreationTime = DateTime.Now, ContactPhoneNumber = claimViewModel.ContactPhoneNumber, PersonalAccountId = personalAccount.Id, DictClaimKindId = claimViewModel.DictClaimKindId, Description = claimViewModel.Description, ClaimStatus = EClaimStatus.Created, EmployeeId = claimViewModel.EmployeeId, EmployeeCreatorId = employee.Id, Cost = claimViewModel.Cost }; if (inputFile != null && inputFile.ContentLength > 0) { var fileStorageManager = OhConfigurator.Container.Resolve <IFileStorageManager>(); claim.ImportedFileId = (await fileStorageManager.SaveImportedFile(inputFile, userIdentityid, EImportType.AbonentFiles)) .Id; } context.AbonentClaim.Add(claim); await context.SaveChangesAsync(); return(printJobOrderAfterSave ? RedirectToAction("PrintingJobOrder", "Employee", new { claimId = claim.Id }) : RedirectToAction("AbonentClaims", "Employee")); } ViewData["DictClaimKindId"] = context.DictClaimKind .Where(x => x.IsVisible) .Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString(), Selected = x.Id == claimViewModel.DictClaimKindId }).ToList(); ViewData["HouseId"] = context.House .Select(x => new SelectListItem { Text = x.HouseFullAddress, Value = x.Id.ToString(), Selected = x.Id == claimViewModel.HouseId }) .OrderBy(x => x.Text) .ToList(); ViewData["PersonalAccountId"] = context.PersonalAccount .Where(x => x.HouseId == claimViewModel.HouseId) .Select(x => new SelectListItem { Text = x.ApartmentFullAddress, Value = x.Id.ToString(), Selected = x.Id == claimViewModel.PersonalAccountId }) .ToList() .OrderBy(x => x.Text); return(View(claimViewModel)); } }