public void loadAll()
        {
            indexList.Clear();
            searchlist.Clear();
            lvItems.Clear();
            lblMsg.Visible = true;
            String name, cat, manu;
            double price = 0;
            int    unitcur = 0, unitsold = 0, barcode = 0;

            Logicdll.clearSearchC(logicobj);
            arrsize    = Logicdll.getSizeC(logicobj);
            searchsize = arrsize;
            for (int i = 0; i < arrsize; i++)
            {
                ListViewItem item = new ListViewItem();
                Logicdll.addSearchProC(logicobj, i);
                Logicdll.getSearchProC(logicobj, 1, ref temp, i, ref barcode, ref price, ref unitcur, ref unitsold);
                indexList.Add(temp);
                searchlist.Add(temp);
                name      = Logicdll.getSearchNameC(logicobj, i);
                cat       = Logicdll.getSearchCatC(logicobj, i);
                manu      = Logicdll.getSearchManuC(logicobj, i);
                item.Text = name;
                item.SubItems.Add(cat);
                item.SubItems.Add(manu);
                item.SubItems.Add(barcode.ToString());
                item.SubItems.Add(unitcur.ToString());
                item.SubItems.Add(unitsold.ToString());
                item.SubItems.Add(price.ToString());
                lvItems.Add(item);
            }
            lblSystemInfo0.Text = getOSInfo();
            lblSystemInfo1.Text = System.Environment.OSVersion.Version.ToString();
        }
        public void autoComplete()
        {
            catList.Clear();
            nameList.Clear();
            Logicdll.clearSearchC(logicobj);
            arrsize = Logicdll.getSizeC(logicobj);
            String name, cat, manu;
            double price = 0;
            int    unitcur = 0, unitsold = 0, barcode = 0;

            for (int i = 0; i < arrsize; i++)
            {
                Logicdll.addSearchProC(logicobj, i);
                Logicdll.getSearchProC(logicobj, 1, ref temp, i, ref barcode, ref price, ref unitcur, ref unitsold);
                name = Logicdll.getSearchNameC(logicobj, i);
                cat  = Logicdll.getSearchCatC(logicobj, i);
                manu = Logicdll.getSearchManuC(logicobj, i);
                catList.Add(cat);
                nameList.Add(name);
            }
        }
 private void Add_btn_Click(object sender, EventArgs e)
 {
     if (int.TryParse(price_txt.Text, out check) && int.TryParse(currentunit_txt.Text, out check) && int.TryParse(barcode_txt.Text, out check))
     {
         Search_btn.Enabled     = true;
         result_listbox.Enabled = true;
         unitsold_txt.Text      = "0";
         int result;
         start  = DateTime.Now;
         result = Logicdll.addProdC(logicobj, name_txt.Text, cat_txt.Text, manu_txt.Text, int.Parse(barcode_txt.Text), int.Parse(currentunit_txt.Text), double.Parse(price_txt.Text));   // to update the datastorage of C++
         end    = DateTime.Now;
         ListViewItem item = new ListViewItem();
         if (result == 1)
         {
             lblStatus.ForeColor = Color.Green;
             lblMsg.Text         = "Product Added in " + (end - start).ToString() + "s.";
             indexList.Add(arrsize);
             searchlist.Add(arrsize);
             arrsize++;
             searchsize++;
             Logicdll.addSearchProC(logicobj, arrsize - 1);
             item.Text = name_txt.Text;
             item.SubItems.Add(cat_txt.Text);
             item.SubItems.Add(manu_txt.Text);
             item.SubItems.Add(barcode_txt.Text);
             item.SubItems.Add(currentunit_txt.Text);
             item.SubItems.Add(unitsold_txt.Text);
             item.SubItems.Add(price_txt.Text);
             result_listbox.Items.Add(item);
             lvItems.Add(item);
             catList.Add(cat_txt.Text);
             nameList.Add(name_txt.Text);
             name_txt.Clear();
             cat_txt.Clear();
             manu_txt.Clear();
             barcode_txt.Clear();
             unitsold_txt.Clear();
             currentunit_txt.Clear();
             price_txt.Clear();
             groupBox2.Enabled = false;
             altRow();
             btnAdd.Enabled = true;
         }
         else
         {
             lblStatus.ForeColor = Color.Red;
             lblStatus.Text      = "Adding product failed, duplicate barcode found.";
         }
     }
     else
     {
         lblStatus.ForeColor = Color.Red;
         if (!int.TryParse(price_txt.Text, out check))
         {
             lblStatus.Text = "Adding product failed. Invalid price entered.";
             price_txt.Focus();
         }
         else if (!int.TryParse(barcode_txt.Text, out check))
         {
             lblStatus.Text = "Adding product failed. Invalid barcode entered.";
             barcode_txt.Focus();
         }
         else
         {
             lblStatus.Text = "Adding product failed. Invalid current units entered.";
             currentunit_txt.Focus();
         }
     }
     lblStatus.Visible = true;
 }