public ActionResult RetrieveUsers(ManageMessageId? message) { if (User.IsInRole("Admin")) { var records = db.Users.ToList(); var userAccountList = new List<UserRoleViewModel>(); foreach (var item in records) { var userAccount = new UserRoleViewModel() { UserId = item.Id, Email = item.Email, Status = item.Status }; userAccountList.Add(userAccount); } ViewBag.StatusMessage = message == ManageMessageId.AddCustomerSuccess ? "You have successfully added a new Customer." : message == ManageMessageId.ArchiveCustomerSuccess ? "You have just desactivated a Customer account." : message == ManageMessageId.UpdateCustomerSuccess ? "You have successfully activated a Customer account." : message == ManageMessageId.Error ? "An error has occurred." : message == ManageMessageId.AddSupplierSuccess ? "You have successfully added a new Supplier." : message == ManageMessageId.ArchiveSupplierSuccess ? "You have just desactivated a Supplier account." : message == ManageMessageId.UpdateSupplierSuccess ? "You have successfully activated a Supplier account." : message == ManageMessageId.Error ? "An error has occurred." : ""; GetNewSupplierActivation(); GetNewModelsActivation(); return View(userAccountList); } return RedirectToAction("Login", "Account"); }
public async Task<ActionResult> EditUser(string id) { if (id == null) { return RedirectToAction("RetrieveUsers"); } if (User.IsInRole("Admin")) { string userId = id; var user = (from u in db.Users where u.Id == userId select u).FirstOrDefault(); var userRole = new UserRoleViewModel(); userRole.UserId = userId; userRole.Email = user.Email; userRole.Status = user.Status; userRole.UserRoles = db.Roles.OrderBy(x => x.Name).ToList(); var roles = await UserManager.GetRolesAsync(user.Id); userRole.CurrentRoles = new List<string>(roles); userRole.CurrentRoles.Sort(); //ViewBag.UserRoles = userRole.UserRoles // .Select(r => new SelectListItem { Value = r.Name, Text = r.Name }); ViewBag.StatusId = new SelectList(db.Statuses, "StatusId", "Name"); GetNewSupplierActivation(); GetNewModelsActivation(); return View(userRole); } return RedirectToAction("RetrieveUsers"); }
public async Task<ActionResult> EditUser(UserRoleViewModel item, string roleName) { if (User.IsInRole("Admin")) { //int statusId = 1; //ViewBag.StatusId = new SelectList(db.Statuses, "StatusId", "Name", statusId); //string status = (from s in db.Statuses // where s.StatusId == statusId // select s.Name).FirstOrDefault(); var user = (from u in db.Users where u.Id == item.UserId select u).FirstOrDefault(); if (user.Status == "Active") { user.Status = "Inactive"; } else if (user.Status == "Inactive") { user.Status = "Active"; } else if (user.Status == "Pending") { user.Status = "Active"; } db.SaveChanges(); if (user.Status == "Active" && user.ActivationCode != null) { var body = "<p>Dear Valued Customer,</p><p>This is the activation code that has been sent to you in order to validate your registration on BontoBuy</p><p>Your activation code: {0}</p>"; var message = new MailMessage(); message.To.Add(new MailAddress(user.Email)); message.From = new MailAddress("*****@*****.**"); message.Subject = "Register on BontoBuy"; message.Body = string.Format(body, user.ActivationCode); message.IsBodyHtml = true; var smtp = new SmtpClient(); var credential = new NetworkCredential() { UserName = "******", Password = "******" }; smtp.Credentials = credential; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; await smtp.SendMailAsync(message); } // await UserManager.AddToRoleAsync(item.UserId, roleName); var roles = await UserManager.GetRolesAsync(user.Id); var userRole = new List<string>(roles); var matchingValueSupplier = userRole.FirstOrDefault(stringToCompare => stringToCompare.Contains("Supplier")); if (matchingValueSupplier == "Supplier") return RedirectToAction("RetrieveSuppliers"); var matchingValueCustomer = userRole.FirstOrDefault(stringToCompare => stringToCompare.Contains("Customer")); if (matchingValueCustomer == "Customer") return RedirectToAction("RetrieveCustomers"); GetNewSupplierActivation(); GetNewModelsActivation(); return RedirectToAction("RetrieveUsers"); } return RedirectToAction("Login", "Account"); }
public ActionResult NewSuppliers() { var records = db.Users.Where(u => u.Roles.Join(db.Roles, usrRole => usrRole.RoleId, role => role.Id, (usrRole, role) => role).Any(r => r.Name.Equals("Supplier")) && u.Status == "Pending").ToList(); var userAccountList = new List<UserRoleViewModel>(); foreach (var item in records) { var userAccount = new UserRoleViewModel() { UserId = item.Id, Email = item.Email, Status = item.Status }; userAccountList.Add(userAccount); } return View("../Role/RetrieveSuppliers", userAccountList); }