Example #1
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            string message = "";

            #region var initialisation
            long salesMasterID;
            totalAmount  = Convert.ToDouble(LbTotal.Text);
            discount     = Convert.ToDecimal(LbDiscount.Text);
            salesTaxRate = 15.00;
            salesTax     = Convert.ToDouble(LBKpra.Text);
            netAmount    = Convert.ToDouble(LbPayable.Text);
            paid         = Convert.ToDouble(TBPaid.Text);
            todayTime    = DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff"), CultureInfo.InvariantCulture);
            // todayTime = DateTime.Parse("2018-18-9 03:05.000");
            description  = "Signed by Vendor";
            otherCharges = 10.00;
            businessId   = 1;
            businessCode = DatabaseActivities.GetBusinessCode();
            stationId    = 0;
            // salesMasterID = OnlineActivities.GetLastMasterIDLocal();
            #endregion end calculations
            #region Local Data Store Operation
            Thread threadSalesLocal = new Thread(() =>
            {
                ConnectionClass.InsertCommand("insert into sales_Master2 values('" + Convert.ToDecimal(totalAmount) + "','" + discount + "','15','" + salesTax + "','" + Convert.ToDecimal(netAmount) + "','" + Convert.ToDecimal(paid) + "','" + InternetConnection.GetBusinessCode() + "','1','" + System.DateTime.Today.ToString("yyyy-MM-dd") + "','1','" + DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff")) + "')");
            });
            threadSalesLocal.Start();
            threadSalesLocal.Join();
            //detail list for local
            List <SalesDetail> salesDetailLstLocal = new List <SalesDetail>();

            foreach (ListViewItem item in listView1.Items)
            {
                DataTable   dt          = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master2");
                SalesDetail salesDetail = new SalesDetail();
                salesDetail.ProductID          = Convert.ToInt64(item.SubItems[0].Text);
                salesDetail.ProductName        = item.SubItems[1].Text.ToString();
                salesDetail.Quantity           = Convert.ToInt32(item.SubItems[2].Text.ToString());
                salesDetail.UnitPrice          = Convert.ToDecimal(item.SubItems[3].Text.ToString());
                salesDetail.TotalPrice         = Convert.ToDecimal(item.SubItems[4].Text.ToString());
                salesDetail.SalesMasterIDLocal = Convert.ToInt64(dt.Rows[0][0].ToString());
                salesDetailLstLocal.Add(salesDetail);
            }


            Thread threadDetailLocal = new Thread(() =>
            {
                foreach (var item in salesDetailLstLocal)
                {
                    SalesDetail salesDetail = new SalesDetail();
                    DataTable dt            = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master2");
                    ConnectionClass.InsertCommand("insert into Sales_Details2 " +
                                                  " values ('" +
                                                  item.ProductID + "','" +
                                                  item.ProductName + "','" +
                                                  item.Quantity + "','" +
                                                  item.UnitPrice + "','" +
                                                  item.TotalPrice + "','" +
                                                  dt.Rows[0][0].ToString() + "','True')");
                }
            });
            threadDetailLocal.Start();
            threadDetailLocal.Join();
            PrintReport();
            ClearItems();

            lblHttpResponse.Text += "items cleared";
            #endregion
            Thread t = new Thread(() =>
            {
                if (InternetConnection.IsConnectedToInternet())
                {
                    // MessageBox.Show(WebAPIResource.statusCodes);
                    //    lblHttpResponse.Text += WebAPIResource.statusCodes.ToString();
                    //message = WebAPIResource.statusCodes.ToString();
                    ConnectionClass.InsertCommand("insert into sales_Master values('" + Convert.ToDecimal(totalAmount) + "','" + discount + "','15','" + salesTax + "','" + Convert.ToDecimal(netAmount) + "','" + Convert.ToDecimal(paid) + "','" + InternetConnection.GetBusinessCode() + "','1','" + System.DateTime.Today.ToString("yyyy-MM-dd") + "','1','" + DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff")) + "')");

                    #region comments
                    //List<SalesMasterForLocal> listLocalSalesMaster = new List<SalesMasterForLocal>();
                    //OnlineActivities.StoreSalesMasterDataOnline(Convert.ToDecimal(LbTotal.Text), Convert.ToDecimal(LbDiscount.Text),
                    //     Convert.ToDecimal(ConfigurationManager.AppSettings["sales_tax"]), Convert.ToDecimal(LBKpra.Text),
                    //     Convert.ToDecimal(LbPayable.Text), Convert.ToDecimal(TBPaid.Text),true,
                    //     InternetConnection.GetBusinessCode(),1,System.DateTime.Today.ToString("yyyy-MM-dd"),
                    //     DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff")));
                    // //SalesMasterForLocal salesMasterLocalStorage = new SalesMasterForLocal();
                    //salesMasterLocalStorage.TotalAmount = Convert.ToDecimal(LbTotal.Text);
                    //salesMasterLocalStorage.Discount = Convert.ToDecimal(LbDiscount.Text);
                    //salesMasterLocalStorage.SalesTaxRate = Convert.ToDecimal(ConfigurationManager.AppSettings["sales_tax"]);
                    //salesMasterLocalStorage.SalesTax = Convert.ToDecimal(LBKpra.Text);
                    //salesMasterLocalStorage.NetAmount = Convert.ToDecimal(LbPayable.Text);
                    //salesMasterLocalStorage.Paid = Convert.ToDecimal(TBPaid.Text);
                    //salesMasterLocalStorage.isConnected = true;
                    //salesMasterLocalStorage.BusinessCode = InternetConnection.GetBusinessCode();
                    //salesMasterLocalStorage.StationID = 1;
                    //salesMasterLocalStorage.SalesDate = System.DateTime.Today.ToString("yyyy-MM-dd");
                    //salesMasterLocalStorage.SalesDate2 = DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff"));
                    //listLocalSalesMaster.Add(salesMasterLocalStorage);
                    #endregion
                }
                else
                {
                    // MessageBox.Show(WebAPIResource.statusCodes);
                    //  lblHttpResponse.Text += WebAPIResource.statusCodes.ToString();
                    ConnectionClass.InsertCommand("insert into sales_Master values('" + Convert.ToDecimal(totalAmount) + "','" + discount + "','15','" + salesTax + "','" + Convert.ToDecimal(netAmount) + "','" + Convert.ToDecimal(paid) + "','" + InternetConnection.GetBusinessCode() + "','1','" + System.DateTime.Today.ToString("yyyy-MM-dd") + "','0','" + DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff")) + "')");

                    // lblResponse.Text += "\nSales Master DATA TRANSFER FAILS!";
                }
            }
                                  );
            t.Start();
            t.IsBackground = true;
            t.Join();

            //lblHttpResponse.Text += message.ToString();
            Thread threadSales = new Thread(() =>
            {
                if (InternetConnection.IsConnectedToInternet())
                {
                    DataTable dt = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
                    OnlineActivities.SendOnlineInvoice(totalAmount, discount,
                                                       salesTaxRate, salesTax, netAmount, paid,
                                                       todayTime, description,
                                                       otherCharges, Convert.ToInt64(dt.Rows[0][0].ToString()), InternetConnection.GetBusinessID(), InternetConnection.GetBusinessCode());
                    Thread.Sleep(3000);
                }
                else
                {
                    //update isConnected value to 0 in sales_master table where isConnected Value happened to be 1 recently
                    SqlConnection conn = new SqlConnection(connStaticString);
                    SqlCommand cmd     = new SqlCommand("sp_InvertClientUpdateConnectionStatusInSales_Master", conn);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
            });
            threadSales.Start();
            threadSales.IsBackground = true;

            #region lll
            //    foreach (ListViewItem item in listView1.Items)
            //    {
            //        DataTable dt = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");

            //        //Stopwatch stopwatch = new Stopwatch();
            //        //stopwatch.Start();
            //        Task t1 = Task.Factory.StartNew(() =>
            //        {

            //            ConnectionClass.InsertCommand("insert into Sales_Details " +
            //            " values ('" +
            //               item.SubItems[0].Text + "','" +
            //               item.SubItems[1].Text + "','" +
            //               item.SubItems[2].Text + "','" +
            //               item.SubItems[3].Text + "','" +
            //               item.SubItems[4].Text + "','" +
            //               dt.Rows[0][0].ToString() + "','True')");
            //        });
            //    }//end foreach

            //    if (InternetConnection.IsConnectedToInternet() && InternetConnection.CheckServerConnectivity(serverIP) == true)
            //    {

            //                 foreach (ListViewItem item in listView1.Items)
            //    {
            //        DataTable dt = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
            //                   OnlineActivities.SendOnlineSalesDetail(Convert.ToInt64(item.SubItems[0].Text), item.SubItems[1].Text.ToString()
            //           , Convert.ToInt32(item.SubItems[2].Text),
            //           Convert.ToDecimal(item.SubItems[3].Text),
            //           Convert.ToDecimal(item.SubItems[4].Text),
            //           Convert.ToInt64(dt.Rows[0][0].ToString()),
            //           InternetConnection.GetBusinessID(), InternetConnection.GetBusinessCode());
            //            }

            //}//end if
            //else
            //{
            //    foreach (ListViewItem item in listView1.Items)
            //    {
            //        DataTable dt = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
            //        ConnectionClass.InsertCommand("insert into Sales_Details " +
            //       " values ('" +
            //          item.SubItems[0].Text + "','" +
            //          item.SubItems[1].Text + "','" +
            //          item.SubItems[2].Text + "','" +
            //          item.SubItems[3].Text + "','" +
            //          item.SubItems[4].Text + "','" +
            //          dt.Rows[0][0].ToString() + "','True')");
            //        lblResponse.Text += "\nSales Detial Data Transfer Fails!";
            //    }//end foreach
            //    PrintReport();
            //}//end else
            #endregion

            #region internet status check was checked per item

            //detail list for transfer
            List <SalesDetail> salesDetailLst = new List <SalesDetail>();

            foreach (var item in salesDetailLstLocal)
            {
                DataTable   dt          = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
                SalesDetail salesDetail = new SalesDetail();
                salesDetail.ProductID          = item.ProductID;
                salesDetail.ProductName        = item.ProductName;
                salesDetail.Quantity           = item.Quantity;
                salesDetail.UnitPrice          = item.UnitPrice;
                salesDetail.TotalPrice         = item.TotalPrice;
                salesDetail.SalesMasterIDLocal = Convert.ToInt64(dt.Rows[0][0].ToString());
                salesDetailLst.Add(salesDetail);
            }
            //  MessageBox.Show(WebAPIResource.statusCodes);
            // lblHttpResponse.Text += WebAPIResource.statusCodes.ToString();
            // List<SalesDetail> salesDetailList = new List<SalesDetail>();
            Thread t1 = new Thread(() =>
            {
                if (InternetConnection.IsConnectedToInternet())
                {
                    foreach (var item in salesDetailLst)
                    {
                        SalesDetail salesDetail = new SalesDetail();
                        DataTable dt            = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
                        ConnectionClass.InsertCommand("insert into Sales_Details " +
                                                      " values ('" +
                                                      item.ProductID + "','" +
                                                      item.ProductName + "','" +
                                                      item.Quantity + "','" +
                                                      item.UnitPrice + "','" +
                                                      item.TotalPrice + "','" +
                                                      dt.Rows[0][0].ToString() + "','True')");
                    }
                }
                else
                {
                    foreach (var item in salesDetailLst)
                    {
                        SalesDetail salesDetail = new SalesDetail();
                        DataTable dt            = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
                        ConnectionClass.InsertCommand("insert into Sales_Details " +
                                                      " values ('" +
                                                      item.ProductID + "','" +
                                                      item.ProductName + "','" +
                                                      item.Quantity + "','" +
                                                      item.UnitPrice + "','" +
                                                      item.TotalPrice + "','" +
                                                      dt.Rows[0][0].ToString() + "','False')");
                    }
                    /// PrintReport();
                    ////ClearItems();
                    //  lblHttpResponse.Text += "not connected!";
                }
            });
            t1.Start();
            t1.IsBackground = true;
            t1.Join();
            //PrintReport();


            ////Thread t2 = new Thread(() =>
            ////{
            ////    PrintReport();

            ////});
            ////t2.Start();
            ////t2.Join();
            Thread t3 = new Thread(() =>
            {
                if (InternetConnection.IsConnectedToInternet())
                {
                    foreach (var item in salesDetailLst)
                    {
                        OnlineActivities.SendOnlineSalesDetail(item.ProductID, item.ProductName,
                                                               Convert.ToInt32(item.Quantity), item.UnitPrice, item.TotalPrice,
                                                               item.SalesMasterIDLocal,
                                                               InternetConnection.GetBusinessID(),
                                                               InternetConnection.GetBusinessCode());
                    }
                }
                else
                {
                    //update isconnected value to 0 in sales_details table where isConnected is equal to 1 recently
                    SqlConnection conn = new SqlConnection(connStaticString);
                    SqlCommand cmd     = new SqlCommand("sp_InvertClientUpdateConnectionStatusInSales_Details", conn);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    //   lblHttpResponse.Text += "not connected to internet";
                }
            });
            t3.Start();
            t3.IsBackground = true;
            #endregion
            #region original
            //foreach (ListViewItem item in listView1.Items)
            //{
            //    if (InternetConnection.IsConnectedToInternet() && InternetConnection.CheckServerConnectivity(serverIP) == true)
            //    {
            //        DataTable dt = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");

            //        //Stopwatch stopwatch = new Stopwatch();
            //        //stopwatch.Start();
            //        Task t1 = Task.Factory.StartNew(() =>
            //        {

            //            ConnectionClass.InsertCommand("insert into Sales_Details " +
            //            " values ('" +
            //               item.SubItems[0].Text + "','" +
            //               item.SubItems[1].Text + "','" +
            //               item.SubItems[2].Text + "','" +
            //               item.SubItems[3].Text + "','" +
            //               item.SubItems[4].Text + "','" +
            //               dt.Rows[0][0].ToString() + "','True')");
            //        });



            //        //stopwatch.Stop();
            //        ////long ts = stopwatch.Elapsed.Seconds;
            //        ////lblTimeElapsed.Text = ts.ToString();
            //        Task t2 = t1.ContinueWith(antTask =>
            //        {


            //            OnlineActivities.SendOnlineSalesDetail(Convert.ToInt64(item.SubItems[0].Text), item.SubItems[1].Text.ToString()
            //               , Convert.ToInt32(item.SubItems[2].Text),
            //               Convert.ToDecimal(item.SubItems[3].Text),
            //               Convert.ToDecimal(item.SubItems[4].Text),
            //               Convert.ToInt64(dt.Rows[0][0].ToString()),
            //               InternetConnection.GetBusinessID(), InternetConnection.GetBusinessCode()

            //               );
            //        });

            //    }

            //    else
            //    {
            //        DataTable dt = ConnectionClass.Selectcommand("select max(salesMasterID) from Sales_Master");
            //        ConnectionClass.InsertCommand("insert into Sales_Details " +
            //       " values ('" +
            //          item.SubItems[0].Text + "','" +
            //          item.SubItems[1].Text + "','" +
            //          item.SubItems[2].Text + "','" +
            //          item.SubItems[3].Text + "','" +
            //          item.SubItems[4].Text + "','" +
            //          dt.Rows[0][0].ToString() + "','True')");
            //        lblResponse.Text += "\nSales Detial Data Transfer Fails!";

            //    }
            //}
            #endregion
        }