private List <CatalogSubjectOptionValue> FillVersionValues(List <CustomerCatalogInformation> lstCustCatInfo, CatalogSubjectOption catSubjOpt)
        {
            bool isSoftwareSelected = false;
            int  softwarevalID      = 0;
            List <CatalogSubjectOptionValue> lstCatalogSuboptVersionVal = new List <CatalogSubjectOptionValue>();

            isSoftwareSelected = lstCustCatInfo.Where(e => e.CatalogSubjectOptionValue.CatalogSubjectOptionID == 15 && e.Status != false).FirstOrDefault() != null ? true : false;
            if (isSoftwareSelected)
            {
                softwarevalID = lstCustCatInfo.Where(e => e.CatalogSubjectOptionValue.CatalogSubjectOptionID == 15 && e.Status != false).FirstOrDefault() != null ? (int)lstCustCatInfo.Where(e => e.CatalogSubjectOptionValue.CatalogSubjectOptionID == 15 && e.Status != false).FirstOrDefault().CatalogSubjectOptionValueID : 0;
            }
            if (softwarevalID != 0)
            {
                lstCatalogSuboptVersionVal = GetVersionListBySoftwareID(softwarevalID);
                return(catSubjOpt.CatalogSubjectOptionValues.Where(e => lstCatalogSuboptVersionVal.Contains(e)).Select(e => e).OrderBy(e => e.CatalogSubjectOptionValue1).ToList());
            }
            return(null);
        }
        private CatalogBaseModel FillCatalogProtectorInformation(CatalogBaseModel catSubOptProtectorValBModel, CatalogSubjectOption catSubjOpt, List <CustomerCatalogInformation> lstCustCatInfo, int custAutoID)
        {
            catSubOptProtectorValBModel.ID          = catSubjOpt.CatalogSubjectOptionProtectors.FirstOrDefault().CSOProtectorID;
            catSubOptProtectorValBModel.Text        = catSubjOpt.CatalogSubjectOptionProtectors.FirstOrDefault().ProtectorCount.ToString();
            catSubOptProtectorValBModel.CatalogType = "P";
            catSubOptProtectorValBModel.Type        = (int)catSubjOpt.ColumnType;

            catSubOptProtectorValBModel.IsSelected = catSubjOpt.CatalogSubjectOptionValues.FirstOrDefault() != null?catSubjOpt.CatalogSubjectOptionValues.FirstOrDefault().CustomerCatalogInformations.Where(e => e.CustAutoID == custAutoID).Count() > 0 ? catSubjOpt.CatalogSubjectOptionValues.FirstOrDefault().CustomerCatalogInformations.Where(e => e.CustAutoID == custAutoID).FirstOrDefault().CustomerCatalogProtectorInformations.Where(e => e.Status == true).Count() > 0 ? true : false : false : false;

            catSubOptProtectorValBModel.Value = catSubjOpt.CatalogSubjectOptionProtectors.FirstOrDefault().CatalogSubjectOptionProtectorValues.FirstOrDefault().CSOProtectorValue;
            return(catSubOptProtectorValBModel);
        }
        private CatalogBaseModel FillCatalogShelfReadyInformation(CatalogBaseModel catSubOptShelfValBModel, CatalogSubjectOption catSubjOpt, List <CustomerCatalogInformation> lstCustCatInfo, int custAutoID)
        {
            catSubOptShelfValBModel.ID          = catSubjOpt.CatalogSubjectoptionShelfReadies.FirstOrDefault().CSOShelfReadyID;
            catSubOptShelfValBModel.Text        = "1";
            catSubOptShelfValBModel.CatalogType = "S";
            catSubOptShelfValBModel.IsSelected  = catSubjOpt.CatalogSubjectOptionValues.FirstOrDefault() != null?catSubjOpt.CatalogSubjectOptionValues.FirstOrDefault().CustomerCatalogInformations.Where(e => e.CustAutoID == custAutoID).Count() > 0 ? catSubjOpt.CatalogSubjectOptionValues.FirstOrDefault().CustomerCatalogInformations.Where(e => e.CustAutoID == custAutoID).FirstOrDefault().CustomerCatalogShelfReadyInformations.Where(e => e.Status == true).Count() > 0 ? true : false : false : false;

            catSubOptShelfValBModel.Type  = (int)catSubjOpt.ColumnType;
            catSubOptShelfValBModel.Value = (catSubjOpt.CatalogSubjectoptionShelfReadies.FirstOrDefault().ShelfReadyCount *Convert.ToDouble(catSubjOpt.CatalogSubjectoptionShelfReadies.FirstOrDefault().CatalogSubjectOptionShelfReadyValues.FirstOrDefault().CSOShelfReadyValue)).ToString();
            return(catSubOptShelfValBModel);
        }
        private CatalogBaseModel FillCatalogSubjectOptionValueBaseModel(CatalogBaseModel catSubOptValBModel, CatalogSubjectOption catSubjOpt, List <CustomerCatalogInformation> lstCustCatInfo, int custUserID)
        {
            if (catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.ComboBox || catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.CheckBox)
            {
                catSubOptValBModel.comboBase = new List <ComboBase>();
                if (catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.ComboBox)
                {
                    catSubOptValBModel.comboBase.Insert(0, new ComboBase {
                        ItemValue = "--Select--", ItemID = "0"
                    });
                }
            }
            string strComments = string.Empty;

            List <CatalogSubjectOptionValue> lstCatalogSubOptValues = catSubjOpt.CatalogSubjectOptionValues.OrderBy(e => e.Priority).ToList();

            if (catSubjOpt.CatalogSubjectOptionValues.Where(e => e.CatalogSubjectOptionID == 33).FirstOrDefault() != null)
            {
                lstCatalogSubOptValues = FillVersionValues(lstCustCatInfo, catSubjOpt);
            }
            if (lstCatalogSubOptValues != null && lstCatalogSubOptValues.Count() > 0)
            {
                foreach (CatalogSubjectOptionValue catSubjOptVal in lstCatalogSubOptValues)
                {
                    catSubOptValBModel.ID   = catSubjOpt.CatalogSubjectOptionID;
                    catSubOptValBModel.Type = (int)catSubjOpt.ColumnType;
                    if (catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.ComboBox || catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.CheckBox)
                    {
                        ComboBase objCombo = new ComboBase();
                        objCombo.ItemID    = catSubjOptVal.CatalogSubjectOptionValueID.ToString();
                        objCombo.ItemValue = catSubjOptVal.CatalogSubjectOptionValue1;
                        objCombo.Selected  = lstCustCatInfo.Where(e => e.CatalogSubjectOptionValueID == catSubjOptVal.CatalogSubjectOptionValueID && e.Status != false).FirstOrDefault() != null ? true : false;
                        catSubOptValBModel.comboBase.Add(objCombo);
                    }
                    strComments = lstCustCatInfo.Where(e => e.CatalogSubjectOptionValue.CatalogSubjectOptionValueID == catSubjOptVal.CatalogSubjectOptionValueID && e.Status != false).FirstOrDefault() != null?lstCustCatInfo.Where(e => e.CatalogSubjectOptionValue.CatalogSubjectOptionValueID == catSubjOptVal.CatalogSubjectOptionValueID && e.Status != false).FirstOrDefault().Comments : strComments;

                    catSubOptValBModel.Value = strComments;
                    if (catSubjOpt.CatalogSubjectID == 16)
                    {
                        catSubOptValBModel.Type = catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.CheckBox ? (int)CatalogColumnTypeEnum.Label : (int)catSubjOpt.ColumnType;
                        if (catSubjOpt.ColumnType == (int)CatalogColumnTypeEnum.CheckBox)
                        {
                            catSubOptValBModel.Value = catSubjOptVal.CatalogSubjectOptionValue1;
                        }
                    }
                }
            }
            else
            {
                catSubOptValBModel.ID   = catSubjOpt.CatalogSubjectOptionID;
                catSubOptValBModel.Type = (int)catSubjOpt.ColumnType;
            }
            return(catSubOptValBModel);
        }