public ActionResult Contacts(ContactsModel model)
        {
            string error = String.Empty;
            string SPPath = AuthenticationService.CurrentUser.Id.ToString();

            if (ValidateModel(model))
            {
                model.IsDraft = model.IsContactDraft;
                EmploymentBl.ProcessSaving<ContactsModel, Contacts>(model, out error);
                model = EmploymentBl.GetContactsModel(model.UserId);
                ModelState.AddModelError("IsValidate", string.IsNullOrEmpty(error) ? "Данные сохранены!" : error);
                ViewBag.Error = error;
            }
            else
            {   //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии
                model = EmploymentBl.GetContactsModel(model);
                if (Session["ContactsM" + SPPath] != null)
                    Session.Remove("ContactsM" + SPPath);
                if (Session["ContactsM" + SPPath] == null)
                    Session.Add("ContactsM" + SPPath, model);
            }

            if (Session["ContactsMS" + SPPath] != null)
                Session.Remove("ContactsMS" + SPPath);
            if (Session["ContactsMS" + SPPath] == null)
            {
                ModelStateDictionary mst = ModelState;
                Session.Add("ContactsMS" + SPPath, mst);
            }

            if ((AuthenticationService.CurrentUser.UserRole & UserRole.PersonnelManager) > 0 && EmploymentBl.IsUnlimitedEditAvailable())
                return Redirect("PersonnelInfo?id=" + model.UserId + "&IsCandidateInfoAvailable=true&IsBackgroundCheckAvailable=true&IsManagersAvailable=true&IsPersonalManagersAvailable=true&TabIndex=7");
            else
                return model.IsFinal && !EmploymentBl.IsUnlimitedEditAvailable() ? View("ContactsReadOnly", model) : View(model);
        }
 protected bool ValidateModel(ContactsModel model)
 {
     if (!model.IsContactDraft)
     {
         //ModelState.Clear();
         if (!model.IsValidate)
         {
             ModelState.AddModelError("IsValidate", "Подтвердите правильность предоставленных данных! Подтвердив правильность предоставленных данных, Вы не сможете больше вносить изменения в данную часть анкеты!");
         }
     }
     return ModelState.IsValid;
 }