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());
            }
        }
示例#2
0
        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));
            }
        }