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ではありません"); } } }
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); }
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); }
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); }
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); }