/// <summary> /// Generate from DB /// </summary> /// <param name="Id"></param> /// <returns></returns> public string GenerateListDetailsUrl(int Id) { var key = string.Format("ld-{0}", Id); var urlCache = CacheHelper.GetFromCache <string>(key); if (urlCache != null) { return(urlCache); } var format = "/cld-{0}/{1}/{2}/{3}"; string returnUrl; var ad = SearchEngineManager.GetClassifiedAdWithDetailsFromDb(Id); if (ad == null) { return(null); } returnUrl = string.Format(format, CategorySlug(ad.Category.Id, ad.SubCategory.Id, ad.Category.Name, ad.SubCategory.Name), LocationSlug(ad.Country.Id, ad.Region.Id), ad.Id, TitleSlug(ad.Title)); CacheHelper.SaveTocache(key, returnUrl, DateTime.Now.AddHours(1)); return(returnUrl); }