예제 #1
0
        public async Task <IActionResult> CreateRoundAsync()
        {
            var department = RouteData.Values["department"];

            ViewBag.Department = department;

            var model = new CreateRoundModel()
            {
                Rounds = await dbContext.Journals
                         .Include(d => d.Department)
                         .Where(j => j.DateBegin.Date.Equals(DateTime.Now.Date) &&
                                j.Department.Name.Equals(department.ToString()))
                         .ToListAsync()
            };

            return(View(model));
        }
예제 #2
0
        public async Task <IActionResult> CreateRoundAsync(CreateRoundModel model)
        {
            if (ModelState.IsValid)
            {
                var departmentName = RouteData.Values["department"].ToString();
                ViewBag.Department = departmentName;

                model.Rounds = await dbContext.Journals
                               .Include(d => d.Department)
                               .Where(j => j.DateBegin.Date.Equals(DateTime.Now.Date) &&
                                      j.Department.Name.Equals(departmentName.ToString()))
                               .ToListAsync();

                if (model.DayEnd <= model.DayBegin)
                {
                    ModelState.AddModelError("", "Время окончания обхода не может быть меньше или равным времени начала обхода");
                    return(View(model));
                }

                Department department = await dbContext.Departments.FirstOrDefaultAsync(d => d.Name.Equals(model.Department));

                if (dbContext.Journals.Any(j => j.DateBegin.Equals(model.DayBegin) &&
                                           j.DateEnd.Equals(model.DayEnd) &&
                                           j.DepartmentId.Equals(department.Id)))
                {
                    ModelState.AddModelError("", "Обход с таким временем начала и окончания уже существует");
                    return(View(model));
                }

                Journal journalStr = new Journal()
                {
                    DateBegin    = DateTime.Now.Date.AddHours(model.DayBegin.Hour).AddMinutes(model.DayBegin.Minute),
                    DateEnd      = DateTime.Now.Date.AddHours(model.DayEnd.Hour).AddMinutes(model.DayEnd.Minute),
                    DepartmentId = department.Id,
                    Status       = false
                };

                await dbContext.Journals.AddAsync(journalStr);

                dbContext.SaveChanges();

                model.Rounds = await dbContext.Journals
                               .Include(d => d.Department)
                               .Where(j => j.DateBegin.Date.Equals(DateTime.Now.Date) &&
                                      j.Department.Id.Equals(department.Id))
                               .ToListAsync();

                var url = RedirectToAction("CreateRound");
                url.RouteValues = new RouteValueDictionary();
                var result = url.RouteValues.TryAdd("department", RouteData.Values["department"]);
                if (!result)
                {
                    ModelState.AddModelError("", "Ошибка переадресовки");
                    ViewBag.Department = RouteData.Values["department"];
                    return(View(model));
                }
                return(url);
            }
            else
            {
                ModelState.AddModelError("", "Введены некорректные данные");
                ViewBag.Department = RouteData.Values["department"];
            }
            return(View(model));
        }