public async Task <IActionResult> Edit(int id) { Customer customer = await unitOfWork.Customers.Get(id); ApplicationUser user = await userManager.FindByEmailAsync(customer.Email); var userRoles = await userManager.GetRolesAsync(user); var allRoles = roleManager.Roles.ToList(); if (customer == null) { return(NotFound()); } var model = new EditCustomerView { Id = customer.CustomerId, FirstName = customer.Name, SecondName = customer.Surname, Phone = customer.PhoneNumber, Email = customer.Email, AllRoles = allRoles, UserRoles = userRoles }; return(View(model)); }
public async Task <IActionResult> CustomerSettingPage(EditCustomerView model) { Customer customer = await unitOfWork.Customers.Get(model.Id); if (customer != null) { foreach (var number in model.Phone) { if (!char.IsDigit(number)) { ViewBag.Message = "Phone number is invalid!"; return(View("EditPhoneError")); } } customer.FirstName = model.FirstName; customer.SecondName = model.SecondName; customer.Phone = model.Phone; ApplicationUser user = await userManager.FindByEmailAsync(model.Email); user.UserName = model.Email; unitOfWork.Customers.Update(customer); await unitOfWork.SaveAsync(); } return(RedirectToAction("Index", "Home")); }
private void EditCustomer() { var vm = new EditCustomerViewModel(new UnitOfWorkFactory(), SelectedCustomer); vm.Init(); var window = new EditCustomerView(vm); if (window.ShowDialog() ?? false) { CollectionViewSource.GetDefaultView(CustomerList).Refresh(); } }
private void AddCustomer() { var view = new EditCustomerView(); var viewModel = (view.DataContext as EditCustomerViewModel); viewModel.Customer = new Customer(); var result = view.ShowDialog(); if (result.Value) { this.Customers.Add(viewModel.Customer); } }
private void NewCustomer() { var customer = new Customer(); var vm = new EditCustomerViewModel(new UnitOfWorkFactory(), customer); vm.Init(); var window = new EditCustomerView(vm); if (window.ShowDialog() ?? false) { CustomerList.Add(customer); } }
private void OnEditCustomerCommand(object obj) { var e = new EditCustomerViewModel(SelectedCustomer); var editCustomerDialog = new EditCustomerView(); e.RequestClose += (s, e) => editCustomerDialog.Close(); editCustomerDialog.DataContext = e; editCustomerDialog.Closed += (s, e) => { LoadData(); }; editCustomerDialog.ShowDialog(); }
public async Task <IActionResult> Edit(EditCustomerView model, List <string> roles) { if (ModelState.IsValid) { Customer customer = await unitOfWork.Customers.Get(model.Id); ApplicationUser user = await userManager.FindByEmailAsync(customer.Email); if (user != null && customer != null) { user.Email = model.Email; user.UserName = model.FirstName + model.SecondName; user.UpdateTime = DateTime.Now; var userRoles = await userManager.GetRolesAsync(user); var allRoles = roleManager.Roles.ToList(); var addedRoles = roles.Except(userRoles); var removedRoles = userRoles.Except(roles); await userManager.AddToRolesAsync(user, addedRoles); await userManager.RemoveFromRolesAsync(user, removedRoles); customer.FirstName = model.FirstName; customer.SecondName = model.SecondName; customer.Phone = model.Phone; customer.Email = model.Email; unitOfWork.Customers.Update(customer); await unitOfWork.SaveAsync(); var result = await userManager.UpdateAsync(user); if (result.Succeeded) { return(RedirectToAction("Index")); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } } return(View(model)); }
public async Task <IActionResult> CustomerSettingPage(EditCustomerView model) { Customer customer = await unitOfWork.Customers.Get(model.Id); customer.FirstName = model.FirstName; customer.SecondName = model.SecondName; customer.Phone = model.Phone; ApplicationUser user = await userManager.FindByEmailAsync(model.Email); user.UserName = model.Email; unitOfWork.Customers.Update(customer); await unitOfWork.SaveAsync(); return(RedirectToAction("Index", "Home")); }
private void ModifyCustomer(Customer customer) { if (customer == null) { return; } var view = new EditCustomerView(); var viewModel = (view.DataContext as EditCustomerViewModel); viewModel.Customer = ObjectUtility.DeepCopy(customer); var result = view.ShowDialog(); if (result.Value) { this.Customers.Remove(customer); this.Customers.Add(viewModel.Customer); } }
public IActionResult CustomerSettingPage() { string name = User.Identity.Name; Customer customer = unitOfWork.Customers.GetAll().Where(c => c.Email == name) .FirstOrDefault(); if (customer != null) { EditCustomerView model = new EditCustomerView { Id = customer.Id, FirstName = customer.FirstName, SecondName = customer.SecondName, Phone = customer.Phone, Email = customer.Email, }; return(View(model)); } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> Edit(EditCustomerView model, List <string> roles) { if (ModelState.IsValid) { Customer customer = await unitOfWork.Customers.Get(model.Id); ApplicationUser user = await userManager.FindByEmailAsync(customer.Email); if (user != null && customer != null) { if (!roles.Contains("manager") && model.MakePsychologist) { roles.Add("manager"); } user.Email = model.Email; user.UserName = model.Email; user.UpdateTime = DateTime.Now; var userRoles = await userManager.GetRolesAsync(user); var allRoles = roleManager.Roles.ToList(); var addedRoles = roles.Except(userRoles); var removedRoles = userRoles.Except(roles); await userManager.AddToRolesAsync(user, addedRoles); await userManager.RemoveFromRolesAsync(user, removedRoles); if (model.MakePsychologist) { var psychologist = new Psychologist { Name = model.FirstName, Surname = model.SecondName, BirthDate = customer.BirthDate, Email = model.Email, PhoneNumber = model.Phone }; await unitOfWork.Psychologists.Create(psychologist); await unitOfWork.Customers.Delete(customer.CustomerId); await unitOfWork.SaveAsync(); } else { customer.Name = model.FirstName; customer.Surname = model.SecondName; customer.PhoneNumber = model.Phone; customer.Email = model.Email; unitOfWork.Customers.Update(customer); await unitOfWork.SaveAsync(); var result = await userManager.UpdateAsync(user); if (result.Succeeded) { return(RedirectToAction("Index")); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } } } return(RedirectToAction("Index", "Customer")); }