/// <summary> /// Deletes selected power supply. /// </summary> /// <param name="obj"></param> private async void ExecDeletePSUAsync(object obj) { PSU psu = (PSU)ProductListView.ProductListUserControl.PSUList.SelectedItem; PSUs.Remove(psu); switch (App.DataSource) { case ConnectionResource.LOCALAPI: await new WebServiceManager <PSU>().DeleteAsync(psu); break; case ConnectionResource.LOCALMYSQL: using (var ctx = new MysqlDbContext(ConnectionResource.LOCALMYSQL)) { ctx.DbSetPSUs.Attach(psu); ctx.DbSetPSUs.Remove(psu); await ctx.SaveChangesAsync(); } break; default: break; } }
/// <summary> /// Removes a product from the cart. /// </summary> /// <param name="obj"></param> public void ExecRemoveFromCart(object obj) { CartItem cartItem = (CartItem)CartView.CartUC.Cart.SelectedItem; cartItem.Product.Stock += cartItem.Quantity; Cart.Total -= cartItem.Price; Cart.Items.Remove(cartItem); cartItem.Cart = null; if (cartItem.Product is CPU) { CPUs.Add((CPU)cartItem.Product); } else if (cartItem.Product is GPU) { GPUs.Add((GPU)cartItem.Product); } else if (cartItem.Product is Motherboard) { Motherboards.Add((Motherboard)cartItem.Product); } else if (cartItem.Product is Memory) { Rams.Add((Memory)cartItem.Product); } else if (cartItem.Product is Storage) { StorageComponents.Add((Storage)cartItem.Product); } else if (cartItem.Product is PSU) { PSUs.Add((PSU)cartItem.Product); } else // Case { Cases.Add((Case)cartItem.Product); } }
/// <summary> /// Processes the payment. /// Stock of products decreased, customer gets charged. /// </summary> /// <param name="obj"></param> private async void ExecProceedToPaymentAsync(object obj) { Cart.Customer.Money -= Cart.Total; switch (App.DataSource) { case ConnectionResource.LOCALAPI: await new WebServiceManager <Cart>().PostAsync(Cart); break; case ConnectionResource.LOCALMYSQL: using (var ctx = new MysqlDbContext(ConnectionResource.LOCALMYSQL)) { ctx.Entry(Cart.Customer).State = EntityState.Modified; foreach (var item in Cart.Items) { ctx.Entry(item.Product).State = EntityState.Modified; } ctx.DbSetCarts.Add(Cart); await ctx.SaveChangesAsync(); } break; default: break; } foreach (var item in Cart.Items) { if (item.Product.Stock > 0) { if (item.Product is CPU) { CPUs.Add((CPU)item.Product); } else if (item.Product is GPU) { GPUs.Add((GPU)item.Product); } else if (item.Product is Motherboard) { Motherboards.Add((Motherboard)item.Product); } else if (item.Product is Memory) { Rams.Add((Memory)item.Product); } else if (item.Product is Storage) { StorageComponents.Add((Storage)item.Product); } else if (item.Product is PSU) { PSUs.Add((PSU)item.Product); } else // Case { Cases.Add((Case)item.Product); } } } Cart.Items.Clear(); Cart.Total = 0; }
/// <summary> /// Adds the selected product to the cart's items. /// </summary> /// <param name="obj"></param> private void ExecAddToCart(object obj) { ProductListUserControl productListUC = CartView.CartUC.ProductsUC; CartItem cartItem = new CartItem(); cartItem.Cart = Cart; cartItem.Quantity = 1; if (productListUC.CPUList.SelectedIndex != -1) // CPU { CPU cpu = (CPU)productListUC.CPUList.SelectedItem; CPUs.Remove(cpu); cartItem.Product = cpu; cartItem.Price = cpu.Price; } else if (productListUC.GPUList.SelectedIndex != -1) // GPU { GPU gpu = (GPU)productListUC.GPUList.SelectedItem; GPUs.Remove(gpu); cartItem.Product = gpu; cartItem.Price = gpu.Price; } else if (productListUC.MotherboardList.SelectedIndex != -1) // Motherboard { Motherboard motherboard = (Motherboard)productListUC.MotherboardList.SelectedItem; Motherboards.Remove(motherboard); cartItem.Product = motherboard; cartItem.Price = motherboard.Price; } else if (productListUC.MemoryList.SelectedIndex != -1) // Memory { Memory memory = (Memory)productListUC.MemoryList.SelectedItem; Rams.Remove(memory); cartItem.Product = memory; cartItem.Price = memory.Price; } else if (productListUC.StorageList.SelectedIndex != -1) // Storage { Storage storage = (Storage)productListUC.StorageList.SelectedItem; StorageComponents.Remove(storage); cartItem.Product = storage; cartItem.Price = storage.Price; } else if (productListUC.PSUList.SelectedIndex != -1) // PSU { PSU psu = (PSU)productListUC.PSUList.SelectedItem; PSUs.Remove(psu); cartItem.Product = psu; cartItem.Price = psu.Price; } else // Case { Case pcCase = (Case)productListUC.CaseList.SelectedItem; Cases.Remove(pcCase); cartItem.Product = pcCase; cartItem.Price = pcCase.Price; } cartItem.Product.Stock--; Cart.Total += cartItem.Price; Cart.Items.Add(cartItem); }