private void btnPreview_Click(object sender, EventArgs e)
 {
     string orderId = "1";
     string status = "Pending";
     try
     {
         IXMLRPCProxyAdmin adminProxy = (IXMLRPCProxyAdmin)XmlRpcProxyGen.Create(typeof(IXMLRPCProxyAdmin));
         string decPassword = CryptoLib.Decrypt(SystemSettings.Default.PASSWORD, SystemSettings.Default.DECRYPTKEY);
         XmlRpcStruct[] orderslist = adminProxy.GetOrders(SystemSettings.Default.USERNAME, decPassword, "0", "1",SystemSettings.Default.STOREID);
         if (orderslist != null)
         {
             if (orderslist.Count() != 0)
             {
                 orderId = orderslist.FirstOrDefault()["order_id"].ToString();
                 string printTemplateIndex=(cbxPrintTemplates.SelectedIndex+1).ToString();
                 status = orderslist.FirstOrDefault()["status"].ToString();
                 ViewOrder frmOrderView = new ViewOrder(orderId, true, status,printTemplateIndex);
                 frmOrderView.ShowDialog();
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Failed to prepare order print preview,please try again or later", "Error");
     }
     
 }
        void gvOrdersList_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (!INTERNET)
            {
                toolStripStatusLabel1.Text = "Status: Disconnected";
                notifyIcon1.ShowBalloonTip(1000, "VFOS Alert", "Lost Internet Connection", ToolTipIcon.Warning);
                return;
            }
            DataGridView gvOrdersList = sender as DataGridView;
            if (e.ColumnIndex < 0) return;
            if (e.RowIndex < 0) return;
            if (gvOrdersList.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex != -1)
            {
                DataGridViewButtonColumn col = gvOrdersList.Columns[e.ColumnIndex] as DataGridViewButtonColumn;
                if (gvOrdersList.Rows.Count == 0)
                {
                    return;
                }
                if (gvOrdersList.Columns.Count < 5)
                {
                    return;
                }
                DataGridViewRow currRow = gvOrdersList.Rows[e.RowIndex];
                currRow.Cells[e.ColumnIndex].Selected = false;
                col.Selected = false;
                gvOrdersList.ClearSelection();
                gvOrdersList.Refresh();
                try
                {

                    string orderId = currRow.Cells[0].Value.ToString();
                    string oStatus = currRow.Cells[2].Value.ToString();

                    if (col.HeaderText == "Print")
                    {
                        ProcessPrint(orderId, oStatus);
                    }
                    if (col.HeaderText == "View")
                    {
                        WINDOWACTIVE = false;
                        ViewOrder form = new ViewOrder(orderId, IsAdmin, oStatus, "");
                        form.ShowDialog(this);
                        WINDOWACTIVE = true;
                    }
                    if (col.HeaderText == "Update")
                    {
                        WINDOWACTIVE = false;
                        frmUpdateOrder form = new frmUpdateOrder(orderId, OrderStatuses, oStatus, IsAdmin);
                        form.ShowDialog(this);
                        WINDOWACTIVE = true;
                        if (form.DialogResult == DialogResult.OK)
                        {

                            notifyIcon1.ShowBalloonTip(1000, "VFOS Alert", "Order status updated", ToolTipIcon.Info);
                            if (LoadOrdersGridThread != null || LoadOrdersGridThread.IsAlive)
                            {
                                LoadOrdersGridThread.Abort();
                            }
                            LoadOrdersGridThread = new Thread(new ThreadStart(RunLoadOrderGridInThread));
                            LoadOrdersGridThread.IsBackground = true;
                            LoadOrdersGridThread.Start();
                        }
                        else
                        {
                            gvOrdersList.ClearSelection();
                            gvOrdersList.Refresh();
                        }

                    }

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error");
                }
            }
        }