protected bool ValidateHolidayWorkEditModel(HolidayWorkEditModel model)
 {
     if (model.IsTypeEditable)
      {
          //if (!string.IsNullOrEmpty(model.Rate))
          //{
          //    int rate;
          //    if (!Int32.TryParse(model.Rate, out rate))
          //        ModelState.AddModelError("Rate", "Неправильное поле 'Часовая тарифная ставка'.");
          //    else if (rate <= 0)
          //        ModelState.AddModelError("Rate",
          //                                 "Поле 'Часовая тарифная ставка' должно быть положительным числом.");
          //}
          if (!string.IsNullOrEmpty(model.Hours))
          {
              int hours;
              if (!Int32.TryParse(model.Hours, out hours))
                  ModelState.AddModelError("Hours", "Неправильное поле 'Кол-во отработанных часов'.");
              else if (hours <= 0 || hours > 24)
                  ModelState.AddModelError("Hours",
                                           "Поле 'Кол-во отработанных часов'  должно быть положительным числом меньшим 25.");
          }
      }
      return ModelState.IsValid;
 }
 public ActionResult HolidayWorkEdit(HolidayWorkEditModel model)
 {
     CorrectCheckboxes(model);
      CorrectDropdowns(model);
      if (!ValidateHolidayWorkEditModel(model))
      {
          RequestBl.ReloadDictionariesToModel(model);
          return View(model);
      }
      string error;
      if (!RequestBl.SaveHolidayWorkEditModel(model, out error))
      {
          if (model.ReloadPage)
          {
              ModelState.Clear();
              if (!string.IsNullOrEmpty(error))
                  ModelState.AddModelError("", error);
              return View(RequestBl.GetHolidayWorkEditModel(model.Id, model.UserId));
          }
          if (!string.IsNullOrEmpty(error))
              ModelState.AddModelError("", error);
      }
      return View(model);
 }
 protected void CorrectDropdowns(HolidayWorkEditModel model)
 {
     if (!model.IsTypeEditable)
          model.TypeId = model.TypeIdHidden;
      if (!model.IsTimesheetStatusEditable)
          model.TimesheetStatusId = model.TimesheetStatusIdHidden;
 }