public InfographicViewModel GetInfographicViewModel(string id, string language)
        {
            Infographic infographic;
            int info_id;
            bool parse_result = Int32.TryParse(id, out info_id);
            bool isArabic = false;

            if (parse_result) //id provided
            {
                infographic = DbContext.Infographics.Where(i => i.ID == info_id).Include(i => i.InfographicCategory).FirstOrDefault();
                if (language == "ar")
                    isArabic = true;
            }else //friendly url
            {
                infographic = DbContext.Infographics.Where(i => i.FriendlyURL == id).Include(i => i.InfographicCategory).FirstOrDefault();

                if(infographic == null)
                {
                    isArabic = true;
                    infographic = DbContext.Infographics.Where(i => i.FriendlyURLAr == id).Include(i => i.InfographicCategory).FirstOrDefault();
                }
            }

            if (infographic == null)
                return null;

            InfographicViewModel result = new InfographicViewModel();
            result.CategoryOrder = infographic.InfographicCategory.Order;
            if(isArabic)
            {
                result.FriendlyURL = infographic.FriendlyURLAr;
                result.ID = infographic.ID;
                result.ImageURL = infographic.ImageURLAr;
                result.ThumbURL = infographic.ThumbURLAr;
                result.Order = infographic.Order;
                result.Name = infographic.NameAr;
                result.MetaDescription = infographic.MetaDescriptionAr;

                if( result.FriendlyURL == null ||  result.FriendlyURL == "")
                    result.FriendlyURL = infographic.FriendlyURL;

                if (result.ImageURL == null || result.ImageURL == "")
                    result.ImageURL = infographic.ImageURL;

                if (result.ThumbURL == null || result.ThumbURL == "")
                    result.ThumbURL = infographic.ThumbURL;

                if (result.Name == null || result.Name == "")
                    result.Name = infographic.Name;

                if (result.MetaDescription == null || result.MetaDescription == "")
                    result.MetaDescription = infographic.MetaDescription;
            }
            else
            {
                result.FriendlyURL = infographic.FriendlyURL;
                result.ID = infographic.ID;
                result.ImageURL = infographic.ImageURL;
                result.ThumbURL = infographic.ThumbURL;
                result.Order = infographic.Order;
                result.Name = infographic.Name;
                result.MetaDescription = infographic.MetaDescription;
            }

            return result;
        }
        public InfographicSetViewModel GetInfographicsViewModel(string language, int order)
        {
            InfographicSetViewModel result = new InfographicSetViewModel();
            result.Categories = new List<InfographicCategoryViewModel>();

            //get all categories included
            List<InfographicCategory> categories = DbContext.InfographicCategories.Where(c => c.Order == order || order == 0).Include(c => c.Infographics).ToList();

            foreach(InfographicCategory cat in categories)
            {
                InfographicCategoryViewModel cat_viewmodel = new InfographicCategoryViewModel();
                if (language.Contains("ar"))
                {
                    cat_viewmodel.Description = cat.DescriptionAr;
                    cat_viewmodel.Name = cat.NameAr;
                }
                else
                {
                    cat_viewmodel.Description = cat.Description;
                    cat_viewmodel.Name = cat.Name;
                }
                cat_viewmodel.Order = cat.Order;
                cat_viewmodel.Infographics = new List<InfographicViewModel>();

                foreach(Infographic info in cat.Infographics)
                {
                    InfographicViewModel info_viewmodel = new InfographicViewModel();
                    if (language.Contains("ar"))
                    {
                        info_viewmodel.FriendlyURL = info.FriendlyURLAr;
                        info_viewmodel.ID = info.ID;
                        info_viewmodel.ImageURL = info.ImageURLAr;
                        info_viewmodel.Name = info.NameAr;
                        info_viewmodel.Order = info.Order;
                        info_viewmodel.ThumbURL = info.ThumbURLAr;
                        if (info_viewmodel.FriendlyURL == null || info_viewmodel.FriendlyURL == "")
                            info_viewmodel.FriendlyURL = info.FriendlyURL;
                        if (info_viewmodel.ImageURL == null || info_viewmodel.ImageURL == "")
                            info_viewmodel.ImageURL = info.ImageURL;
                        if (info_viewmodel.Name == null || info_viewmodel.Name == "")
                            info_viewmodel.Name = info.Name;
                        if (info_viewmodel.ThumbURL == null || info_viewmodel.ThumbURL == "")
                            info_viewmodel.ThumbURL = info.ThumbURL;
                    }
                    else
                    {
                        info_viewmodel.FriendlyURL = info.FriendlyURL;
                        info_viewmodel.ID = info.ID;
                        info_viewmodel.ImageURL = info.ImageURL;
                        info_viewmodel.Name = info.Name;
                        info_viewmodel.Order = info.Order;
                        info_viewmodel.ThumbURL = info.ThumbURL;
                    }

                    cat_viewmodel.Infographics.Add(info_viewmodel);
                }

                result.Categories.Add(cat_viewmodel);
            }

            return result;
        }