Exemplo n.º 1
0
        public ActionResult Edit(string id)
        {
            EditOSUser editOSUser;

            if (!string.IsNullOrWhiteSpace(id))
            {
                var osUser = OSUsers.GetByID(id);

                editOSUser         = Mapper.Map <EditOSUser>(osUser);
                editOSUser.RoleIDs = UserRoles.GetByUserID(id).Select(item => item.RoleId).ToArray();
            }
            else
            {
                editOSUser = new EditOSUser();
            }

            return(View(editOSUser));
        }
Exemplo n.º 2
0
        public ActionResult Edit(EditOSUser editOSUser, bool?gender, int?stateID, int?cityID)
        {
            try
            {
                var osUser = Mapper.Map <OSUser>(editOSUser);

                var files = Utilities.SaveFiles(Request.Files, Utilities.GetNormalFileName(osUser.UserName), StaticPaths.OSUsers);

                if (files.Count > 0)
                {
                    osUser.ImageFile = files[0].Title;
                }

                osUser.LastUpdate = DateTime.Now;

                ViewBag.Success = true;

                if (string.IsNullOrWhiteSpace(osUser.Id))
                {
                    osUser.Id = Guid.NewGuid().ToString();

                    foreach (var item in editOSUser.RoleIDs)
                    {
                        osUser.Roles.Add(new IdentityUserRole()
                        {
                            RoleId = item, UserId = osUser.Id
                        });
                    }

                    var result = UserManager.Create(osUser, editOSUser.Password);

                    if (result.Succeeded)
                    {
                        UserNotifications.Send(UserID, String.Format("جدید - کاربر '{0}'", osUser.UserName), "/Admin/OSUsers/Edit/" + osUser.Id, NotificationType.Success);
                        editOSUser = new EditOSUser();
                    }
                    else
                    {
                        throw new Exception(result.Errors.Aggregate((a, b) => a + ", " + b));
                    }
                }
                else
                {
                    var orgOSUser = UserManager.FindById(osUser.Id);

                    orgOSUser.Firstname    = osUser.Firstname;
                    orgOSUser.Lastname     = osUser.Lastname;
                    orgOSUser.UserName     = osUser.UserName;
                    orgOSUser.Email        = osUser.Email;
                    orgOSUser.LastUpdate   = DateTime.Now;
                    orgOSUser.ImageFile    = osUser.ImageFile;
                    orgOSUser.IsActive     = osUser.IsActive;
                    orgOSUser.NationalCode = osUser.NationalCode;
                    orgOSUser.Phone        = osUser.Phone;
                    orgOSUser.Mobile       = osUser.Mobile;
                    orgOSUser.BirthDate    = osUser.BirthDate;
                    if (gender.HasValue)
                    {
                        orgOSUser.Gender = gender.Value;
                    }

                    //TODO: UserAddresses
                    if (stateID != -1)
                    {
                        orgOSUser.StateID = stateID;
                    }
                    if (cityID != -1)
                    {
                        orgOSUser.CityID = cityID;
                    }
                    orgOSUser.HomeAddress = osUser.HomeAddress;
                    orgOSUser.PostalCode  = osUser.PostalCode;

                    orgOSUser.CardNumber = osUser.CardNumber;

                    UserManager.Update(orgOSUser);

                    if (!String.IsNullOrWhiteSpace(editOSUser.Password))
                    {
                        UserManager.RemovePassword(editOSUser.Id);
                        UserManager.AddPassword(editOSUser.Id, editOSUser.Password);
                    }

                    var tmpRoles = UserRoles.GetByUserID(editOSUser.Id);

                    foreach (var item in editOSUser.RoleIDs)
                    {
                        var role    = Roles.GetByID(item);
                        var tmpRole = tmpRoles.SingleOrDefault(r => r.RoleId == item);

                        if (tmpRole == null)
                        {
                            UserManager.AddToRole(editOSUser.Id, role.Name);
                        }
                        else
                        {
                            tmpRoles.Remove(tmpRole);
                        }
                    }

                    foreach (var item in tmpRoles)
                    {
                        var role = Roles.GetByID(item.RoleId);
                        UserManager.RemoveFromRole(editOSUser.Id, role.Name);
                    }
                }
            }
            catch (Exception ex)
            {
                SetErrors(ex);
            }

            return(ClearView(editOSUser));
        }
Exemplo n.º 3
0
        public ActionResult Index(EditOSUser editOSUser, bool?gender, int?stateID, int?cityID)
        {
            try
            {
                var osUser = Mapper.Map <OSUser>(editOSUser);

                var files = Utilities.SaveFiles(Request.Files, Utilities.GetNormalFileName(User.Identity.GetUserName()), StaticPaths.OSUsers);

                var orgOSUser = UserManager.FindById(UserID);

                orgOSUser.Firstname    = osUser.Firstname;
                orgOSUser.Lastname     = osUser.Lastname;
                orgOSUser.Email        = osUser.Email;
                orgOSUser.LastUpdate   = DateTime.Now;
                orgOSUser.NationalCode = osUser.NationalCode;
                orgOSUser.BirthDate    = osUser.BirthDate;

                // TODO: UserAddresses
                orgOSUser.Phone  = osUser.Phone;
                orgOSUser.Mobile = osUser.Mobile;
                if (gender.HasValue)
                {
                    orgOSUser.Gender = gender.Value;
                }
                if (stateID != -1)
                {
                    orgOSUser.StateID = stateID;
                }
                if (cityID != -1)
                {
                    orgOSUser.CityID = cityID;
                }
                orgOSUser.HomeAddress = osUser.HomeAddress;
                orgOSUser.PostalCode  = osUser.PostalCode;

                if (files.Count > 0)
                {
                    orgOSUser.ImageFile = files[0].Title;
                }
                orgOSUser.CardNumber = osUser.CardNumber;

                UserManager.Update(orgOSUser);

                if (!String.IsNullOrWhiteSpace(editOSUser.Password))
                {
                    UserManager.RemovePassword(UserID);
                    UserManager.AddPassword(UserID, editOSUser.Password);
                }

                ViewBag.Success = true;

                UserNotifications.Send(UserID, String.Format("ویرایش اطلاعات کاربری '{0}'", osUser.UserName), "My-Account/My-Profile", NotificationType.Success);

                editOSUser = Mapper.Map <EditOSUser>(orgOSUser);

                return(View(url + "Index.cshtml", editOSUser));
            }
            catch (Exception ex)
            {
                SetErrors(ex);
                return(View(url + "Index.cshtml"));
            }
        }