Пример #1
0
 public AddProfessorView(Professor p = null)
 {
     InitializeComponent();
     DataContext = new AddProfessorViewModel(this, p, ApplicationService.Instance.EventAggregator);
 }
Пример #2
0
        public virtual async Task <ActionResult> Create(AddProfessorViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (!string.IsNullOrEmpty(viewModel.PNO))
                    {
                        if (_ProfessorService.CheckPNO_Exist(viewModel.PNO))
                        {
                            PopulateGroupsDropDownList(viewModel.Group_Id);
                            ModelState.AddModelError("PNO", "This Professor.NO Is Already Exist In Database");
                            return(View(viewModel));
                        }
                    }
                    var newUser = new User
                    {
                        RegisterType  = UserRegisterType.Active,
                        IsBaned       = false,
                        IP            = Request.ServerVariables["HTTP_X_FORWARDED_FOR"],
                        RegisterDate  = DateTime.Now,
                        LastLoginDate = DateTime.Now,
                        UserName      = viewModel.UserName,
                        Email         = viewModel.Email,
                        Password      = Encryption.EncryptingPassword(viewModel.Password),
                        Role          = _roleService.GetRoleByName("professor"),
                        ProfessorData = new Professor
                        {
                            AvatarPath = viewModel.AvatarPath,
                            BirthDay   = viewModel.BirthDay,
                            Edution    = viewModel.Edution,
                            FirstName  = viewModel.FirstName,
                            Gender     = viewModel.Gender,
                            LastName   = viewModel.LastName,
                            PNO        = viewModel.PNO,
                            Tendency   = viewModel.Tendency,

                            Group = _GroupsService.GetById(viewModel.Group_Id)
                        }
                    };

                    var addUserStatus = _userService.Add(newUser);
                    PopulateGroupsDropDownList(viewModel.Group_Id);
                    if (addUserStatus == AddUserStatus.AddingUserSuccessfully)
                    {
                        await _unitOfWork.SaveChangesAsync();

                        return(RedirectToAction("Index"));
                    }
                    switch (addUserStatus)
                    {
                    case AddUserStatus.EmailExist:
                        ModelState.AddModelError("Email", "This Email Is Already Exist In Database");
                        return(View(viewModel));

                    case AddUserStatus.UserNameExist:
                        ModelState.AddModelError("UserName", "This UserName Is Already Exist In Database");
                        return(View(viewModel));
                    }
                    await _unitOfWork.SaveChangesAsync();

                    CacheManager.InvalidateChildActionsCache();
                    return(RedirectToAction("Index", "Professor"));
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException e)
                {
                    string s = "";
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        s += String.Format("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)
                        {
                            s += String.Format("- Property: \"{0}\", Error: \"{1}\"",
                                               ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    ViewBag.err = s;
                }
            }
            PopulateGroupsDropDownList(null);
            return(View(viewModel));
        }