Пример #1
0
 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;
     }
 }
Пример #2
0
 //TODO:тут этого не должно быть
 protected bool AddUser(User user)
 {
     return _accountService.AddUser(user);
 }
Пример #3
0
 //TODO:тут этого не должно быть
 protected bool UpdateUser(User user)
 {
     return _accountService.UpdateUser(user);
 }
Пример #4
0
 //TODO:тут этого не должно быть
 protected bool DeleteUser(User user)
 {
     return _accountService.DeleteUser(user);
 }
Пример #5
0
        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 = "Проверьте введенные данные!"
            });
        }
Пример #6
0
        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");
        }