public async Task <IActionResult> Create(CreateEventViewModel model)
        {
            if (ModelState.IsValid)
            {
                Worker currentWorker = await _userManager.FindByNameAsync(User.Identity.Name);

                if (currentWorker == null)
                {
                    return(BadRequest());
                }

                Event ev = new Event
                {
                    CheckId       = model.SelectedCheckId ?? 0,
                    FailReason    = model.FailReason,
                    Description   = model.Description,
                    ResponsWorker = model.ResponseWorker,
                    DueDate       = model.DueDate,
                    IsActive      = true,
                    IsCorrect     = true,
                    Developer     = currentWorker.Id,
                    DevelopDate   = DateTime.Now
                };

                db.Events.Add(ev);
                try
                {
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", "Ошибка добавления");
                }
            }

            int pageSize = 10;
            IQueryable <Check> checks = db.Check.Include(c => c.RegWorkerNavigation)
                                        .Include(c => c.RegWorkerNavigation.Sector)
                                        .Include(c => c.RegWorkerNavigation.Sector.Subunit)
                                        .Include(c => c.Sector)
                                        .Include(c => c.Sector.Subunit)
                                        .Include(c => c.Shows);

            checks = checks.Where(c => c.IsActive && c.IsCorrect && c.IsFail && c.Shows.Count > 0);
            var count = await checks.CountAsync();

            model.Checks = await checks.Take(pageSize).ToListAsync();

            model.PageViewModel   = new PageViewModel(count, 1, pageSize);
            model.SortViewModel   = new SortCheckViewModel(SortStateCheck.FailCountAsc);
            model.FilterViewModel = new FilterCheckViewModel(db.Subunits.ToList(), db.Sectors.ToList(), 0, 0, "");
            return(View(model));
        }
Пример #2
0
        public async Task <IActionResult> Create(CreateCheckViewModel model)
        {
            if (ModelState.IsValid)
            {
                string checkDate = model.CheckDate.ToString("yyMMdd");

                int    num = 1;
                string failCount;

                do
                {
                    failCount = checkDate + num.ToString().PadLeft(2, '0');
                    ++num;
                } while (db.Check.Any(c => c.FailCount == failCount));

                Worker worker = await _userManager.FindByNameAsync(User.Identity.Name);

                if (worker == null)
                {
                    return(BadRequest());
                }

                Check check = new Check
                {
                    FailCount        = failCount,
                    RegWorker        = worker.Id,
                    SectorId         = model.SectorId,
                    RegDate          = DateTime.Now,
                    CheckDate        = model.CheckDate,
                    CheckWorker      = "null",
                    TdKd             = model.TDKD,
                    ControlIndicator = model.ControlIndicator,
                    FailDescription  = model.FailDesc,
                    IsActive         = true,
                    IsCorrect        = true,
                    IsFail           = model.isFail
                };

                db.Check.Add(check);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            model.FillLists(db);
            return(View(model));
        }