protected void CorrectDropdowns(TimesheetCorrectionEditModel model) { if (!model.IsTypeEditable) model.TypeId = model.TypeIdHidden; if (!model.IsStatusEditable) model.StatusId = model.StatusIdHidden; }
protected bool ValidateTimesheetCorrectionEditModel(TimesheetCorrectionEditModel model) { if (!string.IsNullOrEmpty(model.Hours)) { int hours; if (!Int32.TryParse(model.Hours, out hours) || hours <= 0 || hours > 24) ModelState.AddModelError("Hours", "Поле 'Часы' должно быть положительным целым числом не больше 24."); } if(model.EventDate.HasValue && AuthenticationService.CurrentUser.UserRole == UserRole.Employee) { DateTime eventDate = DateTime.Today; DateTime lastSunday = eventDate.AddDays((int)eventDate.DayOfWeek == 0 ? -7 : - (int)eventDate.DayOfWeek); if(lastSunday >= model.EventDate.Value) ModelState.AddModelError("EventDate", "Дата не может быть ранее понедельника текущей недели."); } return ModelState.IsValid; }
public ActionResult TimesheetCorrectionEdit(TimesheetCorrectionEditModel model) { CorrectCheckboxes(model); CorrectDropdowns(model); if (!ValidateTimesheetCorrectionEditModel(model)) { model.IsApproved = false; RequestBl.ReloadDictionariesToModel(model); return View(model); } string error; if (!RequestBl.SaveTimesheetCorrectionEditModel(model, out error)) { if (model.ReloadPage) { ModelState.Clear(); if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); return View(RequestBl.GetTimesheetCorrectionEditModel(model.Id, model.UserId)); } if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); } return View(model); }