Exemple #1
0
        public async Task <IActionResult> EditUser(string id)
        {
            var user = await userManager.FindByIdAsync(id);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with the respective ID:{id} cannot be found.";
                return(View("NotFound"));
            }

            var userGetClaims = await userManager.GetClaimsAsync(user); //get claims from this user

            var userGetRoles = await userManager.GetRolesAsync(user);   //get roles from this user

            var editUserModel = new EditUserViewModels()
            {
                Id          = user.Id,
                FamilyName  = user.SurName,
                Name        = user.Name,
                Adress      = user.Adress,
                PhoneNumber = user.PhoneNumber,
                City        = user.City,
                Country     = user.Country,
                Email       = user.Email,
                Age         = user.Age,
                Roles       = userGetRoles,
                Claims      = userGetClaims.Select(c => c.Type).ToList()
            };


            return(View(editUserModel));
        }
Exemple #2
0
        public ActionResult Edit(string id)
        {
            Permission p    = new Permission();
            bool       auth = p.IsGranted(User.Identity.Name, this.ControllerContext.RouteData.Values["controller"].ToString() + "_" + this.ControllerContext.RouteData.Values["action"].ToString());

            if (!auth)
            {
                return(new ViewResult()
                {
                    ViewName = "Unauthorized"
                });
            }
            else
            {
                EditUserViewModels editUserViewModels = new EditUserViewModels
                {
                    User   = db.User.Where(x => x.Id == id).FirstOrDefault(),
                    RoleId = db.UserRole.Where(x => x.UserId == id).Select(x => x.RoleId).ToList()
                };
                var interest_vm = editUserViewModels.User.Interest == null ? null : JsonConvert.DeserializeObject <List <InterestViewModels> >(editUserViewModels.User.Interest);
                if (interest_vm != null)
                {
                    editUserViewModels.LanguageId = interest_vm.Select(x => x.Languages_Id).ToList();
                }

                ViewBag.listRole     = new SelectList(db.Role.OrderBy(x => x.Name).ToList(), "Id", "Name");
                ViewBag.listBranch   = new SelectList(db.Branches.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");
                ViewBag.listLanguage = new SelectList(db.Languages.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");
                ViewBag.listPromo    = new SelectList(db.PromotionEvents.OrderBy(x => x.Name).ToList(), "Id", "Name");
                return(View(editUserViewModels));
            }
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,Email,PhoneNumber")] EditUserViewModels editUser, params string[] selectedRole)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindByIdAsync(editUser.Id);

                if (user == null)
                {
                    return(HttpNotFound());
                }
                user.Email       = editUser.Email;
                user.PhoneNumber = editUser.PhoneNumber;

                var userRoles = await UserManager.GetRolesAsync(user.Id);

                selectedRole = selectedRole ?? new string[] { };

                var result = await UserManager.AddToRolesAsync(user.Id, selectedRole.Except(userRoles).ToArray <string>());

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", result.Errors.First());
                    return(View());
                }
                result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(selectedRole).ToArray <string>());

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", result.Errors.First());
                    return(View());
                }
                return(RedirectToAction("Index"));
            }
            return(View());
        }
        // GET: /UserAdmin/Edit/5
        public async Task <ActionResult> Edit(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var user = await UserManager.FindByIdAsync(id.Value);

            if (user == null)
            {
                return(HttpNotFound());
            }
            var userRoles = await UserManager.GetRolesAsync(user.Id);


            EditUserViewModels userDetail = new EditUserViewModels();

            userDetail.Id          = user.Id;
            userDetail.UserName    = user.UserName;
            userDetail.Email       = user.Email;
            userDetail.PhoneNumber = user.PhoneNumber;
            userDetail.RolesList   = RoleManager.Roles.ToList().Select(x => new SelectListItem()
            {
                Selected = userRoles.Contains(x.Name),
                Text     = x.Name,
                Value    = x.Name
            });
            return(View(userDetail));
        }
Exemple #5
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,Email,PhoneNumber,UserName")] EditUserViewModels model)
        {
            if (ModelState.IsValid)
            {
                User user = UserManager.FindById(model.Id);

                user.UserName    = model.UserName.ToUpper();
                user.Email       = model.Email;
                user.PhoneNumber = model.PhoneNumber;

                var result = await UserManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                AddErrors(result, user);
            }
            return(View(model));
        }
Exemple #6
0
        // GET: Users/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            User user = db.Users.Find(id);

            if (user == null)
            {
                return(HttpNotFound());
            }
            EditUserViewModels model = new EditUserViewModels
            {
                Id          = user.Id,
                UserName    = user.UserName,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber
            };

            return(View(model));
        }
Exemple #7
0
        public async Task <IActionResult> EditUser(EditUserViewModels model)
        {
            var user = await userManager.FindByIdAsync(model.Id);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with the respective ID:{model.Id} cannot be found.";
                return(View("NotFound"));
            }
            else
            {
                if (ModelState.IsValid)
                {
                    user.SurName     = model.FamilyName;
                    user.Name        = model.Name;
                    user.Adress      = model.Adress;
                    user.PhoneNumber = model.PhoneNumber;
                    user.City        = model.City;
                    user.Country     = model.Country;
                    user.Email       = model.Email;
                    user.Age         = model.Age;

                    var result = await userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("ListUsers", "Administration"));
                    }
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description); // add errors to ModelStats
                    }
                }
            }
            return(View(model));
        }
Exemple #8
0
        public ActionResult Edit([Bind(Include = "User,RoleId,LanguageId")] EditUserViewModels editUserViewModels)
        {
            if (ModelState.IsValid)
            {
                List <InterestViewModels> ivm = new List <InterestViewModels>();
                if (editUserViewModels.LanguageId != null)
                {
                    foreach (var i in editUserViewModels.LanguageId)
                    {
                        ivm.Add(new InterestViewModels
                        {
                            Languages_Id = i
                        });
                    }
                }
                string list_interest = editUserViewModels.LanguageId == null ? string.Empty : JsonConvert.SerializeObject(ivm);

                var current_data = db.User.Find(editUserViewModels.User.Id);
                current_data.Firstname          = editUserViewModels.User.Firstname;
                current_data.Middlename         = editUserViewModels.User.Middlename;
                current_data.Lastname           = editUserViewModels.User.Lastname;
                current_data.Birthday           = editUserViewModels.User.Birthday;
                current_data.UserName           = editUserViewModels.User.UserName;
                current_data.Email              = editUserViewModels.User.Email;
                current_data.Phone1             = editUserViewModels.User.Phone1;
                current_data.Phone2             = editUserViewModels.User.Phone2;
                current_data.Address            = editUserViewModels.User.Address;
                current_data.Notes              = editUserViewModels.User.Notes;
                current_data.Active             = editUserViewModels.User.Active;
                current_data.Branches_Id        = editUserViewModels.User.Branches_Id;
                current_data.PromotionEvents_Id = editUserViewModels.User.PromotionEvents_Id;
                current_data.Interest           = list_interest;
                db.Entry(current_data).State    = EntityState.Modified;
                db.SaveChanges();

                //var user = new UserModels()
                //{
                //    Id = editUserViewModels.User.Id,
                //    Firstname = editUserViewModels.User.Firstname,
                //    Middlename = editUserViewModels.User.Middlename,
                //    Lastname = editUserViewModels.User.Lastname,
                //    Birthday = editUserViewModels.User.Birthday,
                //    UserName = editUserViewModels.User.UserName,
                //    Email = editUserViewModels.User.Email,
                //    Phone1 = editUserViewModels.User.Phone1,
                //    Phone2 = editUserViewModels.User.Phone2,
                //    Address = editUserViewModels.User.Address,
                //    Notes = editUserViewModels.User.Notes,
                //    Active = editUserViewModels.User.Active,
                //    Branches_Id = editUserViewModels.User.Branches_Id
                //};
                //var userRole = new UserRoleModels() { UserId = userViewModels.Id, RoleId = userViewModels.RoleId };

                using (var database = new iSpeakContext())
                {
                    //database.User.Attach(user);
                    //database.Entry(user).Property(x => x.Firstname).IsModified = true;
                    //database.Entry(user).Property(x => x.Middlename).IsModified = true;
                    //database.Entry(user).Property(x => x.Lastname).IsModified = true;
                    //database.Entry(user).Property(x => x.Birthday).IsModified = true;
                    //database.Entry(user).Property(x => x.UserName).IsModified = true;
                    //database.Entry(user).Property(x => x.Email).IsModified = true;
                    //database.Entry(user).Property(x => x.Phone1).IsModified = true;
                    //database.Entry(user).Property(x => x.Phone2).IsModified = true;
                    //database.Entry(user).Property(x => x.Address).IsModified = true;
                    //database.Entry(user).Property(x => x.Notes).IsModified = true;
                    //database.Entry(user).Property(x => x.Active).IsModified = true;
                    //database.Entry(user).Property(x => x.Branches_Id).IsModified = true;

                    int deleteUserRole = database.Database.ExecuteSqlCommand("DELETE FROM AspNetUserRoles WHERE UserId='" + editUserViewModels.User.Id + "'");

                    //database.UserRole.Attach(userRole);
                    //database.Entry(userRole).Property(x => x.RoleId).IsModified = true;

                    //database.SaveChanges();
                }

                //var list_role_before = db.UserRole.AsNoTracking().Where(x => x.UserId == editUserViewModels.User.Id).ToList();
                //foreach (var role in list_role_before)
                //{
                //    db.UserRole.Remove(role);
                //}

                foreach (var role_id in editUserViewModels.RoleId)
                {
                    //UserRoleModels urm = new UserRoleModels();
                    //urm.UserId = editUserViewModels.User.Id;
                    //urm.RoleId = role_id;
                    //db.UserRole.Add(urm);
                    using (var ctx = new iSpeakContext())
                    {
                        int updateUserRole = ctx.Database.ExecuteSqlCommand("INSERT INTO AspNetUserRoles VALUES ('" + editUserViewModels.User.Id + "','" + role_id + "')");
                    }
                }
                //db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            ViewBag.listRole     = new SelectList(db.Role.OrderBy(x => x.Name).ToList(), "Id", "Name");
            ViewBag.listBranch   = new SelectList(db.Branches.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");
            ViewBag.listLanguage = new SelectList(db.Languages.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");
            ViewBag.listPromo    = new SelectList(db.PromotionEvents.OrderBy(x => x.Name).ToList(), "Id", "Name");
            return(View(editUserViewModels));
        }