public bool AddUser(User user) { try { DataProvider.Users.Add(user); return true; } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", RequestResult: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; return false; } }
//TODO:тут этого не должно быть protected bool AddUser(User user) { return _accountService.AddUser(user); }
//TODO:тут этого не должно быть protected bool UpdateUser(User user) { return _accountService.UpdateUser(user); }
//TODO:тут этого не должно быть protected bool DeleteUser(User user) { return _accountService.DeleteUser(user); }
public ActionResult Save(UserCommonViewModel userModel) { var newUser = new User(); if (userModel.IsNewUser != true) { CacheService.Remove("UserData" + userModel.Login + "|"); newUser = GetUserByLogin(userModel.Login); } var isNew = userModel.IsNewUser; try { if (!isNew && String.IsNullOrEmpty(userModel.Password)) { if (ModelState["Password"].Errors.Count > 0) ModelState["Password"].Errors.RemoveAt(0); } // При создании пользователя надо проигнорить поле Id } catch (Exception ex) { #region Логирование //LogHelper.AddSystemLogMessage(new SystemLogMessage() //{ // AuditEventId = AuditEvents.СистемнаяОшибка, // UserId = CurrentUserId, // EventTypeId = EventTypes.Ошибка, // IPAddress = Request.UserHostAddress, // ComputerName = NetworkHelper.GetHostNameByHostAddress(Request.UserHostAddress), // Date = DateTime.Now, // Detalization = String.Format("Произошла ошибка при правке модели пользователя: {0}", ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace) //}); #endregion } #region Validity if (ModelState.IsValid) { newUser.Login = userModel.Login; if (!String.IsNullOrEmpty(userModel.Password)) newUser.Password = PasswordHelper.Sha1EncryptPassword(userModel.Password); newUser.IsDeleted = false; newUser.BlockReason = String.Empty; UserMeta userMeta = newUser.UserMeta.FirstOrDefault(); if (userMeta != null) { userMeta.LastName = userModel.LastName; userMeta.FirstName = userModel.FirstName; userMeta.MiddleName = userModel.MiddleName; if (userMeta.Contact != null) { userMeta.Contact.Email = userModel.Email; userMeta.Contact.Skype = userModel.Skype; userMeta.Contact.PhoneNumber = userModel.Phone; userMeta.Contact.AdditionalPhoneNumber = userModel.AdditionalPhone; } } else { newUser.UserMeta.Add(new UserMeta { LastName = userModel.LastName, FirstName = userModel.FirstName, MiddleName = userModel.MiddleName, Contact = new Contact { Email = userModel.Email, Skype = userModel.Skype, PhoneNumber = userModel.Phone, AdditionalPhoneNumber = userModel.AdditionalPhone } }); } if (userModel.StudentMeta != null) { var studentMeta = newUser.Student_StudentMeta.FirstOrDefault(); Spezialnost_SpezialnostMeta meta = _adminData.GetSpezMetaInfo(userModel.StudentMeta.IdSpecialtyMeta); if (studentMeta != null) { studentMeta.FacultyId = userModel.StudentMeta.FacultyId; studentMeta.SpecialtyId = userModel.StudentMeta.SpecialityId; studentMeta.AdmissionDate = new DateTime(meta.GodPostup, 1, 1); studentMeta.GraduationDate = new DateTime(meta.GodPostup + meta.SrokObuch, 1, 1); studentMeta.FlowId = userModel.StudentMeta.FlowId; studentMeta.GroupId = userModel.StudentMeta.GroupId; studentMeta.StudentCardNumber = userModel.StudentMeta.StudentCardNumber; studentMeta.MarkBookNumber = userModel.StudentMeta.MarkBookNumber; studentMeta.IsDismissed = false; studentMeta.IdSpecialtyMeta = userModel.StudentMeta.IdSpecialtyMeta; studentMeta.FormOfStuduId = meta.IdFrmObuch; } else { newUser.Student_StudentMeta.Add(new Student_StudentMeta() { FacultyId = userModel.StudentMeta.FacultyId, SpecialtyId = userModel.StudentMeta.SpecialityId, AdmissionDate = new DateTime(meta.GodPostup, 1, 1), GraduationDate = new DateTime(meta.GodPostup + meta.SrokObuch, 1, 1), FlowId = userModel.StudentMeta.FlowId, GroupId = userModel.StudentMeta.GroupId, StudentCardNumber = userModel.StudentMeta.StudentCardNumber, MarkBookNumber = userModel.StudentMeta.MarkBookNumber, IsDismissed = false, IdSpecialtyMeta = userModel.StudentMeta.IdSpecialtyMeta, FormOfStuduId = meta.IdFrmObuch }); } } if (userModel.PrepodMeta != null) { if (userModel.IsNewUser) { Prepod_PrepodMeta prepod_meta = new Prepod_PrepodMeta(); var departments = userModel.PrepodMeta.DepartmentsIdsString; if (!String.IsNullOrEmpty(departments)) { foreach (var depId in departments.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { prepod_meta.Prepod_PrepodiCafedri.Add(new Prepod_PrepodiCafedri() { IdCafedri = Convert.ToInt32(depId), IdSotr = userModel.Id, Stavka = 1, TipZanyatosti = 79 }); } } prepod_meta.DegreeId = userModel.PrepodMeta.DegreeId; prepod_meta.IsDismissed = false; newUser.Prepod_PrepodMeta.Add(prepod_meta); } else { //В КОДЕ УСТАНОВЛЕНО МИНИМУМ ОДНА КАФЕДРА List<Prepod_PrepodiCafedri> cafedry = new List<Prepod_PrepodiCafedri>(); var departments = userModel.PrepodMeta.DepartmentsIdsString; if (!String.IsNullOrEmpty(departments)) { foreach (var depId in departments.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { cafedry.Add(new Prepod_PrepodiCafedri() { IdCafedri = Convert.ToInt32(depId), IdSotr = newUser.Prepod_PrepodMeta.First().Id, Stavka = 1, TipZanyatosti = 79 }); } UpdateCafedry(cafedry); newUser.Prepod_PrepodMeta.First().DegreeId = userModel.PrepodMeta.DegreeId; newUser.Prepod_PrepodMeta.First().IsDismissed = false; } else { newUser.Prepod_PrepodMeta.Add(new Prepod_PrepodMeta() { DegreeId = userModel.PrepodMeta.DegreeId, IsDismissed = false }); } } } bool result; if (isNew) AddUser(newUser); else { UpdateUser(newUser); } var firstResult = DB_SaveChanges(); if (firstResult) { var editresult = AddingRolesAndTasks(newUser.Login, userModel.Tasks); result = editresult; } else { result = false; } if (result) { if (isNew) return Json(new { isValid = true, type = "success", message = "Пользователь " + userModel.Login + " добавлен успешно!" }); else { return Json(new { isValid = true, type = "success", message = "Пользователь " + userModel.Login + " редактирован успешно!" }); } } else { if (isNew) return Json( new { isValid = true, type = "error", message = "Пользователь " + userModel.Login + " не добавлен. Ошибка при сохранении данных!" }); else { return Json(new { isValid = true, type = "success", message = "Не удалось сохранить изменения для пользователя " + userModel.Login + " !" }); } } } #endregion //Добавила (валидация видимая) if (userModel.PrepodMeta != null) { List<SelectList> departmentsList = new List<SelectList>(); userModel.PrepodMeta.DepartmentsIds = new List<int>(); foreach (var depId in userModel.PrepodMeta.DepartmentsIdsString.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { userModel.PrepodMeta.DepartmentsIds.Add(Convert.ToInt16(depId)); departmentsList.Add(new SelectList(GetItemsOfDictionary(DictionaryTypeEnum.Кафедры).ToList(), "Id", "Name", depId)); } ViewBag.Dapartments = departmentsList; ViewBag.Degree = new SelectList(GetItemsOfDictionary(DictionaryTypeEnum.УченаяСтепень).ToList(), "Id", "Name"); } return Json(new { view = RenderView.RenderViewToString(ControllerContext, "Create", userModel), isValid = false, type = "error", message = "Проверьте введенные данные!" }); }
public ActionResult EditRows(User editedUser) { var gridModel = new UserJqGridModel(); if (gridModel.UserGrid.AjaxCallBackMode == AjaxCallBackMode.DeleteRow) { //TODO: Проверить на удаление самого себя User user = _accountService.GetUser(editedUser.Id); //DependencyResolver.Current.GetService<IDataProvider>() // .Users.FirstOrDefault(c => c.Id == editedUser.Id); try { //DependencyResolver.Current.GetService<IDataProvider>().Save(); } catch (Exception ex) { //#region Логирование //LogHelper.AddSystemLogMessage(new SystemLogMessage() //{ // AuditEventId = AuditEvents.СистемнаяОшибка, // UserId = CurrentUserId, // EventTypeId = EventTypes.Ошибка, // IPAddress = Request.UserHostAddress, // ComputerName = NetworkHelper.GetHostNameByHostAddress(Request.UserHostAddress), // Date = DateTime.Now, // Detalization = String.Format("Произошла ошибка при удалении пользователя: {0}", ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace) //}); //#endregion // Ошибка удаления } } return RedirectToAction("Users"); }