public async Task<ActionResult> Create(string userId = "") { var dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); var order = new CreateOrderViewModel { Date = dt }; if (User.IsInRole("Менеджер")) { await InitOrder(order); if (!string.IsNullOrEmpty(userId)) order.UserId = userId; } else await InitOrder(order, User.Identity.GetUserId()); return View(order); }
public async Task<ActionResult> Index() { var result = new List<CreateOrderViewModel>(); foreach (var el in await OrderManager.GetOrdersAsync()) { var order = new CreateOrderViewModel(el) { User = (await UserManager.FindByIdAsync(el.UserId)).ToString(), Products = await ProductManager.GetProducsInOrderAsync(el.Id) }; var rec = await OrderManager.GetReceiptAsync(el.Id); order.ReceiptExist = rec != null; result.Add(order); } return View(result); }
public async Task<ActionResult> Create(CreateOrderViewModel model, Adress adress) { ValidateAdress(model.AdresShipping ?? adress); ValidateProduct(model.Products); if (ModelState.IsValid) { if (model.AdresShipping == null) model.AdresShipping = adress; await CreateOrder(model); return RedirectToAction("Index", "Products"); } await InitListTypes(model); return View(model); }
public async Task<ActionResult> ReceiptsView() { var result = new List<CreateOrderViewModel>(); foreach (var el in await OrderManager.GetReceiptsListAsync()) { var order = new CreateOrderViewModel(el.Order) { Id = el.Id.ToString("D6"), ShippingCost = el.ShippingCost, User = (await UserManager.FindByIdAsync(el.Order.UserId)).ToString(), Products = await ProductManager.GetProducsInOrderAsync(el.Order.Id), ReceiptStatus = el.Status.ToString() }; result.Add(order); } return View(result); }
private async Task ModifyOrder(CreateOrderViewModel model) { var order = await GetOrder(await OrderManager.FindAsync(model.Id), model); order = await OrderManager.CreateOrUpdate(order); foreach (var el in model.Products) { var detail = await OrderManager.DetailsFindAsync(order.Id, el.Id); if (detail == null) continue; detail.Count = el.Count; await OrderManager.CreateOrUpdateDetails(detail); } await OrderManager.Save(); }
private async Task<Order> GetOrder(Order order, CreateOrderViewModel model) { order.User = await UserManager.FindByIdAsync(model.UserId); order.ShippingType = await OrderManager.GetShippingTypeByIdAsync(model.ShippingTypeId); order.PaymentType = await OrderManager.GetPaymentTypeByIdAsync(model.PaymentTypesId); order.Shop = await AdressManager.GetShop(model.ShopId); order.AdresShipping = await AdressManager.GetOrCreateAdress(model.AdresShipping); order.AdressId = order.AdresShipping.Id; order.Distance = model.Distance; return order; }
private async Task CreateOrder(CreateOrderViewModel model) { var order = await GetOrder(model.GetOrder, model); var products = model.Products.Where(o => o.Count > 0).ToList(); order = await OrderManager.CreateOrUpdate(order); foreach (var el in products) { var product = await ProductManager.FindAsync(el.Id); if (product == null) continue; var detail = new OrderDetail { IdOrder = order.Id, Product = product, Order = order, IdProduct = product.Id, Count = el.Count, Price = product.Price }; await OrderManager.CreateOrUpdateDetails(detail); } await OrderManager.Save(); }
private async Task InitUsers(CreateOrderViewModel order) { var users = new List<ApplicationUser>(); foreach (var user in await UserManager.Users.ToListAsync()) { if (await UserManager.IsInRoleAsync(user.Id, "Користувач")) users.Add(user); } order.Users = users; //order.NewUsers = new RegisterViewModel { Adress = new Adress() }; }
private async Task<CreateOrderViewModel> InitOrder(Order model, string userid) { var order = new CreateOrderViewModel(model) { ShippingTypes = await OrderManager.GetShippingTypesListAsync(), PaymentTypes = await OrderManager.GetPaymentTypesListAsync(), Products = await ProductManager.GetProducsInOrderAsync(model.Id), UserId = userid }; var shop = await AdressManager.GetShop(); if (shop != null) { order.ShopId = shop.Id; order.ShopAdress = shop.Adress.FullAdress; } var useradress = await AdressManager.GetAdress(model.AdressId); if (useradress != null) { order.AdresShipping = useradress; } return order; }
private async Task InitOrder(CreateOrderViewModel order, string userid = "") { order.ShippingTypes = await OrderManager.GetShippingTypesListAsync(); order.PaymentTypes = await OrderManager.GetPaymentTypesListAsync(); await AdressManager.GetListAdressAsync(); var shop = await AdressManager.GetShop(); if (shop != null) { order.ShopId = shop.Id; order.ShopAdress = shop.Adress.FullAdress; } order.Products = await ProductManager.GetProducsAsync(); if (!string.IsNullOrEmpty(userid)) { var user = await UserManager.FindByIdAsync(userid); order.UserId = userid; order.AdresShipping = user.Adress ?? new Adress(); } else await InitUsers(order); }
private async Task InitListTypes(CreateOrderViewModel order) { order.ShippingTypes = await OrderManager.GetShippingTypesListAsync(); order.PaymentTypes = await OrderManager.GetPaymentTypesListAsync(); if (User.IsInRole("Менеджер")) await InitUsers(order); }
public async Task<ActionResult> Edit(CreateOrderViewModel model, Adress adress) { if (model.AdresShipping == null) model.AdresShipping = adress; if (ModelState.IsValid) { await ModifyOrder(model); return RedirectToAction("Index"); } if (string.IsNullOrEmpty(model.AdresShipping?.FullAdress)) ModelState.AddModelError("AdresShipping", "Необхідно вказати адресу"); await InitListTypes(model); return View(model); }