コード例 #1
0
 public Book(string bookISBN, string bookTitle, int yearReleased, BookCateg bookCat, List <Author> listAuthors,
             int prodId, ProdCat prodCat, double unitPrice, int supplId, int qtyOnHand, bool prodStat)
     : base(prodId, bookTitle, prodCat, unitPrice, supplId, qtyOnHand, prodStat)
 {
     this.BookISBN     = bookISBN;
     this.BookTitle    = bookTitle;
     this.YearReleased = yearReleased;
     this.BookCat      = bookCat;
     this.ListAuthors  = listAuthors;
 }
コード例 #2
0
        private void btnBookFrmOk_Click(object sender, EventArgs e)
        {
            //time to create a new object
            //========================================================
            string valueID, valueTitle, valueUnitPrice, valueSupplId, valueQOH;
            string valueISBN, valueYRelease;
            double unitPrice = 0;
            int    valueProdCat;
            bool   isDuplicate = false;

            valueID        = txtProdID.Text.Trim();
            valueTitle     = txtbookTitle.Text.Trim();
            valueISBN      = txtbookISBN.Text.Trim().ToUpper();
            valueProdCat   = cmbBookCat.SelectedIndex;
            valueYRelease  = txtyearReleased.Text.Trim();
            valueUnitPrice = txtProdUPrc.Text.Trim();
            //valueSupplId = txtProdSupId.Text.Trim();
            valueQOH = txtProdQoH.Text.Trim();

            Book prod = new Book();

            if (!Product.isValidId(valueID, 4))
            {
                MessageBox.Show("Product ID is not correct! \n" +
                                "\n\nPlease provide valid id number...",
                                "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtProdID.Focus();
                return;
            }

            if (valueTitle == "")
            {
                MessageBox.Show("Client Name could not be empty! \nPlease provide valid client name...",
                                "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtbookTitle.Focus();
                return;
            }

            try
            {
                unitPrice = Convert.ToDouble(valueUnitPrice);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unit Price is not correct! \n" + ex.Message +
                                "\n\nPlease provide valid number...",
                                "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                unitPrice = 0;
                txtProdUPrc.Focus();
                return;
            }

            //valueProdCat - set correct
            BookCateg bookCat = BookCateg.Other;

            switch (cmbBookCat.SelectedIndex)
            {
            case 0:
                bookCat = BookCateg.Text_Book;
                break;

            case 1:
                bookCat = BookCateg.Science_Fiction;
                break;

            case 2:
                bookCat = BookCateg.Satire;
                break;

            case 3:
                bookCat = BookCateg.Drama;
                break;

            case 4:
                bookCat = BookCateg.Action_Adventure;
                break;

            case 5:
                bookCat = BookCateg.Romance;
                break;

            case 6:
                bookCat = BookCateg.Mystery;
                break;

            case 7:
                bookCat = BookCateg.Horror;
                break;

            case 8:
                bookCat = BookCateg.Horror;
                break;

            default:
                bookCat = BookCateg.Self_help;
                break;
            }
            int supplId, qtyOH, yearRel;

            //creating an Authors
            Author        myAuthor;
            List <Author> myListAuth = new List <Author>();

            if (listBoxBookAuth.Items.Count > 0)
            {
                for (int i = 0; i < listBoxBookAuth.Items.Count; i++)
                {
                    myAuthor = new Author();
                    string[] fields = listBoxBookAuth.Items[i].ToString().Split(',');
                    myAuthor.AuthId        = Convert.ToInt32(fields[0].Trim());
                    myAuthor.AuthFirstName = fields[1].ToString().Trim();
                    myAuthor.AuthLastName  = fields[2].ToString().Trim();
                    myListAuth.Add(myAuthor);
                }
                prod.ListAuthors = myListAuth;
            }
            if (!(int.TryParse(valueYRelease, out yearRel)) || yearRel < dt.Year - 100 || yearRel > dt.Year)
            {
                MessageBox.Show("Wrong data in Release year! \n Please fix this value...");
                return;
            }
            //valueSupplId -- loading correct supplier info
            try
            {
                string[] fields = cmbSuppId.Text.Split(',');
                valueSupplId = fields[0];
                supplId      = Convert.ToInt32(valueSupplId);
            }
            catch (Exception)
            {
                valueSupplId = "0";
                supplId      = Convert.ToInt32(valueSupplId);
            }

            //checking all cases and go for an object creation:
            if ((prod != null) && (int.TryParse(valueSupplId, out supplId)) &&
                (int.TryParse(valueQOH, out qtyOH)))
            {
                //all ok so go ahead and assign the values to the object fields
                prod.ProdId       = Convert.ToInt32(valueID);
                prod.ProdName     = valueTitle;
                prod.BookCat      = bookCat;
                prod.UnitPrice    = unitPrice;
                prod.SupplId      = supplId;
                prod.QtyOnHand    = qtyOH;
                prod.ProdCat      = ProdCat.Book;
                prod.ProdStatus   = chkBookAct.Checked;
                prod.BookISBN     = valueISBN;
                prod.BookTitle    = valueTitle;
                prod.YearReleased = (Convert.ToInt32(valueYRelease));
                List <Product> products = Product.XMLLoadAllProducts();
                if (products == null)
                {
                    products = new List <Product>();
                }
                Product prodDup = new Product();
                foreach (Product prodItem in products)
                {
                    if (prodItem.ProdId == prod.ProdId)
                    {
                        isDuplicate = true;
                        //if id is already in use - return true = id duplicate found!
                        // so may be we want to update the account information?
                        DialogResult answer = MessageBox.Show("This ID is already in use: " + valueID
                                                              + " \nfor: " + prodItem.ProdName + "\n"
                                                              + "\nDo you want to update this item information?", "Confirmation on Update",
                                                              MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (answer == DialogResult.Yes)
                        {
                            //continuing update process:
                            prodDup     = prodItem;
                            isDuplicate = true;
                        }
                        else
                        {
                            isDuplicate = false;
                            return;
                        }
                    }
                }
                if (isDuplicate)
                {
                    products.Remove(prodDup); //removing old version of updated product from the local list
                }
                products.Add(prod);           //adding updated product to the local list
                if (UpdateGlobalProdList(products))
                {
                    //_globProdList.Sort();
                    _globProdList = _globProdList.OrderBy(o => o.ProdId).ToList();
                    Product.SaveAllProducts(_globProdList);
                }
                //Product.SaveAllProducts(products);
                LoadItemsListView();
                MessageBox.Show("Update successfull!",
                                "Success!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }