public ActionResult AbsenceEdit(AbsenceEditModel model) { CorrectCheckboxes(model); CorrectDropdowns(model); if (!ValidateAbsenceEditModel(model)) { model.IsApproved = false; model.IsApprovedForAll = false; RequestBl.ReloadDictionariesToModel(model); return View(model); } string error; if (!RequestBl.SaveAbsenceEditModel(model, out error)) { //HttpContext.AddError(new Exception(error)); if (model.ReloadPage) { ModelState.Clear(); if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); return View(RequestBl.GetAbsenceEditModel(model.Id, model.UserId)); } if (!string.IsNullOrEmpty(error)) ModelState.AddModelError("", error); } return View(model); }
protected bool ValidateAbsenceEditModel(AbsenceEditModel model) { if (model.BeginDate.HasValue && model.EndDate.HasValue && model.BeginDate > model.EndDate) ModelState.AddModelError("BeginDate", "Дата начала отпуска не может превышать дату окончания отпуска."); //int dayCounts; //if(!Int32.TryParse(model.DaysCount, out dayCounts)) // ModelState.AddModelError("DaysCount", "Количество дней (часов) должно быть числом."); //else //{ // if (dayCounts <= 0) // ModelState.AddModelError("DaysCount", "Количество дней (часов) должно быть положительным числом."); //} CheckBeginDate(model); return ModelState.IsValid; }
protected void CorrectDropdowns(AbsenceEditModel model) { if (!model.IsAbsenceTypeEditable) model.AbsenceTypeId = model.AbsenceTypeIdHidden; if (!model.IsTimesheetStatusEditable) model.TimesheetStatusId = model.TimesheetStatusIdHidden; model.DaysCount = model.DaysCountHidden; }