Exemplo n.º 1
0
        public SearchShortDates()
        {
            Clear();

            string dateSearch         = AskForDate();
            bool   isProductValidated = ValidateProduct(dateSearch);

            if (isProductValidated)
            {
                Clear();
                Echo("Liste des produits dont la date de consommation se terminant avant ou le " + dateSearch + " : \n");
                PrintTableHeader(true, "Id", "Name", "Prix", "Stock", "Date d'expiration");

                StocksRepository   stocksRepository   = new StocksRepository();
                ProductsRepository productsRepository = new ProductsRepository();

                var stringDateSearch = stocksRepository.ConvertStringDateToTimeStamp(dateSearch);
                var listProducts     = productsRepository.GetAllProducts();

                foreach (Product aProduct in listProducts)
                {
                    var stockProduct = stocksRepository.GetStockByProductId(aProduct.Id);
                    var stringExpiry = stocksRepository.ConvertTimeStampToStringDate(stockProduct.Expiry);
                    int result       = stringDateSearch.CompareTo(stockProduct.Expiry);

                    if (result >= 0)
                    {
                        PrintLineCells(true, $"{aProduct.Id}", aProduct.Name, $"{aProduct.Price}", $"{stockProduct.Quantity}", stringExpiry);
                    }
                    else
                    {
                    }
                }
                Echo(PrintLine());
                WaitForKeyPress();
            }
        }
Exemplo n.º 2
0
        //Naming convention ok

        public AddProduct()
        {
            Clear();
            int categoryId = AskForCategory();

            Clear();
            string name = AskForName();

            Clear();
            string description = AskCommand("Description (optionnelle):");

            Clear();
            float price = AskForFloat("Entrez le prix (avec une virgule) :");

            Clear();
            int quantity = AskForInteger("Stock de ce produit: ");

            Clear();
            string expirationDate = AskCommand("Rentrez la date limite de consommation du produit (ex: 03/12/2020) :");

            Clear();

            var product = new Product {
                CategoryId = categoryId, Name = name, Description = description, Price = price,
            };

            ProductsRepository productsRepository = new ProductsRepository();
            StocksRepository   stockRepository    = new StocksRepository();
            bool isProductValidated = ValidateProduct(product, expirationDate, quantity);

            if (isProductValidated)
            {
                Clear();
                Echo("Ajout du produit en base...");

                try
                {
                    productsRepository.AddProduct(product);
                } catch (Exception e)
                {
                    Style.SelectColor(ConsoleColor.Red);
                    Echo("Impossible d'ajouter le produit en base");
                    //TODO Message d'erreur ?
                    Echo("Message d'erreur");
                    Echo(e.Message);
                    Style.SelectColor(ConsoleColor.White);
                    AskKeyPress();
                    return;
                }

                Style.Green("Le produit a bien été créé.", true);

                try
                {
                    var timeConvert = stockRepository.ConvertStringDateToTimeStamp(expirationDate);

                    if (timeConvert != 0)
                    {
                        var listProduct = productsRepository.getLastProduct();
                        var stock       = new Stock {
                            Quantity = quantity, ProductId = listProduct.Id, Expiry = timeConvert
                        };
                        stockRepository.AddStock(stock);
                        AskKeyPress();
                    }
                    else
                    {
                        Echo("La date à mal été rentrée, veuillez réessayer");
                        AskKeyPress();
                    }
                } catch (Exception e)
                {
                    Style.SelectColor(ConsoleColor.Red);
                    Echo("Impossible d'ajouter le stock en base");
                    //TODO Message d'erreur ?
                    Echo("Message d'erreur");
                    Echo(e.Message);
                    Style.SelectColor(ConsoleColor.White);
                    AskKeyPress();
                    return;
                }
            }
            else
            {
                Clear();
                Style.Yellow("La création de produit a été annulée.", true);
                AskKeyPress();
            }
        }