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)); }
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)); }