ADD PRODUCT/INVENTORY
unknown
csharp
4 years ago
6.3 kB
15
Indexable
using System;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using FireSharp.Config;
using FireSharp.Interfaces;
namespace CamposanoCRUDFirebaseFinalTask.Forms.Menu
{
public partial class frmAddProduct : Form
{
private string _ProductName, _Category, _MfgDate, _ExpDate, _Description;
private int _Quantity;
private double _SellPrice;
BindingSource showProductList;
class NumberFormatExeption : Exception
{
public NumberFormatExeption(string quantity) : base(quantity) { }
}
class StringFormatExeption : Exception
{
public StringFormatExeption(string name) : base(name) { }
}
class CurrencyFormatExeption : Exception
{
public CurrencyFormatExeption(string price) : base(price) { }
}
class FormatExeption : Exception
{
public FormatExeption(string quantity) : base(quantity) { }
}
public string Product_Name(string name)
{
try
{
if (!Regex.IsMatch(name, @"^[a-zA-Z]+$"))
{
throw new StringFormatExeption(name);
}
}
catch (StringFormatExeption e)
{
MessageBox.Show("Invalid input in Product Name" + e.Message);
}
finally
{
Console.WriteLine("Please input string in Product Name");
}
return name;
}
public int Quantity(string qty)
{
try
{
if (!Regex.IsMatch(qty, @"^[0-9]"))
{
throw new NumberFormatExeption(qty);
}
else if (qty == "")
{
throw new FormatException(MessageBox.Show("Quantity field is empty").ToString());
}
}
catch (NumberFormatExeption e)
{
Console.WriteLine("Invalid input in Quantity" + e.Message);
}
catch (FormatException c)
{
Console.WriteLine("Invalid input in Quantity" + c.Message);
}
return Convert.ToInt32(qty);
}
public double SellingPrice(string price)
{
try
{
if (!Regex.IsMatch(price.ToString(), @"^(\d*\.)?\d+$"))
{
throw new CurrencyFormatExeption(price);
}
}
catch (CurrencyFormatExeption e)
{
MessageBox.Show("Invalid input in Price" + e.Message);
}
return Convert.ToDouble(price);
}
private void frmAddProduct_Load(object sender, EventArgs e)
{
try
{
client = new FireSharp.FirebaseClient(conf);
string[] ListOfProductCategory = new string[]
{
"Beverages",
"Bread/Bakery",
"Canned/Jarred Goods",
"Dairy",
"Frozen Goods",
"Meat",
"Personal Care",
"Other"
};
foreach (var n in ListOfProductCategory)
{
cbCategory.Items.Add(n);
}
}
catch
{
MessageBox.Show("Firebase Connection Problem");
}
}
public frmAddProduct()
{
InitializeComponent();
showProductList = new BindingSource();
}
IFirebaseConfig conf = new FirebaseConfig
{
AuthSecret = "QJ3yfSs4flmlH1iB9FyIJvu9DjfJ2t4cKjQwovck",
BasePath = "https://crudfirebase-2b60a-default-rtdb.firebaseio.com/"
}; IFirebaseClient client;
private void ClearFields()
{
txtProductName.Text = "";
cbCategory.SelectedItem = null;
dtPickerMfgDate.Value = new DateTime(2021, 11, 12);
dtPickerExpDate.Value = new DateTime(2021, 11, 12);
txtQuantity.Text = "";
txtSellPrice.Text = "";
richTextDescription.Text = "";
}
private void btnAddProduct_Click(object sender, EventArgs e)
{
DialogResult res = MessageBox.Show(this, "Do you want to add this product to the database?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (res == DialogResult.Yes)
{
StudentInformationClass addprdct = new StudentInformationClass
{
Product = txtProductName.Text,
Category = cbCategory.Text,
MfgDate = dtPickerMfgDate.Value.ToString("yyyy-MM-dd"),
ExpDate = dtPickerExpDate.Value.ToString("yyyy-MM-dd"),
Qty = txtQuantity.Text,
SellDate = txtSellPrice.Text
};
var inputData = client.Set("Products/" + txtProductName.Text, addprdct);
MessageBox.Show("Product successfully Added", "System", MessageBoxButtons.OK, MessageBoxIcon.Information);
_ProductName = Product_Name(txtProductName.Text);
_Category = cbCategory.Text;
_MfgDate = dtPickerMfgDate.Value.ToString("yyyy-MM-dd");
_ExpDate = dtPickerExpDate.Value.ToString("yyyy-MM-dd");
_Description = richTextDescription.Text;
_Quantity = Quantity(txtQuantity.Text);
_SellPrice = SellingPrice(txtSellPrice.Text);
showProductList.Add(new ProductClass(_ProductName, _Category, _MfgDate, _ExpDate, _SellPrice, _Quantity, _Description));
gridViewProductList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
gridViewProductList.DataSource = showProductList;
ClearFields();
}
}
}
}
Editor is loading...