private async void AddProductButton_Click(object sender, EventArgs e)
        {
            // ASINを入力させるモーダルフォームを立ち上げる
            string         ASIN   = "";
            ASIN_InputForm form   = new ASIN_InputForm();
            DialogResult   result = form.ShowDialog();

            if (result == DialogResult.OK)
            {
                ASIN = form.value.Trim();
                // 有効なASINか調べる
                if (Tools.CheckASINValidity(ASIN))
                {
                    DisableAllButtons();
                    statusLabel.Text = "商品情報を取得しています";
                    // 商品データを取得する
                    products[productNum] = await productData.Create(ASIN, cacheFolderPath);

                    // リストに追加する
                    ProductList.AddProduct(products[productNum]);
                    // 登録したので登録している商品数をインクリメントする
                    productNum++;

                    // 登録した商品にリスト中で選択する
                    ProductList.Items[productNum - 1].Selected = true;
                    ProductList.Select();
                    if (productNum == 1)
                    {
                        await DrawProductInformation(products[productNum - 1], cacheFolderPath);

                        DrawPriceHistory(products[productNum - 1]);
                    }
                    statusLabel.Text = "商品情報登録完了";
                    EnabledAllButtons();
                }
                else
                {
                    MessageBox.Show("有効なASINではありません");
                }
            }
        }
예제 #2
0
        public ProductList GetAll()
        {
            var     list = new ProductList();
            Product pTemp;

            command = new NpgsqlCommand("Select p.id, m.model, t.type " +
                                        " from product p " +
                                        " inner join model m " +
                                        " on m.id = p.model_id " +
                                        " inner join type t " +
                                        " on t.id = p.type_id ", conn);
            conn.Open();
            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                pTemp = new Product((String)dataReader[1], (String)dataReader[2], "", GetProductDataForList((int)dataReader[0]));
                list.AddProduct(pTemp);
            }
            conn.Close();
            return(list);
        }
예제 #3
0
        private static ProductList LoadProductList(ProductTypeList productTypeList, BrandList brandList)
        {
            DataTable dataTable = DBAccessor.QueryProducts();

            if (dataTable == null)
            {
                return(null);
            }
            ProductList productList = new ProductList();

            foreach (DataRow dataRow in dataTable.Rows)
            {
                Product product = LoadProduct(dataRow, productTypeList, brandList);
                if (product == null)
                {
                    continue;
                }
                productList.AddProduct(product);
            }
            return(productList);
        }
        private async void MainForm_Load(object sender, EventArgs e)
        {
            // キャッシュフォルダーが存在するか確認。無かったら作成
            if (Directory.Exists(cacheFolderPath) == false)
            {
                Directory.CreateDirectory(cacheFolderPath);
            }

            products = new Product[productNumMax];

            // 以前に作成した設定データがあるか調べる
            string settingFilePath      = cacheFolderPath + "setting.dat";
            int    refreshRateInSeconds = 120;

            if (File.Exists(settingFilePath))
            {
                setting = Extensions.Read(settingFilePath) as Setting;
            }
            else
            {
                setting = new Setting("", "", "", refreshRateInSeconds);
                Extensions.Save(setting, settingFilePath);
            }
            productData = new ProductData();

            // 以前に取得した商品情報が存在するか確認
            string dataFilePath = cacheFolderPath + "data.dat";

            if (File.Exists(dataFilePath))
            {
                // 保存してある商品情報の読み込み
                statusLabel.Text = "保存した商品情報を読み込んでいます";
                products         = Extensions.Read(dataFilePath) as Product[];

                // 登録できる上限までループを回す
                for (int i = 0; i < productNumMax; i++)
                {
                    // 登録してないところまで行ったらループを止める
                    if (products[i] == null || products[i].ASIN == "")
                    {
                        break;
                    }
                    else
                    {
                        string ASIN = products[i].ASIN;
                        // ASINデータの取得
                        // 商品情報の更新
                        products[i] = await productData.Update(products[i]);

                        // リストに登録した商品情報を追加する
                        ProductList.AddProduct(products[i]);
                        statusLabel.Text = (productNum + 1) + " 個目まで読み込み完了";
                        Status.Update();
                        // 追加した商品数分インクリメントしておく
                        productNum++;
                    }
                }
                statusLabel.Text = "読み込み完了";

                // 価格推移を表示するためのChartコントロールの初期化
                // データ系列の初期化
                PriceChart.Series.Clear();
                // グラフ部分の初期化
                PriceChart.ChartAreas.Clear();
                // タイトル部分の初期化
                PriceChart.Titles.Clear();
                // Chartの描画
                ChartArea area = new ChartArea();
                area.AxisX.Title = "日付";
                area.AxisY.Title = "価格 (円)";
                PriceChart.ChartAreas.Add(area);
                PriceChart.Titles.Add(new Title("価格推移"));

                // 読み込みが終わったら一番最初の商品を選択する/初期値を表示
                if (productNum > 0)
                {
                    ProductList.Items[0].Selected = true;
                    ProductList.Select();
                }
                else
                {
                    await DrawProductInformation(new Product(), cacheFolderPath);

                    DrawPriceHistory(new Product());
                }
            }


            // タイマーをスタートする
            Timer.SetInterval(setting.Interval);
            Timer.Start();
            statusLabel.Text = "準備完了  -  更新間隔は" + setting.Interval + " 秒です";
        }
 public void AddProduct(string key = null, string gp_product = null, string apple_product = null, string csg_id = null, string duration = null, string trial_duration = null, bool is_recurring = true)
 {
     productList.AddProduct(key, gp_product, apple_product, csg_id, duration, trial_duration, is_recurring);
 }
예제 #6
0
        public static void MenuStock(Employee activeuser)
        {
            int         menuOption;
            int         limparStock;
            ProductList productList = new ProductList();

            do
            {
                productList = ProductList.LerFicheiro();
                Console.WriteLine("************SUPERMERCADO BINHAS ONTE***************");
                Console.WriteLine("**                                              **");
                Console.WriteLine("**                  Bem-vindo/a!                **");
                Console.WriteLine("**                                              **");
                Console.WriteLine("**\t" + DateTime.Now.ToString("dddd, dd MMMM yyyy HH:mm") + "\t\t**");
                Console.WriteLine("**************************************************\n");
                Console.WriteLine("1- Ver / Editar Stock\n");
                Console.WriteLine("2- Adicionar Novo Produto\n");
                Console.WriteLine("3- Remover Produto\n");
                Console.WriteLine("4- Limpar Stock\n");
                Console.WriteLine("--------------------------------------------------");
                Console.WriteLine("0- Sair");

                while (int.TryParse(Console.ReadLine(), out menuOption) == false)
                {
                    Console.WriteLine("Opçao errada");
                }



                Console.Clear();

                switch (menuOption)
                {
                case 0:
                    break;

                case 1:
                    MenuStock2(activeuser);
                    productList.ClearList();
                    break;

                case 2:
                    Console.WriteLine("**TECLA 0 - PARA SAIR OU CANCELAR**\n");
                    Console.WriteLine(productList.ToString());     // Listar

                    Console.WriteLine("ID: {0}\n", productList.productList.Count + 1);
                    string idProdutoAAdicionar = Operator.AtribuirIDProduto(productList);

                    Console.WriteLine("Insira o Nome do Produto:");
                    string nomeDoProdutoAAdicionar = Console.ReadLine();     //nao pode ser nulo
                    while (nomeDoProdutoAAdicionar == "")
                    {
                        Console.WriteLine("Nome Incorrecto\nInsira o Nome do Produto:\n");
                        nomeDoProdutoAAdicionar = Console.ReadLine();
                    }
                    if (nomeDoProdutoAAdicionar == "0")
                    {
                        productList.ClearList();
                        break;
                    }

                    Console.WriteLine("Escolha o Stock do Produto:");
                    float stockProdutoAAdicionar;
                    while (float.TryParse(Console.ReadLine(), out stockProdutoAAdicionar) == false)
                    {
                        Console.WriteLine("Valor incorrecto, tente novamente:");
                    }
                    stockProdutoAAdicionar = Operator.VerificarValorNegativo(stockProdutoAAdicionar);
                    if (stockProdutoAAdicionar == 0)
                    {
                        productList.ClearList();
                        break;
                    }

                    Console.WriteLine("Escolha o Preço do Produto:");
                    float precoProdutoAAdicionar;
                    while (float.TryParse(Console.ReadLine(), out precoProdutoAAdicionar) == false)
                    {
                        Console.WriteLine("Valor incorrecto, tente novamente:");
                    }
                    precoProdutoAAdicionar = Operator.VerificarValorNegativo(precoProdutoAAdicionar);
                    if (precoProdutoAAdicionar == 0)
                    {
                        productList.ClearList();
                        break;
                    }

                    Console.WriteLine("Escolha a Tipo do Produto: Congelado = 0, Prateleira = 1, Enlatado = 2");
                    bool result = Enum.TryParse(Console.ReadLine(), out TypeOfProducts typeOfProducts) && Enum.IsDefined(typeof(TypeOfProducts), typeOfProducts);     // Nao esta bem. Nao
                    while (!result)
                    {
                        Console.WriteLine("Valor incorrecto, tente novamente");
                        result = Enum.TryParse(Console.ReadLine(), out typeOfProducts) && Enum.IsDefined(typeof(TypeOfProducts), typeOfProducts);
                    }

                    Console.WriteLine("Escolha a Categoria: FrutasLegumes = 0, Carne = 1, Mercearia = 2");
                    bool result2 = Enum.TryParse(Console.ReadLine(), out Category categoria) && Enum.IsDefined(typeof(Category), categoria);
                    while (!result2)
                    {
                        Console.WriteLine("Valor incorrecto, tente novamente");
                        result2 = Enum.TryParse(Console.ReadLine(), out categoria) && Enum.IsDefined(typeof(Category), categoria);
                    }

                    Product newProduct = new Product(idProdutoAAdicionar, nomeDoProdutoAAdicionar, stockProdutoAAdicionar, precoProdutoAAdicionar, typeOfProducts, categoria);


                    Console.WriteLine(newProduct.ToString());

                    productList.AddProduct(newProduct);

                    Console.WriteLine(productList.ToString());      // Listar
                    ProductList.GravarParaFicheiro(productList);

                    productList.ClearList();

                    break;

                case 3:
                    Console.WriteLine("**TECLA 0 - PARA SAIR OU CANCELAR**\n");
                    Console.WriteLine(productList.ToString());      // Listar
                    Console.WriteLine("escolha o id a remover:");
                    string produtoARemover = Console.ReadLine();
                    if (produtoARemover == "0")
                    {
                        productList.ClearList();
                        break;
                    }
                    productList.RemoveProduct(produtoARemover);
                    ProductList.GravarParaFicheiro(productList);
                    productList.ClearList();
                    break;

                case 4:
                    Console.WriteLine("Vai remover o stock completo! Tem a certeza? \n(Opcao 1 - Limpar Stock| Outro numero para cancelar");
                    while (!int.TryParse(Console.ReadLine(), out limparStock))
                    {
                        Console.WriteLine("Opcao Errada");
                    }
                    if (limparStock == 1)
                    {
                        productList.ClearList();
                        ProductList.GravarParaFicheiro(productList);
                    }
                    break;

                default:
                    Console.WriteLine("Escolheu uma opção inválida");
                    break;
                }
                Console.ReadKey();
                Console.Clear();
            } while (menuOption != 0);
        }
예제 #7
0
        public static ProductList MenuVenda(Employee activeuser)
        {
            ProductList productList         = new ProductList(); //LISTAGEM DO STOCK
            ProductList productPurchaseList = new ProductList(); //LISTAGEM DOS PRODUTOS COMPRADOS

            productList = ProductList.LerFicheiro();

            int    repeat = 1;
            string idPurchase;
            float  quantityPurchase = -1;

            Console.WriteLine("**TECLA 0 - PARA SAIR OU CANCELAR**\n");
            do
            {
                Console.WriteLine("Introduza o id do produto a adicionar ao carrinho");
                idPurchase = Console.ReadLine();
                if (idPurchase == "0")
                {
                    break;
                }
                if (productList.FindProduct(idPurchase) == null)
                {
                    Console.WriteLine("Id inválido!");
                }
            } while (productList.FindProduct(idPurchase) == null);

            Product productPurchase = new Product();

            if (idPurchase != "0")
            {
                productPurchase = new Product(productList.FindProduct(idPurchase));
            }


            //Verificar id Produto e FAZER CÓPIA DO PRODUTO ORIGINAL
            while (quantityPurchase <= 0 && idPurchase != "0")
            {
                Console.WriteLine("Introduza a quantidade");

                while (float.TryParse(Console.ReadLine(), out quantityPurchase) == false)
                {
                    Console.WriteLine("Quantidade incorrecta, tente novamente:");
                }
                if (quantityPurchase == 0)
                {
                    break;
                }

                if (quantityPurchase > 0)
                {
                    if (quantityPurchase <= productPurchase.Stock)
                    {
                        //INCORPORAR A QUANTIDADE NO PRODUTO A COMPRAR
                        productPurchase.Stock = quantityPurchase;
                        //INCORPORAR O PRODUTO NA LISTA DE PRODUTOS A COMPRAR
                        productPurchaseList.productList.Add(productPurchase);
                        //Remover do stock a quantidade de produto comprada
                        productList.RemoveStock(productPurchase.Id, productPurchase.Stock);
                    }
                    else
                    {
                        Console.WriteLine("Nao tem stock");
                        quantityPurchase = -1;
                    }
                }
                else
                {
                    Console.WriteLine("Quantidade inválida!");
                }
            }

            do
            {
                string idPurchaseRepeat;
                float  quantityPurchaseRepeat = -1;

                Console.WriteLine("Deseja inserir mais items desta categoria? Sim= 1, Nao = Outro numero qualquer\n");
                while (int.TryParse(Console.ReadLine(), out repeat) == false)
                {
                    Console.WriteLine("Opçao errada");
                }
                if (repeat == 1)
                {
                    do
                    {
                        Console.WriteLine("**TECLA 0 - PARA SAIR OU CANCELAR**\n");
                        Console.WriteLine("Introduza o id do produto a adicionar ao carrinho");
                        idPurchaseRepeat = Console.ReadLine();
                        if (idPurchaseRepeat == "0")
                        {
                            break;
                        }

                        if (productList.FindProduct(idPurchaseRepeat) == null)
                        {
                            Console.WriteLine("Id inválido!");
                        }
                    } while (productList.FindProduct(idPurchaseRepeat) == null);

                    Product productPurchaseRepeat = new Product();
                    if (idPurchaseRepeat != "0")
                    {
                        productPurchaseRepeat = productList.FindProduct(idPurchaseRepeat);
                    }



                    while (quantityPurchaseRepeat <= 0 && idPurchaseRepeat != "0")
                    {
                        Console.WriteLine("Introduza a quantidade");

                        while (float.TryParse(Console.ReadLine(), out quantityPurchaseRepeat) == false)
                        {
                            Console.WriteLine("Quantidade incorrecta, tente novamente:");
                        }

                        if (quantityPurchaseRepeat == 0)
                        {
                            break;
                        }
                        if (quantityPurchaseRepeat > 0)
                        {
                            if (quantityPurchaseRepeat <= productPurchaseRepeat.Stock)
                            {
                                //INCORPORAR A QUANTIDADE NO PRODUTO A COMPRAR
                                productPurchaseRepeat.Stock = quantityPurchaseRepeat;
                                //INCORPORAR O PRODUTO NA LISTA DE PRODUTOS A COMPRAR
                                productPurchaseList.AddProduct(productPurchaseRepeat);
                                //remover o produto do stock
                                productList.RemoveStock(productPurchaseRepeat.Id, productPurchaseRepeat.Stock);
                            }
                            else
                            {
                                Console.WriteLine("Nao tem stock");
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("Quantidade inválida!");
                        }
                    }
                }
            } while (repeat == 1);

            ProductList.GravarParaFicheiro(productList);
            return(productPurchaseList);
        }