public async Task <IActionResult> EditMarketingUser(EditMarketingUserViewModel viewModel) { var clientPageUser = viewModel.ClientPageUser; var userId = viewModel.UserId; var userToEdit = await _context.ApplicationUsers.Where(u => u.Id == userId).FirstOrDefaultAsync(); ModelState.Remove("User.FirstName"); ModelState.Remove("User.LastName"); if (ModelState.IsValid) { if (clientPageUser.ClientPageId != 0) { clientPageUser.UserId = userId; _context.Update(clientPageUser); await _context.SaveChangesAsync(); } if (userToEdit.UserTypeId != viewModel.UserTypeId) { userToEdit.UserTypeId = viewModel.UserTypeId; _context.Update(userToEdit); await _context.SaveChangesAsync(); } return(RedirectToAction("MarketingUserDetails", new { Id = viewModel.UserId })); } return(View(viewModel)); }
public async Task <IActionResult> EditMarketingUser(string id) { if (id == null) { return(NotFound()); } var user = await _context.ApplicationUsers .Where(u => u.Id == id) .FirstOrDefaultAsync(); var userTypeOptions = await _context.UserTypes .Where(ut => ut.Id == 1 || ut.Id == 2) .Select(ut => new SelectListItem(ut.Type, ut.Id.ToString())) .ToListAsync(); var assignedClientPages = await _context.ClientPageUsers .Where(cp => cp.UserId == id) .Select(cp => cp.ClientPage) .ToListAsync(); List <SelectListItem> assignClientPageOptions = new List <SelectListItem>(); using (SqlConnection conn = Connection) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = @"SELECT DISTINCT cp.Id, cp.Name FROM ClientPages cp LEFT JOIN ClientPageUsers cpu ON cpu.ClientPageId = cp.Id WHERE cpu.Id IS NULL OR cpu.UserId != @id AND cpu.ClientPageId NOT IN (SELECT cpu.ClientPageId FROM ClientPageUsers cpu WHERE cpu.UserId = @id); "; cmd.Parameters.Add(new SqlParameter("@id", id)); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { if (!reader.IsDBNull(reader.GetOrdinal("Name"))) { var clientPageName = reader.GetString(reader.GetOrdinal("Name")); var clientPageId = reader.GetInt32(reader.GetOrdinal("Id")); SelectListItem selectListItem = new SelectListItem(clientPageName, clientPageId.ToString()); assignClientPageOptions.Add(selectListItem); } ; } reader.Close(); } } assignClientPageOptions.Insert(0, new SelectListItem { Text = "Choose Client Page to assign....", Value = "0" }); var viewModel = new EditMarketingUserViewModel() { User = user, UserTypeId = user.UserTypeId, UserTypeOptions = userTypeOptions, AssignedClientPages = assignedClientPages, ClientPageOptions = assignClientPageOptions, UserId = id }; return(View(viewModel)); }