/// <summary>
        /// This method is used to save category contents with associated category
        /// </summary>
        /// <param name="content"></param>
        public void SaveCategoryContent(ContentModel content)
        {
            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                var obj = objCategoryEntities.CategoriesContents.Where(x => x.Cat_Id == content.CategoryID && x.IsDeleted != true && x.Set_Default == true && content.IsSelected == true).FirstOrDefault();
                if (obj != null)
                {
                    obj.Set_Default = false;
                    objCategoryEntities.SaveChanges();
                }

                try
                {
                    CategoriesContent catContent = new CategoriesContent();
                    catContent.Cat_Contents  = content.ContentName.Trim();
                    catContent.Content_Limit = content.Limit;
                    catContent.Cat_Id        = content.CategoryID;
                    catContent.IsDeleted     = false;
                    catContent.Set_Default   = content.IsSelected;
                    catContent.CreatedDate   = DateTime.Now;
                    objCategoryEntities.CategoriesContents.Add(catContent);
                    objCategoryEntities.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
        public bool IsContentExists(ContentModel content)
        {
            bool IsExists = false;

            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                try
                {
                    var catContent = objCategoryEntities.CategoriesContents.Where(e => e.Cat_Id == content.CategoryID &&
                                                                                  e.Cat_Contents == content.ContentName.Trim() && e.IsDeleted == false && e.ID != content.ContentID).ToList();
                    if (catContent.Count > 0)
                    {
                        IsExists = true;
                    }
                    else
                    {
                        IsExists = false;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return(IsExists);
            }
        }
        public bool IsCodeAndRateExists(TaxModel taxModel)
        {
            bool isExists = false;

            try
            {
                using (SDNSettingEntities objEntities = new SDNSettingEntities())
                {
                    var tax = objEntities.TaxCodesAndRates.Where(e => e.Tax_Code.Trim() == taxModel.TaxCode
                                                                 //&& e.Tax_Rate == taxModel.TaxRate ------removes after client MOM on 11 may 2017
                                                                 && e.IsDeleted == false && e.ID != taxModel.TaxID).ToList();
                    if (tax.Count > 0)
                    {
                        isExists = true;
                    }
                    else
                    {
                        isExists = false;
                    }
                }
                return(isExists);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public TaxModel GetDefaultTaxes()
        {
            try
            {
                using (SDNSettingEntities objEntities = new SDNSettingEntities())
                {
                    var defaultTax = (from tax in objEntities.TaxCodesAndRates
                                      where tax.IsDeleted == false
                                      select new TaxModel()
                    {
                        TaxID = tax.ID,
                        TaxName = tax.Tax_Name,
                        TaxDescription = tax.Tax_Description,
                        TaxCode = tax.Tax_Code,
                        TaxRate = tax.Tax_Rate,
                        IsDefault = tax.Tax_Default,
                        IsInActive = tax.Tax_Inactive,
                        Predefined = tax.Predefined
                    }).Where(x => x.IsDefault == true && x.IsInActive != "Y").FirstOrDefault();

                    return(defaultTax as TaxModel);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 /// <summary>
 /// This method is used to retrieve single tax code and rates
 /// </summary>
 /// <param name="taxId"></param>
 /// <returns></returns>
 public List <TaxModel> GetTax(int taxId)
 {
     try
     {
         using (SDNSettingEntities objEntities = new SDNSettingEntities())
         {
             var lstTax = (from tax in objEntities.TaxCodesAndRates
                           where tax.IsDeleted == false &&
                           tax.ID == taxId
                           select new TaxModel
             {
                 TaxID = tax.ID,
                 TaxName = tax.Tax_Name,
                 TaxDescription = tax.Tax_Description,
                 TaxCode = tax.Tax_Code,
                 TaxRate = tax.Tax_Rate,
                 IsDefault = tax.Tax_Default,
                 IsInActive = tax.Tax_Inactive,
                 Predefined = tax.Predefined
             }).ToList();
             return(lstTax);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// This method is used to update category contents with associated category
        /// </summary>
        /// <param name="content"></param>
        public void UpdateCategoryContent(ContentModel content)
        {
            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                try
                {
                    var obj = objCategoryEntities.CategoriesContents.Where(x => x.Cat_Id == content.CategoryID && x.IsDeleted != true && x.Set_Default == true && content.IsSelected == true).FirstOrDefault();
                    if (obj != null)
                    {
                        obj.Set_Default = false;
                        objCategoryEntities.SaveChanges();
                    }

                    CategoriesContent catContent = objCategoryEntities.CategoriesContents.SingleOrDefault(i => i.ID == content.ContentID);
                    if (catContent != null)
                    {
                        catContent.Cat_Contents  = content.ContentName;
                        catContent.Content_Limit = content.Limit;
                        catContent.Set_Default   = content.IsSelected;
                        catContent.ModifiedDate  = DateTime.Now;
                        objCategoryEntities.SaveChanges();
                    }

                    //var categoryContent = objCategoryEntities.CategoriesContents.Where(e => e.Cat_Id == content.CategoryID && e.ID!=content.ContentID).ToList();
                    //if (categoryContent != null)
                    //{
                    //    foreach (var c in categoryContent)
                    //    {
                    //        if (content.IsSelected == true)
                    //        {
                    //            if (c.Set_Default == true)
                    //            {
                    //                c.Set_Default = false;
                    //            }
                    //        }
                    //        else
                    //        {
                    //            if(c.Set_Default==true)
                    //            {
                    //                c.Set_Default = true;
                    //            }
                    //        }
                    //        objCategoryEntities.SaveChanges();
                    //    }
                    //}
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
 /// <summary>
 /// This is used to get all categories
 /// </summary>
 public List <UI.Entities.CategoryModel> GetCategoryList()
 {
     using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
     {
         var result = objCategoryEntities.Categories.ToList();
         List <UI.Entities.CategoryModel> catModel = (from r in result
                                                      select new UI.Entities.CategoryModel
         {
             ID = r.ID,
             CategoryName = r.Cat_Name
         }).ToList <UI.Entities.CategoryModel>();
         return(catModel);
     }
 }
 public List <CategoryModel> GetCategory(string CategoryCode)
 {
     using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
     {
         var result = objCategoryEntities.Categories.Where(e => e.Cat_Code == CategoryCode).ToList();
         List <UI.Entities.CategoryModel> catModel = (from r in result
                                                      select new UI.Entities.CategoryModel
         {
             ID = r.ID,
             CategoryName = r.Cat_Name,
             CategoryCode = r.Cat_Code
         }).ToList <UI.Entities.CategoryModel>();
         return(catModel);
     }
 }
 public List <ContentModel> GetPSCategoryList()
 {
     using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
     {
         var result = objCategoryEntities.TermsAndConditions.ToList();
         List <ContentModel> catModel = (from r in result
                                         select new ContentModel
         {
             CategoryID = r.ID,
             CategoryName = r.Cat_Name,
             CategoryCode = r.Cat_Code,
             ContentName = r.Cat_Content
         }).ToList <ContentModel>();
         return(catModel);
     }
 }
        public string GetPSCategoryContentList(string tcCode)
        {
            string content = string.Empty;

            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                var result = (from tandc in objCategoryEntities.TermsAndConditions
                              where tandc.Cat_Code == tcCode
                              select tandc.Cat_Content).SingleOrDefault();

                if (result != null)
                {
                    content = result;
                }
                return(content);
            }
        }
        /// <summary>
        /// This method is used to delete the tax
        /// </summary>
        /// <param name="id"></param>
        public void DeleteTax(int id)
        {
            try
            {
                using (SDNSettingEntities objEntities = new SDNSettingEntities())
                {
                    TaxCodesAndRate tax = objEntities.TaxCodesAndRates.SingleOrDefault(t => t.ID == id);

                    tax.IsDeleted    = true;
                    tax.ModifiedDate = DateTime.Now;
                    objEntities.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 /// <summary>
 /// This method is used to save Purchase and sales Category Content
 /// </summary>
 /// <param name="content"></param>
 public void SavePSCategoryContent(ContentModel content)
 {
     using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
     {
         try
         {
             var tandc = objCategoryEntities.TermsAndConditions.Where(e => e.Cat_Code == content.CategoryCode).SingleOrDefault();
             if (tandc != null)
             {
                 tandc.Cat_Content = content.ContentName;
                 objCategoryEntities.SaveChanges();
             }
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
 }
        /// <summary>
        /// This method is used to save new tax
        /// </summary>
        /// <param name="taxModel"></param>
        public void SaveTax(TaxModel taxModel)
        {
            try
            {
                using (SDNSettingEntities objEntities = new SDNSettingEntities())
                {
                    TaxCodesAndRate tax = new TaxCodesAndRate();

                    tax.Tax_Name        = taxModel.TaxName;
                    tax.Tax_Description = taxModel.TaxDescription.Trim();
                    tax.Tax_Code        = taxModel.TaxCode.Trim();
                    tax.Tax_Rate        = taxModel.TaxRate;
                    if (taxModel.IsInActive == null)
                    {
                        tax.Tax_Inactive = "N";
                    }
                    else
                    {
                        tax.Tax_Inactive = taxModel.IsInActive;
                    }
                    tax.Tax_Default = false;
                    tax.CreatedDate = DateTime.Now;
                    tax.IsDeleted   = false;

                    objEntities.TaxCodesAndRates.Add(tax);
                    objEntities.SaveChanges();

                    var taxes = objEntities.TaxCodesAndRates.ToList();
                    if (taxes != null)
                    {
                        foreach (var taxItem in taxes)
                        {
                            taxItem.Tax_Name = taxModel.TaxName;
                            objEntities.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// This method is used to delete Category Content
        /// </summary>
        /// <param name="catId"></param>
        public void DeleteCategoryContent(int contentID)
        {
            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                try
                {
                    CategoriesContent catContent = objCategoryEntities.CategoriesContents.SingleOrDefault(i => i.ID == contentID);
                    if (catContent != null)
                    {
                        catContent.IsDeleted = true;

                        objCategoryEntities.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
        /// <summary>
        /// This method is used to get all the taxes with codes and rates
        /// </summary>
        /// <returns></returns>
        public List <TaxModel> GetAllTaxes()
        {
            try
            {
                using (SDNSettingEntities objEntities = new SDNSettingEntities())
                {
                    var lstTax = (from tax in objEntities.TaxCodesAndRates
                                  where tax.IsDeleted == false
                                  select new
                    {
                        TaxID = tax.ID,
                        TaxName = tax.Tax_Name,
                        TaxDescription = tax.Tax_Description,
                        TaxCode = tax.Tax_Code,
                        TaxRate = tax.Tax_Rate,
                        IsDefault = tax.Tax_Default,
                        IsInActive = tax.Tax_Inactive,
                        Predefined = tax.Predefined
                    }).ToList();

                    return(lstTax.AsEnumerable() // Client-side from here on
                           .Select((tax, index) => new TaxModel()
                    {
                        TaxID = tax.TaxID,
                        TaxName = tax.TaxName,
                        TaxDescription = tax.TaxDescription,
                        TaxCode = tax.TaxCode,
                        TaxRate = tax.TaxRate,
                        IsDefault = tax.IsDefault,
                        IsInActive = tax.IsInActive,
                        Predefined = tax.Predefined,
                        StrTaxRate = tax.TaxRate.ToString() + "%",
                        Rank = tax.Predefined == true?"#": string.Empty
                    }).ToList());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 /// <summary>
 /// This method is used to save Tax Name
 /// </summary>
 /// <param name="taxName"></param>
 public void SaveTaxName(string taxName)
 {
     using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
     {
         try
         {
             var taxes = objCategoryEntities.TaxCodesAndRates.ToList();
             if (taxes.Count > 0)
             {
                 foreach (var tax in taxes)
                 {
                     tax.Tax_Name = taxName;
                     objCategoryEntities.SaveChanges();
                 }
             }
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
 }
        public string GetNumberFormat()
        {
            string numberFormat = string.Empty;

            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                var format = objCategoryEntities.Options.FirstOrDefault();
                if (format != null)
                {
                    numberFormat = format.Number_Format;
                }


                if (numberFormat != string.Empty)
                {
                    return(numberFormat);
                }
                else
                {
                    return(string.Empty);
                }
            }
        }
        /// <summary>
        /// This method is used to get category contents of selected category
        /// </summary>
        /// <param name="catID"></param>
        /// <returns></returns>
        public List <ContentModel> GetCategoryContentList(int catID)
        {
            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                var result = (from catContent in objCategoryEntities.CategoriesContents
                              join cat in objCategoryEntities.Categories
                              on catContent.Cat_Id equals cat.ID
                              where catContent.Cat_Id == catID && catContent.IsDeleted == false
                              select new ContentModel
                {
                    ContentID = catContent.ID,
                    ContentName = catContent.Cat_Contents,
                    CategoryID = cat.ID,
                    ContentType = cat.Content_Type,
                    CategoryName = cat.Cat_Name,
                    CategoryCode = cat.Cat_Code,
                    IsSelected = catContent.Set_Default,
                    Predefined = catContent.Predefined
                }).ToList();

                return(result);
            }
        }
        /// <summary>
        /// This method is used get category details from Category
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public List <ContentModel> GetCategoryDetails(int ID)
        {
            using (SDNSettingEntities objCategoryEntities = new SDNSettingEntities())
            {
                try
                {
                    var result = (from cat in objCategoryEntities.Categories

                                  where cat.ID == ID
                                  select new ContentModel
                    {
                        CategoryID = cat.ID,
                        CategoryCode = cat.Cat_Code,
                        CategoryName = cat.Cat_Name,
                        ContentType = cat.Content_Type,
                    }).ToList();
                    return(result);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
        /// <summary>
        /// This method is used to update the tax
        /// </summary>
        /// <param name="taxModel"></param>
        public void UpdateTax(TaxModel taxModel)
        {
            try
            {
                using (SDNSettingEntities objEntities = new SDNSettingEntities())
                {
                    TaxCodesAndRate tax = objEntities.TaxCodesAndRates.SingleOrDefault(t => t.ID == taxModel.TaxID);
                    tax.Tax_Name        = taxModel.TaxName;
                    tax.Tax_Description = taxModel.TaxDescription;
                    tax.Tax_Code        = taxModel.TaxCode;
                    tax.Tax_Rate        = Convert.ToDecimal(taxModel.TaxRate);
                    if (taxModel.IsInActive == null)
                    {
                        tax.Tax_Inactive = "N";
                    }
                    else
                    {
                        tax.Tax_Inactive = taxModel.IsInActive;
                    }
                    tax.Tax_Default  = taxModel.IsDefault;
                    tax.ModifiedDate = DateTime.Now;

                    objEntities.SaveChanges();


                    var lstTax = objEntities.TaxCodesAndRates.Where(e => e.ID != taxModel.TaxID).ToList();
                    if (tax != null)
                    {
                        foreach (var c in lstTax)
                        {
                            if (taxModel.IsDefault == true)
                            {
                                if (c.Tax_Default == true)
                                {
                                    c.Tax_Default = false;
                                }
                            }
                            else
                            {
                                if (c.Tax_Default == true)
                                {
                                    c.Tax_Default = true;
                                }
                            }
                            objEntities.SaveChanges();
                        }
                    }
                    var taxes = objEntities.TaxCodesAndRates.ToList();
                    if (taxes != null)
                    {
                        foreach (var taxItem in taxes)
                        {
                            taxItem.Tax_Name = taxModel.TaxName;
                            objEntities.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }