/// <summary> /// Restituisce l'url della categoria /// </summary> public static string GetUrlCategorie(Categorie categorie, Regioni regioni = null, Province province = null) { string link = string.Empty; while (categorie != null) { link = categorie.Url + "/" + link; categorie = categorie.Prec; } if (province != null) { //Se finisce con lo slash / if (link.EndsWith("/")) link = link.Remove(link.Length - 1); if (!string.IsNullOrEmpty(link)) link += "."; return "/annunci/" + link.ToLower() + province.Regioni.Url.ToLower() + "." + province.Url.ToLower(); } if (regioni != null) { //Se finisce con lo slash / if (link.EndsWith("/")) link = link.Remove(link.Length - 1); if (!string.IsNullOrEmpty(link)) link += "."; return "/annunci/" + link.ToLower() + regioni.Url.ToLower(); } return "/annunci/" + link.ToLower(); }
/// <summary> /// Prende i paramentri dall'url /// </summary> private static void GetVarsFromUrl(out Categorie categorie, out Regioni regioni, out Province province) { regioni = null; categorie = null; province = null; string[] urlToken = new string[] { }; if (HttpContext.Current.Request.RequestContext.RouteData.Values["url"] != null) urlToken = HttpContext.Current.Request.Url.Segments; for (int i = 0; i < urlToken.Length; i++) { if (urlToken[i].LastIndexOf('/') != -1) urlToken[i] = urlToken[i].Remove(urlToken[i].LastIndexOf('/')); } string lastToken; if (urlToken.Length > 0) lastToken = urlToken[urlToken.Length - 1]; else return; //Controllo che non sia un annuncio if (Annunci.GetItem(Annunci.KeyColumnsEnum.Url, lastToken) != null) return; //L'url è composto da categoria, regione e provincia string[] compositeUrl = lastToken.Split('.'); //Provo a vedere se è nel formato regione.provincia regioni = Regioni.GetItem(Regioni.KeyColumnsEnum.Url, compositeUrl[0]); if (regioni != null && compositeUrl.Length == 2) { province = Province.GetItem(Province.KeyColumnsEnum.Url, compositeUrl[1]); if (province == null) { HttpContext.Current.Response.RedirectPermanent("/"); return; } } if (regioni != null) return; categorie = Categorie.GetItem(Categorie.KeyColumnsEnum.Url, compositeUrl[0]); //Provo a vedere se è nel formato categoria.regione.provincia if (categorie != null) { if (compositeUrl.Length > 1) { regioni = Regioni.GetItem(Regioni.KeyColumnsEnum.Url, compositeUrl[1]); if (regioni == null) { HttpContext.Current.Response.RedirectPermanent("/"); return; } } if (compositeUrl.Length > 2) { province = Province.GetItem(Province.KeyColumnsEnum.Url, compositeUrl[2]); if (province == null) { HttpContext.Current.Response.RedirectPermanent("/"); return; } } return; } var pagineSito = PagineSito.GetItem(compositeUrl[0]); if (pagineSito != null) return; var pagineSistema = PagineSistema.GetItem(compositeUrl[0]); if (pagineSistema != null) return; HttpContext.Current.Response.RedirectPermanent("/"); return; }
/// <summary> /// Replace per le regioni /// </summary> public static StringBuilder Replace(this StringBuilder sb, Regioni regioni) { if (regioni == null) return sb; sb = sb.Replace("[RID]", regioni.Id.ToString()) .Replace("[RREGIONE]", regioni.Regione) .Replace("[RURL]", regioni.Url); return sb; }
/// <summary> /// Replace per le regioni /// </summary> public static string Replace(this string text, Regioni regioni) { if (regioni == null) return text; if (string.IsNullOrEmpty(text)) return string.Empty; var sb = new StringBuilder(text); return sb.Replace(regioni).ToString(); }