public ViewResult AllUsers() { var users = _context.Customers.Include(c => c.UserProfile).ToList(); AdminCustomerViewModel viewmodel = new AdminCustomerViewModel(); viewmodel.Customers = users; return(View(viewmodel)); }
public async Task <IActionResult> EditCustomer(AdminCustomerViewModel model) { var user = await _userManager.FindByIdAsync(model.Customer.Id); if (user == null) { return(NotFound($"Unable to load user with ID '{model.Customer.Id}'.")); } if (!ModelState.IsValid) { return(View(model)); } if ((model.PhoneNumber != user.PhoneNumber) || (model.Customer.FullName != user.Name)) { user.PhoneNumber = model.PhoneNumber; user.Name = model.Customer.FullName; var setResult = await _userManager.UpdateAsync(user); if (!setResult.Succeeded) { TempData["StatusMessage"] = "#E#:Unable to update the User information."; return(View(model)); } } if ((model.OldRole == "Partner") || (model.OldRole == "Administrator") || model?.OldRole == "None") { await SetupNewRole(user, model.OldRole, "Customer"); } if (_repoCust.Save(model.Customer) == null) { var userId = await _userManager.GetUserIdAsync(user); TempData["StatusMessage"] = $"Unexpected error occurred saving information for the customer with ID '{userId}'."; return(View(model)); } return(RedirectToAction(nameof(Index), new { searchText = model.SearchText })); }
// GET: Admin/Customers public async Task <IActionResult> Index() { ViewData["CountryID"] = new SelectList(new CountryHelper(_context).GetVmList(), "ID", "Name"); var customers = await _context.Customers.ToListAsync(); var vms = new List <AdminCustomerViewModel>(); foreach (var item in customers) { var user = await _context.Users.SingleAsync(u => u.Id == item.UserId); var country = await _context.Countries.SingleAsync(c => c.ID == item.CountryId); var custVm = new AdminCustomerViewModel { CustomerID = item.CustomerID, CustomerNo = item.CustomerNo, AdditionalAddress = item.AdditionalAddress, Address = item.Address, Addresses = null, AllowedPayByBill = item.AllowedPayByBill, City = item.City, CountryName = country.Name, CountryId = item.CountryId, Name = item.Name, FirstName = item.FirstName, PostCode = item.PostCode, UserEmail = user.Email, UserId = item.UserId, IsEmailConfirmed = user.EmailConfirmed }; vms.Add(custVm); } return(View(vms)); }
public AdminCustomerPage() { NavigationPage.SetBackButtonTitle(this, ""); InitializeComponent(); BindingContext = _adminCustomerViewModel = new AdminCustomerViewModel(Navigation); }
private async Task <AdminCustomerViewModel> GetCustomerViewModel(Guid id) { AdminCustomerViewModel result = new AdminCustomerViewModel(); var customer = await _context.Customers.SingleAsync(c => c.CustomerID == id); var user = await _context.Users.SingleAsync(u => u.Id == customer.UserId); var countries = await _context.Countries.ToListAsync(); List <ShippingAddress> shipToAddresses = null; var openorders = await _context.Orders.Where(o => o.CustomerID == id && !o.IsClosed).ToListAsync(); var closedorders = await _context.Orders.Where(o => o.CustomerID == id && o.IsClosed).ToListAsync(); var vmOpenOrders = new List <OrderViewModel>(); var vmClosedOrders = new List <OrderViewModel>(); foreach (var item in openorders) { var op = new OrderViewModel { ID = item.ID, Number = item.Number, OrderDate = item.OrderDate }; vmOpenOrders.Add(op); } foreach (var item in closedorders) { var cl = new OrderViewModel { ID = item.ID, Number = item.Number, OrderDate = item.OrderDate }; vmClosedOrders.Add(cl); } try { shipToAddresses = await _context.ShippingAddresses.Where(sh => sh.CustomerID == customer.CustomerID).ToListAsync(); } catch (Exception e) { logger.LogError(e, "Fehler beim abrufen einer Lieferadresse."); shipToAddresses = null; } result.CustomerID = customer.CustomerID; result.CustomerNo = customer.CustomerNo; result.FirstName = customer.FirstName; result.Name = customer.Name; result.PostCode = customer.PostCode; result.UserEmail = user.Email; result.UserId = user.Id; result.IsEmailConfirmed = user.EmailConfirmed; result.City = customer.City; result.AdditionalAddress = customer.AdditionalAddress; result.Address = customer.Address; result.AllowedPayByBill = customer.AllowedPayByBill; result.Addresses = new List <ShippingAddressViewModel>(); result.CountryId = customer.CountryId; result.CountryName = countries.Single(c => c.ID == customer.CountryId).Name; result.OpenOrders = vmOpenOrders; result.ClosedOrders = vmClosedOrders; if (shipToAddresses != null) { foreach (var item in shipToAddresses) { var shipTo = new ShippingAddressViewModel { ID = item.ID, Address = item.Address, AdditionalAddress = item.AdditionalAddress, City = item.City, CountryID = item.CountryID, CountryName = countries.Single(c => c.ID == item.CountryID).Name, CustomerID = item.CustomerID, FirstName = item.FirstName, IsMainAddress = item.IsMainAddress, LastName = item.LastName, PostCode = item.PostCode, IsInvoiceAddress = item.IsInvoiceAddress }; result.Addresses.Add(shipTo); } } return(result); }