示例#1
0
 public static bool LoadProducts()
 {
     try
     {
         ProductsList.Clear();
         using (var sr = new StreamReader(FilePath))
         {
             var deSerializer = new XmlSerializer(typeof(ObservableCollection<Product>));
             var tmpCollection =
                 (ObservableCollection<Product>) deSerializer.Deserialize(sr);
             foreach (var item in tmpCollection)
             {
                 ProductsList.Add(item);
             }
             return true;
         }
     }
     catch (Exception ex)
     {
         if (ex is FileNotFoundException)
         {
             var sw = new StreamWriter(FilePath);
         }
         MessageBox.Show(ex.Message);
         return false;
     }
 }
        public async Task Init()
        {
            if (ProductTypesList.Count == 0)
            {
                var productTypesList = await _productTypesService.Get <List <ProductTypes> >(null);

                ProductTypesList.Add(new ProductTypes("All"));
                foreach (var item in productTypesList)
                {
                    ProductTypesList.Add(item);
                }
            }

            if (SelectedProductTypes != null)
            {
                ProductsSearchRequest searchRequest = new ProductsSearchRequest();
                if (SelectedProductTypes.Name == "All")
                {
                    searchRequest = null;
                }
                else
                {
                    searchRequest.ProductTypeId = SelectedProductTypes.Id;
                }
                var list = await _service.Get <IEnumerable <Products> >(searchRequest);

                ProductsList.Clear();
                foreach (var item in list)
                {
                    ProductsList.Add(item);
                }
            }
        }
示例#3
0
        public async Task RefresProductsAsync()
        {
            var data = await ProductService.GetProductsAsync();

            ProductsList.Clear();
            foreach (var item in data)
            {
                ProductsList.Add(item);
            }
        }
        private async void LoadProducts()
        {
            ProductsList.Clear();
            List <ProductInventoryModel> products = null;
            await Task.Run(() =>
            {
                products = serviceRepository.LoadProductInventory();
            });

            ProductsList.AddRange(products);
        }
        public async Task SearchedProducts(string serachBar)
        {
            ProductsSearchRequest request = new ProductsSearchRequest
            {
                ProductName = serachBar
            };

            ProductsList.Clear();
            var list = await _service.Get <IEnumerable <Model.Products> >(request);

            foreach (var item in list)
            {
                ProductsList.Add(item);
            }
        }
        public async Task Init()
        {
            var user = await _usersService.GetById <Model.Users>(User.Id);

            UserAddress = await _userAddresssesService.GetById <Model.UserAddresses>(user.UserAddressId);

            Country     = UserAddress.Country;
            City        = UserAddress.City;
            AddressName = UserAddress.AddressName;

            ProductsList.Clear();
            foreach (var item in CartService.Cart)
            {
                ProductsList.Add(item.Value);
            }
            foreach (var item in ProductsList)
            {
                Total    += item.Product.Price * item.Quantity;
                Discount += item.Quantity;
            }
            if (Discount > 100)
            {
                Discount = 50;
            }
            if (Discount < 20)
            {
                Discount = 0;
            }
            else
            {
                Discount /= 2;
            }

            TotalNoPDV = Total;
            Total     -= (Discount / 100 * Total);
            Total     += 5;
        }
        public async Task SaveOrder()
        {
            await AddressLenght();
            await CityLenght();
            await StateLenght();

            var user = await _usersService.GetById <Model.Users>(User.Id);

            UserAddress = await _userAddresssesService.GetById <Model.UserAddresses>(user.UserAddressId);

            UserAddressesUpsertRequest userAddressesUpserRequest = new UserAddressesUpsertRequest
            {
                AddressName = AddressName,
                City        = City,
                Country     = Country,
                Id          = UserAddress.Id
            };

            await _userAddresssesService.Update <Model.UserAddresses>(UserAddress.Id, userAddressesUpserRequest);


            OrdersUpsertRequest ordersUpsertRequest = new OrdersUpsertRequest
            {
                Date        = DateTime.Now,
                Cancel      = false,
                OrderNumber = Helper.GenerateString(19),
                Status      = OrderStatusTypes.Created.ToString(),
                UserId      = User.Id
            };

            try
            {
                var order = await _ordersService.Insert <Model.Orders>(ordersUpsertRequest);

                OutputsUpsertRequest outputsUpsertRequest = new OutputsUpsertRequest
                {
                    Date            = DateTime.Now,
                    UserId          = User.Id,
                    Finished        = false,
                    OrderId         = order.Id,
                    ReceiveNumber   = Helper.GenerateString(19),
                    ValueWithoutPdv = TotalNoPDV,
                    ValueWithPdv    = Total
                };
                var outputs = await _outputsService.Insert <Model.Outputs>(outputsUpsertRequest);

                foreach (var item in ProductsList)
                {
                    OutputProductsUpsertRequest request = new OutputProductsUpsertRequest
                    {
                        ProductId = item.Product.Id,
                        Price     = item.Product.Price,
                        OutputId  = outputs.Id,
                        Quantity  = (int)item.Quantity,
                        Discount  = (item.Quantity / 2)
                    };
                    if (request.Quantity > 100)
                    {
                        request.Discount = 50;
                    }
                    if (request.Quantity < 20)
                    {
                        request.Discount = 0;
                    }
                    await _outputProductsService.Insert <Model.OutputProducts>(request);
                }
                ProductsList.Clear();
                CartService.Cart.Clear();
                await Application.Current.MainPage.DisplayAlert("Success", "Order is sent!", "OK");
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "", "OK");
            }
        }
示例#8
0
        private void FinishBtn_Click(object sender, RoutedEventArgs e)
        {
            sale = new Sale();
            try
            {
                sale = new Sale()
                {
                    DateCreated = DateTime.Now,
                    TotalPrice  = totalPrice
                };

                dBContext.Sales.Add(sale);
                dBContext.SaveChanges();
                sale = dBContext.Sales.ToList().Last();
                var salesProducts = new List <SaleProduct>();
                for (int i = 0; i < Products.Count; i++)
                {
                    var product = dBContext.Products.FirstOrDefault(x => x.Id == Products[i].Id);
                    if (salesProducts.Count == 0)
                    {
                        if (product.Quantity >= ProductsList[i].Quantity)
                        {
                            var saleProduct = new SaleProduct()
                            {
                                ProductId = Products[i].Id,
                                SaleId    = sale.Id,
                                Quantity  = ProductsList[i].Quantity
                            };
                            salesProducts.Add(saleProduct);
                        }
                        else
                        {
                            MessageBox.Show($"Няма такова количество от {product.Name} налично!");
                            throw new Exception($"Няма такова количество от {product.Name} налично!");
                        }
                    }
                    else
                    {
                        var isItemAdded = salesProducts.Any(sp => sp.ProductId == Products[i].Id);


                        if (isItemAdded)
                        {
                            var saleProduct     = salesProducts.First(sp => sp.ProductId == Products[i].Id);
                            var productQuantity = saleProduct.Quantity + ProductsList[i].Quantity;
                            if (product.Quantity >= productQuantity)
                            {
                                salesProducts.Remove(saleProduct);
                                saleProduct.Quantity += ProductsList[i].Quantity;
                                salesProducts.Add(saleProduct);
                            }
                            else
                            {
                                MessageBox.Show($"Няма такова количество от {product.Name} налично!");
                                throw new Exception($"Няма такова количество от {product.Name} налично!");
                            }
                        }
                        else
                        {
                            if (product.Quantity >= ProductsList[i].Quantity)
                            {
                                var saleProduct = new SaleProduct()
                                {
                                    ProductId = Products[i].Id,
                                    SaleId    = sale.Id,
                                    Quantity  = ProductsList[i].Quantity
                                };
                                salesProducts.Add(saleProduct);
                            }
                            else
                            {
                                MessageBox.Show($"Няма такова количество от {product.Name} налично!");
                                throw new Exception($"Няма такова количество от {product.Name} налично!");
                            }
                        }
                    }
                }
                foreach (var item in salesProducts)
                {
                    var product = dBContext.Products.FirstOrDefault(x => x.Id == item.ProductId);
                    product.Quantity -= item.Quantity;
                    dBContext.Update(product);
                }
                dBContext.SaleProducts.AddRange(salesProducts);

                this.TotalPriceTxt.Text = "0.00";
            }
            catch (Exception ex)
            {
                SystemSounds.Hand.Play();
                var newSale = dBContext.Sales.First(s => s.Id == sale.Id);
                newSale.IsDeleted   = true;
                newSale.DateDeleted = DateTime.Now;
                dBContext.Update(newSale);
                dBContext.SaveChanges();
                log.Error(ex.Message + ex.InnerException);
            }
            finally
            {
                dBContext.SaveChanges();
                ProductsForBill = new ObservableCollection <CheckoutProductViewModel>();
                foreach (var item in ProductsList)
                {
                    ProductsForBill.Add(item);
                }
                Products.Clear();
                ProductsList.Clear();
            }
        }