/// <summary> /// This function update music cd button click operation. /// This function is used to update product list and update for util function. /// </summary> /// <returns> This function does not return a value </returns> private void btnUpdate_Click(object sender, EventArgs e) { Logger.GetLogger().WriteLog(LoginedCustomer.getInstance().User.Username, btnUpdate.Text, DateTime.Now); if (!isBlank()) { MessageBox.Show("Please fill all blanks!"); return; } else if (pboxMusicCD.Image == null) { MessageBox.Show("Please select an image."); return; } NumberFormatInfo provider = new NumberFormatInfo(); provider.NumberDecimalSeparator = "."; MusicCD_Type type = MusicCD_Type.Romance; switch (cBoxType.SelectedIndex) { case 1: type = MusicCD_Type.HardRock; break; case 2: type = MusicCD_Type.Country; break; default: break; } Creator c = new MusicCdFactory(txtName.Text, txtID.Text, Convert.ToDouble(txtPrice.Text, provider), txtSinger.Text, type, pboxMusicCD.Image); string[] lvItem = { txtID.Text, txtName.Text, txtPrice.Text, txtSinger.Text, cBoxType.Text }; ListViewItem item = new ListViewItem(lvItem); for (int i = 0; i < listViewMusicCDs.Items.Count; i++) { if (listViewMusicCDs.Items[i].SubItems[0].Text == selectedID) { listViewMusicCDs.Items[i] = item; break; } } for (int i = 0; i < StoreMainScreen.productList.Count; i++) { if (StoreMainScreen.productList[i].ID1 == selectedID) { StoreMainScreen.productList[i] = c.FactoryMethod(); break; } } UtilUpdate.Update(c.FactoryMethod()); MessageBox.Show("Updated Succesfully!"); panelAddMusicCD.Visible = false; selectedIndex = -1; }
/// <summary> /// This function holds the music's information. /// </summary> /// <param name="_name">The _name string hold the product name.</param> /// <param name="_id">The _id string hold the product id.</param> /// <param name="_price">The _price value hold the product price.</param> /// <param name="_singer">The _singer string hold the product singer.</param> /// <param name="_type">The _type MusicCD_type hold the product type.</param> /// <param name="_image">The _image hold the product image.</param> /// <returns> This function does not return a value </returns> public MusicCdFactory(string _name, string _id, double _price, string _singer, MusicCD_Type type, Image _image) { this.name = _name; this.id = _id; this.price = _price; this.singer = _singer; this.type = type; this.image = _image; }
/// <summary> /// This function add music cd button click operation. /// This function is used to add product list and save for util function. /// </summary> /// <returns> This function does not return a value </returns> private void btnAdd_Click(object sender, EventArgs e) { Logger.GetLogger().WriteLog(LoginedCustomer.getInstance().User.Username, btnAdd.Text, DateTime.Now); if (!isBlank()) { MessageBox.Show("Please fill all blanks!"); return; } else if (pboxMusicCD.Image == null) { MessageBox.Show("Please select an image."); return; } else if (isExist()) { MessageBox.Show("Please change product ID! It's already taken."); return; } NumberFormatInfo provider = new NumberFormatInfo(); provider.NumberDecimalSeparator = "."; MusicCD_Type type = MusicCD_Type.Romance; switch (cBoxType.SelectedIndex) { case 1: type = MusicCD_Type.HardRock; break; case 2: type = MusicCD_Type.Country; break; default: break; } Creator c = new MusicCdFactory(txtName.Text, txtID.Text, Convert.ToDouble(txtPrice.Text, provider), txtSinger.Text, type, pboxMusicCD.Image); string[] lvItem = { txtID.Text, txtName.Text, txtPrice.Text, txtSinger.Text, cBoxType.Text }; ListViewItem item = new ListViewItem(lvItem); listViewMusicCDs.Items.Add(item); StoreMainScreen.productList.Add(c.FactoryMethod()); UtilSave.Save(c.FactoryMethod()); MessageBox.Show("Added succesfully!"); listViewMusicCDs.Refresh(); panelAddMusicCD.Visible = false; }
/// <summary> /// This function loads the elements of the ProductList.xml file. /// </summary> /// <param name="productList">This parameter is a list of Product class.</param> /// <returns> This function does not return a value </returns> public static void Load(List <Product> productList) { if (!File.Exists(@"data/ProductList.xml")) { XmlTextWriter writer = new XmlTextWriter(@"data/ProductList.xml", System.Text.Encoding.UTF8); writer.WriteStartDocument(true); writer.Formatting = Formatting.Indented; writer.Indentation = 2; writer.WriteStartElement("Products"); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); return; } XDocument xDoc = XDocument.Load(@"data/ProductList.xml"); XElement rootElement = xDoc.Root; foreach (XElement product in rootElement.Elements()) { Creator c; string classType = product.FirstAttribute.Value; NumberFormatInfo info = new NumberFormatInfo(); info.NumberDecimalSeparator = "."; string name = product.Element("Name").Value; string id = product.LastAttribute.Value; double price = Convert.ToDouble(product.Element("Price").Value, info); Image image = UtilConvert.Base64ToImage(product.Element("Image").Value); if (classType == "Book") { string isbn = product.Element("ISBN").Value; string author = product.Element("Author").Value; string publisher = product.Element("Publisher").Value; int pages = Convert.ToInt32(product.Element("Pages").Value); c = new BookFactory(name, id, price, isbn, author, publisher, pages, image); } else if (classType == "Magazine") { string issue = product.Element("Issue").Value; Magazine_Type type = Magazine_Type.Actual; switch (product.Element("MagazineType").Value) { case "Computer": type = Magazine_Type.Computer; break; case "News": type = Magazine_Type.News; break; case "Sport": type = Magazine_Type.Sport; break; case "Technology": type = Magazine_Type.Technology; break; default: break; } c = new MagazineFactory(name, id, price, issue, type, image); } else { string singer = product.Element("Singer").Value; MusicCD_Type type = MusicCD_Type.Country; switch (product.Element("MusicCDType").Value) { case "HardRock": type = MusicCD_Type.HardRock; break; case "Romance": type = MusicCD_Type.Romance; break; default: break; } c = new MusicCdFactory(name, id, price, singer, type, image); } productList.Add(c.FactoryMethod()); } }