public List <OrderGuides.DeletedGuide> GetProdcutsFromMasterOrderGuide(int groupID)
        {
            List <OrderGuides.DeletedGuide> deletedGuides = new  List <OrderGuides.DeletedGuide>();

            try
            {
                SqlConnection connect = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnection"].ConnectionString);
                using (connect)
                {
                    SqlDataAdapter da = new SqlDataAdapter("Select * From masterOrderGuide where group_id = @grpID", connect);
                    da.SelectCommand.Parameters.AddWithValue("@grpID", groupID);
                    DataTable dt = new DataTable();
                    da.Fill(dt);

                    SqlDataAdapter da1 = new SqlDataAdapter("Select * From customerGroups where group_id = @groupID", connect);
                    da1.SelectCommand.Parameters.AddWithValue("@groupID", groupID);
                    DataTable dt1 = new DataTable();
                    da1.Fill(dt1);

                    if (dt.Rows.Count < 1)
                    {
                        OrderGuides.DeletedGuide dG = new OrderGuides.DeletedGuide();

                        foreach (DataRow dr in dt1.Rows)
                        {
                            dG.GroupName        = dr["group_name"].ToString();
                            dG.GroupDescription = dr["group_description"].ToString();
                            dG.CustCode         = dr["custCode"].ToString();
                        }

                        dG.LoginID     = login.GetLoggedInUser.m_userRowID;
                        dG.ProductCode = "";
                        dG.Unit        = "";
                        dG.GroupID     = groupID;
                        dG.Quantity    = 0;
                        dG.ItemComment = "";
                        dG.SortOrder   = 0;
                        deletedGuides.Add(dG);
                    }
                    else
                    {
                        foreach (DataRow row in dt.Rows)
                        {
                            OrderGuides.DeletedGuide dG = new OrderGuides.DeletedGuide();
                            foreach (DataRow dr in dt1.Rows)
                            {
                                dG.GroupName        = dr["group_name"].ToString();
                                dG.GroupDescription = dr["group_description"].ToString();
                                dG.CustCode         = dr["custCode"].ToString();
                            }
                            dG.LoginID     = login.GetLoggedInUser.m_userRowID;
                            dG.ProductCode = row["prodCode"].ToString().Trim();
                            dG.Unit        = row["unit_id"].ToString();
                            dG.GroupID     = Convert.ToInt16(row["group_id"]);
                            dG.Quantity    = Convert.ToInt16(row["qty"]);
                            dG.ItemComment = row["itemComment"].ToString();
                            dG.SortOrder   = Convert.ToInt16(row["qty"]);
                            deletedGuides.Add(dG);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLine("Exception @ GetProdcutsFromMasterOrderGuide() : " + ex.Message);
            }
            return(deletedGuides);
        }
        public HttpResponseMessage RecoverGuide([FromUri] int groupID)
        {
            OrderGuides.DeletedGuide dGuide = new OrderGuides.DeletedGuide();
            try
            {
                Logger.WriteLine("Recovering order guide....");
                List <OrderGuides.DeletedGuide> deletedGuides = new List <OrderGuides.DeletedGuide>();
                SqlConnection connect = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnection"].ConnectionString);

                using (connect)
                {
                    SqlDataAdapter da = new SqlDataAdapter("Select * From DeletedGuides Where GroupID = @gID And LoginID = @loginID", connect);
                    DataTable      dt = new DataTable();
                    da.SelectCommand.Parameters.AddWithValue("@loginID", login.GetLoggedInUser.m_userRowID);
                    da.SelectCommand.Parameters.AddWithValue("@gID", groupID);
                    da.Fill(dt);

                    foreach (DataRow dr in dt.Rows)
                    {
                        OrderGuides.DeletedGuide dG = new OrderGuides.DeletedGuide();
                        dG.ProductCode      = dr["ProductCode"].ToString();
                        dG.Unit             = dr["Unit"].ToString();
                        dG.GroupID          = Convert.ToInt32(dr["GroupID"]);
                        dG.Quantity         = Convert.ToInt32(dr["Quantity"]);
                        dG.ItemComment      = dr["ItemComment"].ToString();
                        dG.SortOrder        = Convert.ToInt32(dr["SortOrder"]);
                        dG.CustCode         = dr["CustCode"].ToString();
                        dG.GroupName        = dr["GroupName"].ToString();
                        dG.GroupDescription = dr["GroupDescription"].ToString();
                        dG.LoginID          = Convert.ToInt32(dr["LoginID"]);
                        deletedGuides.Add(dG);
                        dGuide = dG;
                    }

                    SqlCommand cmd = new SqlCommand("Insert into loginGroups Values(@loginID, @groupID)", connect);
                    cmd.Parameters.AddWithValue("@loginID", login.GetLoggedInUser.m_userRowID);
                    cmd.Parameters.AddWithValue("@groupID", groupID);

                    SqlCommand cmd1 = new SqlCommand("SET IDENTITY_INSERT customerGroups ON " +
                                                     "Insert into customerGroups (group_id, custCode, group_name, group_description, sortOrder) Values(@grpID, @custCode, @groupName, @groupDesc, @sOrder) " +
                                                     "SET IDENTITY_INSERT customerGroups OFF", connect);
                    cmd1.Parameters.AddWithValue("@grpID", groupID);
                    cmd1.Parameters.AddWithValue("@custCode", "");
                    cmd1.Parameters.AddWithValue("@groupName", dGuide.GroupName);
                    cmd1.Parameters.AddWithValue("@groupDesc", dGuide.GroupDescription);
                    cmd1.Parameters.AddWithValue("@sOrder", 0);

                    connect.Open();

                    cmd.ExecuteNonQuery();
                    cmd1.ExecuteNonQuery();

                    ThreadStart threadStart = delegate()
                    {
                        recoverGuide(deletedGuides, groupID);
                    };
                    Thread thread = new Thread(threadStart);
                    thread.Start();
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLine("Exception @ RecoverGuide() : " + ex.Message);
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex));
            }
            var message = Request.CreateResponse(HttpStatusCode.OK, (dGuide.GroupDescription).ToString());

            message.Headers.Location = new Uri(Request.RequestUri.ToString());
            Logger.WriteLine("Recovering order Guide successful. groupID = " + groupID);
            return(message);
        }