private void DeleteML(int queryId)
        {
            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    MeasurementLocationBO objMeasurementLocation = new MeasurementLocationBO(this.ObjContext);
                    if (queryId > 0)
                    {
                        objMeasurementLocation.ID = queryId;
                        objMeasurementLocation.GetObject();


                        foreach (SizeChartBO schart in objMeasurementLocation.SizeChartsWhereThisIsMeasurementLocation)
                        {
                            SizeChartBO objSizeChart = new SizeChartBO(this.ObjContext);
                            objSizeChart.ID = schart.ID;
                            objSizeChart.GetObject();

                            objSizeChart.Delete();
                            this.ObjContext.SaveChanges();
                        }
                        objMeasurementLocation.Delete();
                    }

                    this.ObjContext.SaveChanges();
                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                IndicoLogging.log.Error("Error occured while Deleting the Measurement Location", ex);
            }
        }
        //protected void dgMeasurementLocation_ItemDataBound(object sender, DataGridItemEventArgs e)
        //{
        //    DataGridItem item = e.Item;
        //    if (item.ItemIndex > -1 && item.DataItem is ItemBO)
        //    {
        //        ItemBO objItem = (ItemBO)item.DataItem;

        //        Literal lblItem = (Literal)item.FindControl("lblItem");
        //        lblItem.Text = objItem.Name;

        //        LinkButton linkEdit = (LinkButton)item.FindControl("linkEdit");
        //        linkEdit.Attributes.Add("qid", objItem.ID.ToString());
        //    }
        //}

        //protected void dgMeasurementLocation_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
        //{
        //    // Set page index
        //    this.dgMeasurementLocation.CurrentPageIndex = e.NewPageIndex;

        //    this.PopulateDataGrid();
        //}

        //protected void dgMeasurementLocation_SortCommand(object source, DataGridSortCommandEventArgs e)
        //{
        //    string sortDirection = String.Empty;
        //    if (!SortExpression.ToUpper().StartsWith(e.SortExpression) && !SortExpression.ToUpper().Trim().EndsWith("ASC"))
        //    {
        //        sortDirection = " asc";
        //    }
        //    else
        //    {
        //        sortDirection = (SortExpression.ToUpper().EndsWith("DESC")) ? " asc" : " desc";
        //    }
        //    this.SortExpression = e.SortExpression + sortDirection;

        //    this.PopulateDataGrid();

        //    foreach (DataGridColumn col in this.dgMeasurementLocation.Columns)
        //    {
        //        if (col.Visible && col.SortExpression == e.SortExpression)
        //        {
        //            col.HeaderStyle.CssClass = "selected " + ((sortDirection.ToUpper() != " DESC") ? "sortDown" : "sortUp");
        //        }
        //        else
        //        {
        //            col.HeaderStyle.CssClass = ((col.HeaderStyle.CssClass == "hide") ? "hide" : string.Empty);
        //        }
        //    }
        //}

        //protected void dgMeasurementLocation_ItemCommand(object source, DataGridCommandEventArgs e)
        //{
        //    if (e.CommandName == "Edit")
        //    {

        //    }
        //}

        protected void dgAddEditMLs_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            DataGridItem item = e.Item;

            if ((item.ItemIndex > -1 && item.DataItem is MeasurementLocationBO) && (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem))
            {
                MeasurementLocationBO objMeasurementLocation = (MeasurementLocationBO)item.DataItem;

                // bool canDelete = (objMeasurementLocation.SizeChartsWhereThisIsMeasurementLocation.Count == 0);

                CheckBox chkIsSend = (CheckBox)item.FindControl("chkIsSend");
                chkIsSend.Checked = (bool)objMeasurementLocation.IsSend;
                chkIsSend.Enabled = false;

                Label lblID = (Label)item.FindControl("lblID");
                lblID.Text = objMeasurementLocation.ID.ToString();

                Label lblKey = (Label)item.FindControl("lblKey");
                lblKey.Text = objMeasurementLocation.Key;

                Label lblName = (Label)item.FindControl("lblName");
                lblName.Text = objMeasurementLocation.Name;

                LinkButton linkEdit = (LinkButton)item.FindControl("linkEdit");
                linkEdit.Attributes.Add("qid", objMeasurementLocation.ID.ToString());

                HyperLink linkDelete = (HyperLink)item.FindControl("linkDelete");
                linkDelete.Attributes.Add("qid", objMeasurementLocation.ID.ToString());
                //linkDelete.Visible = canDelete;
            }
            else if ((item.ItemIndex > -1 && item.DataItem is MeasurementLocationBO) && (item.ItemType == ListItemType.EditItem))
            {
                MeasurementLocationBO objMeasurementLocation = (MeasurementLocationBO)item.DataItem;

                CheckBox chkIsSend = (CheckBox)item.FindControl("chkIsSend");
                chkIsSend.Checked = objMeasurementLocation.IsSend ?? false;

                Label lblID = (Label)item.FindControl("lblID");
                lblID.Text        = objMeasurementLocation.ID.ToString();
                chkIsSend.Enabled = true;

                TextBox txtKey = (TextBox)item.FindControl("txtKey");
                txtKey.Text       = objMeasurementLocation.Key;
                this.hdnKey.Value = txtKey.Text;

                TextBox txtName = (TextBox)item.FindControl("txtName");
                txtName.Text       = objMeasurementLocation.Name;
                this.hdnName.Value = txtName.Text;

                LinkButton linkSave = (LinkButton)item.FindControl("linkSave");
                linkSave.Attributes.Add("qid", objMeasurementLocation.ID.ToString());
                linkSave.CommandName = (!string.IsNullOrEmpty(hdnName.Value) || !string.IsNullOrEmpty(this.hdnKey.Value)) ? "Update" : "Save";
            }
        }
        private void PopulateDataGrid()
        {
            // Hide Controls
            this.dvEmptyContent.Visible   = false;
            this.dvDataContent.Visible    = false;
            this.dvNoSearchResult.Visible = false;

            // Search text
            string searchText = this.txtSearch.Text.ToLower().Trim();

            // Populate Items
            //ItemBO objItem = new ItemBO();
            MeasurementLocationBO objMeasurementLocation = new MeasurementLocationBO();
            List <ItemBO>         lstItems = new List <ItemBO>();

            if ((searchText != string.Empty) && (searchText != "search"))
            {
                lstItems = objMeasurementLocation.SearchObjects().AsQueryable().OrderBy(SortExpression).GroupBy(o => o.Item).Select(m => m.First().objItem).Where(o => o.Name.ToLower().Contains(searchText)).ToList();
            }
            else
            {
                lstItems = objMeasurementLocation.SearchObjects().AsQueryable().OrderBy(SortExpression).GroupBy(o => o.Item).Select(m => m.First().objItem).ToList();
            }

            if (lstItems.Count > 0)
            {
                this.RadGridMeasurements.AllowPaging = (lstItems.Count > this.RadGridMeasurements.PageSize);
                this.RadGridMeasurements.DataSource  = lstItems;
                this.RadGridMeasurements.DataBind();
                Session["MeasurementDetails"] = lstItems;

                this.dvDataContent.Visible = true;
            }
            else if ((searchText != string.Empty && searchText != "search"))
            {
                this.lblSerchKey.Text = searchText + ((searchText != string.Empty) ? " - " : string.Empty);

                this.dvDataContent.Visible    = true;
                this.dvNoSearchResult.Visible = true;
            }
            else
            {
                this.dvEmptyContent.Visible            = true;
                this.btnAddMeasurementLocation.Visible = false;
            }

            //this.lblSerchKey.Text = string.Empty;
            this.RadGridMeasurements.Visible = (lstItems.Count > 0);
        }
        private void PopulateML(bool addNewRecorde, int editItemIndex, int currentPageIndex)
        {
            if (this.IsNotRefresh)
            {
                this.dgAddEditMLs.CurrentPageIndex = currentPageIndex;
                this.dgAddEditMLs.EditItemIndex    = editItemIndex;

                MeasurementLocationBO obj = new MeasurementLocationBO();
                obj.Item = int.Parse(this.ddlItem.SelectedValue.ToString());

                List <MeasurementLocationBO> lstEmptyList = (from o in obj.SearchObjects()
                                                             orderby o.Key
                                                             select o).ToList();

                if (addNewRecorde || lstEmptyList.Count == 0)
                {
                    MeasurementLocationBO objMeasurementLocation = new MeasurementLocationBO();
                    objMeasurementLocation.ID   = 0;
                    objMeasurementLocation.Item = int.Parse(this.ddlItem.SelectedValue.ToString());
                    objMeasurementLocation.Key  = string.Empty;
                    objMeasurementLocation.Name = string.Empty;

                    lstEmptyList.Insert(0, objMeasurementLocation);

                    if (dgAddEditMLs.CurrentPageIndex > Math.Floor((double)(lstEmptyList.Count / dgAddEditMLs.PageSize)))
                    {
                        dgAddEditMLs.CurrentPageIndex = Convert.ToInt32(Math.Floor((double)(lstEmptyList.Count / dgAddEditMLs.PageSize)));
                    }
                    this.dgAddEditMLs.EditItemIndex = 0;// lstEmptyList.Count - 1;
                }

                this.dgAddEditMLs.DataSource = lstEmptyList;
                //this.dgAddEditMLs.AllowPaging = (lstEmptyList.Count > dgAddEditMLs.PageSize);
                this.dgAddEditMLs.DataBind();

                ViewState["IsPopulateModel"] = true;
            }
            else
            {
                ViewState["IsPopulateModel"] = false;
            }
        }
        private void ProcessML(bool isNewML)
        {
            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    MeasurementLocationBO objML = new MeasurementLocationBO(this.ObjContext);

                    if (!isNewML)
                    {
                        objML.ID = int.Parse(this.hdnSelectedMeasurementLocationListID.Value);
                        objML.GetObject();
                    }

                    objML.IsSend = (int.Parse(this.hdnIsSend.Value.ToString()) > 0) ? true : false;
                    objML.Name   = this.hdnName.Value.ToString();
                    objML.Key    = this.hdnKey.Value.ToString();

                    if (isNewML)
                    {
                        int itemId = int.Parse(this.ddlItem.SelectedValue.ToString());

                        ItemBO objItem = new ItemBO(this.ObjContext);
                        objItem.ID = itemId;
                        objItem.GetObject();

                        objItem.MeasurementLocationsWhereThisIsItem.Add(objML);
                    }

                    this.ObjContext.SaveChanges();
                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                IndicoLogging.log.Error("Error occured while processing Measurement Locations", ex);
            }
        }
        protected void rptSpecML_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            RepeaterItem item = e.Item;

            if (item.ItemIndex > -1 && item.DataItem is IGrouping <int, SizeChartBO> )
            {
                List <SizeChartBO> lstSizeChart = ((IGrouping <int, SizeChartBO>)item.DataItem).ToList();

                MeasurementLocationBO objML = new MeasurementLocationBO();
                objML.ID = lstSizeChart[0].MeasurementLocation;
                objML.GetObject();

                Literal litCellHeaderKey = (Literal)item.FindControl("litCellHeaderKey");
                litCellHeaderKey.Text = objML.Key;

                Literal litCellHeaderML = (Literal)item.FindControl("litCellHeaderML");
                litCellHeaderML.Text = objML.Name;

                Repeater rptSpecSizeQty = (Repeater)item.FindControl("rptSpecSizeQty");
                rptSpecSizeQty.DataSource = lstSizeChart;
                rptSpecSizeQty.DataBind();
            }
        }
        private void GetDiffrenceGarmentSpec(int original, int compare)
        {
            PatternBO objOriPattern = new PatternBO();

            objOriPattern.ID = original;
            objOriPattern.GetObject();

            PatternBO objComPattern = new PatternBO();

            objComPattern.ID = compare;
            objComPattern.GetObject();

            List <SizeChartBO> lstDiffrence = new List <SizeChartBO>();

            List <SizeChartBO> lstOriSizeCharts = objOriPattern.SizeChartsWhereThisIsPattern;

            List <SizeChartBO> lstCComSizeCharts = objComPattern.SizeChartsWhereThisIsPattern;

            foreach (SizeChartBO osc in lstOriSizeCharts)
            {
                foreach (SizeChartBO csc in lstCComSizeCharts)
                {
                    if (osc.Size == csc.Size && osc.MeasurementLocation == csc.MeasurementLocation)
                    {
                        decimal difference = (osc.Val - csc.Val);

                        MeasurementLocationBO objM = new MeasurementLocationBO();
                        objM.ID = csc.MeasurementLocation;
                        objM.GetObject();

                        SizeBO objSize = new SizeBO();
                        objSize.ID = csc.Size;
                        objSize.GetObject();

                        SizeChartBO objSizeChart = new SizeChartBO();
                        objSizeChart.ID                     = 0;
                        objSizeChart.Pattern                = csc.Pattern;// Not necessary
                        objSizeChart.MeasurementLocation    = osc.MeasurementLocation;
                        objSizeChart.objPattern             = objComPattern;
                        objSizeChart.Size                   = csc.Size;
                        objSizeChart.objSize                = objSize;
                        objSizeChart.MeasurementLocation    = csc.MeasurementLocation;
                        objSizeChart.objMeasurementLocation = objM;
                        objSizeChart.Val                    = difference;

                        lstDiffrence.Add(objSizeChart);
                    }
                }
            }

            List <IGrouping <int, SizeChartBO> > lstSizeChartGroup = lstDiffrence.OrderBy(o => o.objMeasurementLocation.Key).GroupBy(o => o.MeasurementLocation).ToList();

            if (lstSizeChartGroup.Count > 0)
            {
                this.rptDiffSpecSizeQtyHeader.DataSource = (List <SizeChartBO>)lstSizeChartGroup[0].ToList();
                this.rptDiffSpecSizeQtyHeader.DataBind();

                this.rptDiffSpecML.DataSource = lstSizeChartGroup;
                this.rptDiffSpecML.DataBind();

                this.dvDiffrence.Visible = true;
            }
        }