コード例 #1
0
        /// <summary>
        /// This function add magazine 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 (pboxMagazine.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 = ".";
            Magazine_Type type = Magazine_Type.Actual;

            switch (cBoxType.SelectedIndex)
            {
            case 1:
                type = Magazine_Type.Computer;
                break;

            case 2:
                type = Magazine_Type.News;
                break;

            case 3:
                type = Magazine_Type.Sport;
                break;

            case 4:
                type = Magazine_Type.Technology;
                break;

            default:
                break;
            }
            Creator c = new MagazineFactory(txtName.Text, txtID.Text, Convert.ToDouble(txtPrice.Text, provider),
                                            txtIssue.Text, type, pboxMagazine.Image);

            string[]     lvItem = { txtID.Text, txtName.Text, txtPrice.Text, txtIssue.Text, cBoxType.Text };
            ListViewItem item   = new ListViewItem(lvItem);

            listViewMagazines.Items.Add(item);
            StoreMainScreen.productList.Add(c.FactoryMethod());
            UtilSave.Save(c.FactoryMethod());
            MessageBox.Show("Added succesfully!");
            listViewMagazines.Refresh();
            panelAddMagazine.Visible = false;
        }
コード例 #2
0
        /// <summary>
        ///  This function loads the elements of the ShoppingCard.xml file.
        /// </summary>
        /// <param name="shoppingCardList">This parameter is a list of ShoppingCard class.</param>
        /// <returns> This function does not return a value  </returns>
        public static void Load(List <ShoppingCard> shoppingCardList)
        {
            if (!File.Exists(@"data/ShoppingCard.xml"))
            {
                XmlTextWriter writer = new XmlTextWriter(@"data/ShoppingCard.xml", System.Text.Encoding.UTF8);
                writer.WriteStartDocument(true);
                writer.Formatting  = Formatting.Indented;
                writer.Indentation = 2;
                writer.WriteStartElement("ShoppingCards");
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Close();
                return;
            }
            XDocument        xDoc = XDocument.Load(@"data/ShoppingCard.xml");
            XElement         shoppingCardRootElement = xDoc.Root;
            NumberFormatInfo info = new NumberFormatInfo();

            info.NumberDecimalSeparator = ".";
            foreach (XElement shoppingCard in shoppingCardRootElement.Elements())
            {
                string      customerID = shoppingCard.FirstAttribute.Value;
                double      amount     = Convert.ToDouble(shoppingCard.Element("PaymentAmount").Value, info);
                PaymentType type       = PaymentType.cash;
                if (shoppingCard.Element("PaymentType").Value == "creditcard")
                {
                    type = PaymentType.creditcard;
                }
                List <ItemToPurchase> tempitemsToPurchase = new List <ItemToPurchase>();
                XElement itemToPurchaseRootElement        = shoppingCard.Element("ItemToPurchaseList");
                foreach (XElement item in itemToPurchaseRootElement.Elements())
                {
                    ItemToPurchase itemToPurchase = new ItemToPurchase();
                    string         classType      = item.FirstAttribute.Value;
                    string         ID             = item.Element("id").Value;
                    string         name           = item.Element("name").Value;
                    double         price          = Convert.ToDouble(item.Element("price").Value, info);
                    Image          image          = UtilConvert.Base64ToImage(item.Element("image").Value);
                    Creator        c;
                    if (classType == "Book")
                    {
                        c = new BookFactory(name, ID, price, "", "", "", 0, image);
                        itemToPurchase.Product = c.FactoryMethod();
                    }
                    else if (classType == "Magazine")
                    {
                        c = new MagazineFactory(name, ID, price, "", Magazine_Type.Actual, image);
                        itemToPurchase.Product = c.FactoryMethod();
                    }
                    else
                    {
                        c = new MusicCdFactory(name, ID, price, "", MusicCD_Type.Country, image);
                        itemToPurchase.Product = c.FactoryMethod();
                    }
                    itemToPurchase.Quantity = Int32.Parse(item.Element("quantity").Value);
                    tempitemsToPurchase.Add(itemToPurchase);
                }
                ShoppingCard shoppCard = new ShoppingCard();
                shoppCard.itemsToPurchase = tempitemsToPurchase;
                shoppCard.PaymentAmount   = amount;
                shoppCard.CustomerID      = customerID;
                shoppCard.Type            = type;
                shoppingCardList.Add(shoppCard);
            }
        }
コード例 #3
0
        /// <summary>
        ///  This function loads the elements of the MyOrders.xml file.
        /// </summary>
        /// <param name="OrderList">This parameter is a list of ShoppingCard class.</param>
        /// <returns> This function does not return a value  </returns>
        public static void LoadOrder(List <ShoppingCard> OrderList)
        {
            if (!File.Exists(@"data/MyOrders.xml"))
            {
                XmlTextWriter writer = new XmlTextWriter(@"data/MyOrders.xml", System.Text.Encoding.UTF8);
                writer.WriteStartDocument(true);
                writer.Formatting  = Formatting.Indented;
                writer.Indentation = 2;
                writer.WriteStartElement("Orders");
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Close();
                return;
            }
            XDocument        xDoc             = XDocument.Load(@"data/MyOrders.xml");
            XElement         OrderRootElement = xDoc.Root;
            NumberFormatInfo info             = new NumberFormatInfo();

            info.NumberDecimalSeparator = ".";
            foreach (XElement order in OrderRootElement.Elements())
            {
                string      customerID = order.FirstAttribute.Value;
                double      amount     = Convert.ToDouble(order.Element("PaymentAmount").Value, info);
                PaymentType type       = PaymentType.cash;
                if (order.Element("PaymentType").Value == "creditcard")
                {
                    type = PaymentType.creditcard;
                }
                else if (order.Element("PaymentType").Value == "transfer")
                {
                    type = PaymentType.transfer;
                }
                OrderStatus orderStatus = OrderStatus.canceled;
                if (order.Element("OrderStatus").Value == "received")
                {
                    orderStatus = OrderStatus.received;
                }
                else if (order.Element("OrderStatus").Value == "shipped")
                {
                    orderStatus = OrderStatus.shipped;
                }
                else if (order.Element("OrderStatus").Value == "waitForShip")
                {
                    orderStatus = OrderStatus.waitForShip;
                }
                int cargoamount = Convert.ToInt32(order.Element("CargoAmount").Value);
                int oid         = Convert.ToInt32(order.LastAttribute.Value);
                List <ItemToPurchase> tempitemsToPurchase = new List <ItemToPurchase>();
                XElement itemToPurchaseRootElement        = order.Element("ItemToPurchaseList");
                foreach (XElement item in itemToPurchaseRootElement.Elements())
                {
                    ItemToPurchase itemToPurchase = new ItemToPurchase();
                    string         id             = item.Element("id").Value;
                    string         name           = item.Element("name").Value;
                    double         price          = Convert.ToDouble(item.Element("price").Value, info);
                    int            quantity       = Convert.ToInt32(item.Element("quantity").Value);
                    Image          image          = UtilConvert.Base64ToImage(item.Element("image").Value);
                    Creator        c;
                    if (item.FirstAttribute.Value == "Book")
                    {
                        c = new BookFactory(name, id, price, "", "", "", 0, image);
                        itemToPurchase.Product  = c.FactoryMethod();
                        itemToPurchase.Quantity = quantity;
                        tempitemsToPurchase.Add(itemToPurchase);
                    }
                    else if (item.FirstAttribute.Value == "Magazine")
                    {
                        c = new MagazineFactory(name, id, price, "", Magazine_Type.Actual, image);
                        itemToPurchase.Product  = c.FactoryMethod();
                        itemToPurchase.Quantity = quantity;
                        tempitemsToPurchase.Add(itemToPurchase);
                    }
                    else
                    {
                        c = new MusicCdFactory(name, id, price, "", MusicCD_Type.Country, image);
                        itemToPurchase.Product  = c.FactoryMethod();
                        itemToPurchase.Quantity = quantity;
                        tempitemsToPurchase.Add(itemToPurchase);
                    }
                }
                ShoppingCard _order = new ShoppingCard();
                _order.itemsToPurchase = tempitemsToPurchase;
                _order.PaymentAmount   = amount;
                _order.CustomerID      = customerID;
                _order.Type            = type;
                _order.Status          = orderStatus;
                _order.CargoAmount     = cargoamount;
                _order.OID             = oid;
                OrderList.Add(_order);
            }
        }
コード例 #4
0
        /// <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());
            }
        }
コード例 #5
0
        /// <summary>
        /// This function update magazine 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 (pboxMagazine.Image == null)
            {
                MessageBox.Show("Please select an image.");
                return;
            }
            NumberFormatInfo provider = new NumberFormatInfo();

            provider.NumberDecimalSeparator = ".";
            Magazine_Type type = Magazine_Type.Actual;

            switch (cBoxType.SelectedIndex)
            {
            case 1:
                type = Magazine_Type.Computer;
                break;

            case 2:
                type = Magazine_Type.News;
                break;

            case 3:
                type = Magazine_Type.Sport;
                break;

            case 4:
                type = Magazine_Type.Technology;
                break;

            default:
                break;
            }
            Creator c = new MagazineFactory(txtName.Text, txtID.Text, Convert.ToDouble(txtPrice.Text, provider),
                                            txtIssue.Text, type, pboxMagazine.Image);

            string[]     lvItem = { txtID.Text, txtName.Text, txtPrice.Text, txtIssue.Text, cBoxType.Text };
            ListViewItem item   = new ListViewItem(lvItem);

            for (int i = 0; i < listViewMagazines.Items.Count; i++)
            {
                if (listViewMagazines.Items[i].SubItems[0].Text == selectedID)
                {
                    listViewMagazines.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!");
            panelAddMagazine.Visible = false;
            selectedIndex            = -1;
        }