Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
 /// <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;
 }
Ejemplo n.º 4
0
 /// <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();
 }