public PartialViewResult Collezioni()
        {
            ViewBag.sectionurl = LanguageSetting.GetLangNavigation() + "/" + (LanguageSetting.Lang == "it" ? "collezioni" : "collections") + "/";
            List <Collezioni> ne = db.Collezioni.Where(x => x.lang == LanguageSetting.Lang && x.visibile == true).OrderBy(x => x.ordinamento).ToList();

            return(PartialView("_Collezioni", ne));
        }
        public PartialViewResult TipologieMenu()
        {
            ViewBag.sectionurl = LanguageSetting.GetLangNavigation() + "/" + (LanguageSetting.Lang == "it" ? "tipologie" : "typologies") + "/";
            List <TipologieMenu> ne = db.TipologieMenu.Where(x => x.lang == LanguageSetting.Lang && x.visibile == true && x.ismenu == true).OrderBy(x => x.ordinamento).ToList();

            return(PartialView("_Tipologie", ne));
        }
        public ActionResult Index(string pname, string lang = "it")
        {
            // travaso
            //Pagine pa = db.Pagine.Where(x => x.pagina == "CERASLIDE").First();
            //string q = "";

            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('it',\"" + pa.pagina + "\",\"" + pa.testo.Replace("\"","\"\"") + "\",\"" + pa.metadescription?.Replace("\"", "\"\"") + "\");" +  System.Environment.NewLine;
            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('en',\"" + pa.pagina + "\",\"" + pa.testo_en.Replace("\"", "\"\"") + "\",\"" + pa.metadescription_en?.Replace("\"", "\"\"") + "\");" + System.Environment.NewLine;
            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('fr',\"" + pa.pagina + "\",\"" + pa.testo_fr.Replace("\"", "\"\"") + "\",\"" + pa.metadescription_fr?.Replace("\"", "\"\"") + "\");" + System.Environment.NewLine;
            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('es',\"" + pa.pagina + "\",\"" + pa.testo_es.Replace("\"", "\"\"") + "\",\"" + pa.metadescription_es?.Replace("\"", "\"\"") + "\");" + System.Environment.NewLine;
            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('de',\"" + pa.pagina + "\",\"" + pa.testo_de.Replace("\"", "\"\"") + "\",\"" + pa.metadescription_de?.Replace("\"", "\"\"") + "\");" + System.Environment.NewLine;
            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('ru',\"" + pa.pagina + "\",\"" + pa.testo_ru?.Replace("\"", "\"\"") + "\",\"" + pa.metadescription_ru?.Replace("\"", "\"\"") + "\");" + System.Environment.NewLine;
            // q += "insert into pageinfo(lang,titolo,content,metadescription) values('ru',\"" + pa.pagina + "\",\"" + pa.testo_ch?.Replace("\"", "\"\"") + "\",\"" + pa.metadescription_ch?.Replace("\"", "\"\"") + "\");" + System.Environment.NewLine;

            PageInfo p = db.PageInfo.Where(x => x.urlname == pname && x.lang == lang)?.FirstOrDefault();

            if (p == null)
            {
                return(Redirect(LanguageSetting.GetLangNavigation() + "/"));
            }
            string invariantPname = p.pname.Replace("-", "");

            // effettuo il rendering della view chiamata
            return(View(invariantPname, p));
        }
        public ActionResult ProdottoTest(string collezione = "", string categoria = "", string prodotto = "")
        {
            string lang = "it";

            if (!string.IsNullOrEmpty(prodotto))
            {
                //PAGINA PRODOTTO
                Collezioni coll = db.Collezioni.Where(x => x.lang == lang && x.urlname == collezione).FirstOrDefault();
                Categorie  cat  = db.Categorie.Where(x => x.lang == lang && x.urlname == categoria).FirstOrDefault();

                string listacollezioniurl  = (lang == "it" ? "/collezioni" : "/collections");
                string listacollezionitext = (lang == "it" ? "Collezioni" : "Collections");

                string collezioneig = coll.itemgroup.ToString();
                string categoriaig  = cat.itemgroup.ToString();

                Prodotti p = db.Prodotti.Where(x => x.collezione.StartsWith(collezioneig + "|") && x.categoria.StartsWith(categoriaig + "|") && x.lang == lang && x.visibile == true && x.codice == prodotto).FirstOrDefault();

                if (p == null)
                {
                    Response.Redirect((lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "collections" : "collezioni"));
                }

                string link = "<a href=\"" + LanguageSetting.GetLangNavigation() + "{0}\">{1}</a>";



                ProdottoPage pp = new ProdottoPage();
                pp.Prodotto = p;

                //TODO - RIMUOVERE modifica temporanea in attesa del listino it a marzo 2020
                if (lang == "it")
                {
                    pp.Finiture = p.ListaFiniture == null ? new List <Finiture>() : p.ListaFiniture;
                }
                else
                {
                    pp.Finiture = p.ListaFinitureEstero == null ? new List <Finiture>() : p.ListaFinitureEstero;
                }

                string[] igfiniture = pp.Finiture.Select(f => f.gruppoitemgroup).ToArray();
                pp.GruppiFiniture = db.FinitureGruppi.Where(x => x.lang == lang && igfiniture.Contains(x.itemgroup.ToString())).OrderBy(x => x.ordinamento).ToList();


                pp.Accessori = p.ListaAccessori;

                pp.breadcrumb = string.Format(link, "/", "Ceramica Globo") + " | " +
                                string.Format(link, listacollezioniurl, listacollezionitext) + " | " +
                                string.Format(link, listacollezioniurl + "/" + coll.urlname, coll.titolo) + " | " +
                                string.Format(link, listacollezioniurl + "/" + coll.urlname + "/" + cat.urlname, cat.titolo) + " | " +
                                "<span>" + p.titolo + " " + p.codice + "</span>";

                pp.backurl = listacollezioniurl + "/" + coll.urlname + "/" + cat.urlname + "?p=" + prodotto;

                pp.isLogged = HttpContext.User.Identity.IsAuthenticated;
                return(View("ProdottoTest", pp));
            }

            return(View("ProdottoTest", null));
        }
        public ActionResult Compara(string ig)
        {
            string[] igs = ig.Split('-');
            if (igs.Length == 0 || igs.Length > 5)
            {
                return(Redirect(LanguageSetting.GetLangNavigation() + "/"));
            }
            List <Prodotti> lp = db.Prodotti.Where(x => x.lang == LanguageSetting.Lang && igs.Contains(x.itemgroup.ToString())).ToList();

            return(View(lp));
        }
        public ActionResult Index(string pname, string lang = "it")
        {
            PageInfo p = db.PageInfo.Where(x => x.urlname == pname && x.lang == lang)?.FirstOrDefault();

            if (p == null)
            {
                return(Redirect(LanguageSetting.GetLangNavigation() + "/"));
            }
            string invariantPname = p.pname.Replace("-", "");

            // effettuo il rendering della view chiamata
            return(View(invariantPname, p));
        }
        public ActionResult RegistraNewsletter(UtentiNewsletter u)
        {
            u.lang = LanguageSetting.Lang;
            u.data = DateTime.Now;
            AjaxMessagge resultMessage = new AjaxMessagge();

            if (ModelState.IsValid)
            {
                // registro
                // devo vedere se l'indirizzo email è già presente
                if (db.UtentiNewsletter.Where(x => x.email == u.email).Count() > 0)
                {
                    UtentiNewsletter uvecchio = db.UtentiNewsletter.Where(x => x.email == u.email).FirstOrDefault();
                    uvecchio.ragionesociale = u.ragionesociale;
                    uvecchio.attivo         = true;
                    uvecchio.professione    = u.professione;
                    db.UtentiNewsletter.Attach(uvecchio);
                    db.Entry(uvecchio).State = EntityState.Modified;
                }
                else
                {
                    db.UtentiNewsletter.Add(u);
                }


                db.SaveChanges();

                resultMessage.Success     = true;
                resultMessage.Message     = "grazieregistratonewsletter".Translate();
                resultMessage.RedirectUrl = LanguageSetting.GetLangNavigation() + "/";
            }
            else
            {
                resultMessage.Success     = false;
                resultMessage.Message     = "err_controllacampi".Translate();
                resultMessage.RedirectUrl = LanguageSetting.GetLangNavigation() + "/";
            }

            return(Json(resultMessage));
        }
        public ActionResult Collezioni(string lang = "it", string collezione = "", string categoria = "", string prodotto = "")
        {
            if (!string.IsNullOrEmpty(prodotto))
            {
                //PAGINA PRODOTTO
                Collezioni coll = db.Collezioni.Where(x => x.lang == lang && x.urlname == collezione).FirstOrDefault();
                Categorie  cat  = db.Categorie.Where(x => x.lang == lang && x.urlname == categoria).FirstOrDefault();

                string listacollezioniurl  = (lang == "it" ? "/collezioni" : "/collections");
                string listacollezionitext = (lang == "it" ? "Collezioni" : "Collections");

                string collezioneig = coll.itemgroup.ToString();
                string categoriaig  = cat.itemgroup.ToString();

                Prodotti p = db.Prodotti.Where(x => x.collezione.StartsWith(collezioneig + "|") && x.categoria.StartsWith(categoriaig + "|") && x.lang == lang && x.visibile == true && x.codice == prodotto).FirstOrDefault();

                if (p == null)
                {
                    Response.Redirect((lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "collections" : "collezioni"));
                }

                string link = "<a href=\"" + LanguageSetting.GetLangNavigation() + "{0}\">{1}</a>";


                ProdottoPage pp = new ProdottoPage();
                pp.Prodotto = p;

                //TODO - RIMUOVERE modifica temporanea in attesa del listino it a marzo 2020
                //if (lang == "it" || lang=="de")
                //{
                //    pp.Finiture = p.ListaFiniture == null ? new List<Finiture>() : p.ListaFiniture;
                //}
                //else
                //{
                //    pp.Finiture = p.ListaFinitureEstero == null ? new List<Finiture>() : p.ListaFinitureEstero;
                //}

                pp.Finiture = p.ListaFiniture == null ? new List <Finiture>() : p.ListaFiniture;


                string[] igfiniture = pp.Finiture.Select(f => f.gruppoitemgroup).ToArray();
                pp.GruppiFiniture = db.FinitureGruppi.Where(x => x.lang == lang && igfiniture.Contains(x.itemgroup.ToString())).OrderBy(x => x.ordinamento).ToList();

                pp.Accessori = p.ListaAccessori;

                pp.breadcrumb = string.Format(link, "/", "Ceramica Globo") + " | " +
                                string.Format(link, listacollezioniurl, listacollezionitext) + " | " +
                                string.Format(link, listacollezioniurl + "/" + coll.urlname, coll.titolo) + " | " +
                                string.Format(link, listacollezioniurl + "/" + coll.urlname + "/" + cat.urlname, cat.titolo) + " | " +
                                "<span>" + p.titolo + " " + p.codice + "</span>";

                pp.backurl = listacollezioniurl + "/" + coll.urlname + "/" + cat.urlname + "?p=" + prodotto;

                pp.isLogged = HttpContext.User.Identity.IsAuthenticated;

                return(View("Prodotto", pp));
            }
            else if (!string.IsNullOrEmpty(categoria))
            {
                // COLLEZIONE CATEGORIA (INVIO I PRODOTTI DI UNA SPECIFICA CATEGORIA)

                Collezioni c = db.Collezioni.Where(x => x.urlname == collezione && x.lang == lang).DefaultIfEmpty(null).FirstOrDefault();
                if (c == null)
                {
                    Response.Redirect((lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "collections" : "collezioni"));
                }

                CollezioneProdotti cp = new CollezioneProdotti();
                cp.Collezione     = c;
                cp.Prodotti       = new List <Prodotti>();
                cp.Sottocategorie = new Dictionary <int, string>();

                string igcat = db.Categorie.Where(x => x.urlname == categoria && x.lang == lang).Select(x => x.itemgroup).FirstOrDefault().ToString();

                // ECCEZIONE VASI E BIDET 4ALL
                cp.Prodotti = db.Prodotti
                              .Where(x => x.collezione.StartsWith(c.itemgroup.ToString() + "|") && x.lang == lang && x.visibile == true && x.tipologiaprodotto == "prodotto" && x.categoria.StartsWith(igcat + "|"))
                              //.OrderBy(x => x.codice).ToList();
                              .OrderByDescending(x => x.basecm).ThenByDescending(x => x.altezzacm).ThenByDescending(x => x.profonditacm).ThenBy(x => x.codice)
                              .ToList();



                string[] igsubcat = cp.Prodotti.GroupBy(x => x.sottocategoria).Select(x => x.FirstOrDefault()).ToList().Select(x => x.sottocategoriaitemgroup).ToArray();

                List <Sottocategorie> sc = db.Sottocategorie.Where(x => x.lang == lang && igsubcat.Contains(x.itemgroup.ToString())).OrderBy(x => x.ordinamento).ToList();
                sc.ForEach(x =>
                {
                    cp.Sottocategorie.Add(x.itemgroup, x.titolo);
                });

                cp.CategoriaName    = db.Categorie.Where(x => x.itemgroup.ToString() == igcat && x.lang == lang).Select(x => x.titolo).FirstOrDefault();
                cp.CollezioneLink   = (lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "collections" : "collezioni") + "/" + c.urlname;
                cp.CategoriaUrlName = categoria;

                return(View("CollezioneCategoria", cp));
            }
            else if (!string.IsNullOrEmpty(collezione))
            {
                // COLLEZIONE SPECIFICA
                Collezioni c = db.Collezioni.Where(x => x.urlname == collezione && x.lang == lang).DefaultIfEmpty(null).FirstOrDefault();
                if (c == null)
                {
                    Response.Redirect((lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "collections" : "collezioni"));
                }

                CollezioneCategorie cat = new CollezioneCategorie();
                cat.Collezione = c;
                cat.Categorie  = new List <CategoriaLink>();

                // categorie
                List <Prodotti> prodotti             = db.Prodotti.Where(x => x.collezione.StartsWith(c.itemgroup.ToString() + "|") && x.lang == lang && x.visibile == true && x.tipologiaprodotto == "prodotto").GroupBy(x => x.categoria).Select(x => x.FirstOrDefault()).ToList();
                string          collezioneurlnameita = db.Collezioni.Where(x => x.lang == "it" && x.itemgroup == c.itemgroup).Select(x => x.urlname).FirstOrDefault();
                string[]        igcat;


                igcat = prodotti.Select(x => x.categoriaitemgroup).ToArray();

                List <Categorie> cc = db.Categorie.Where(x => igcat.Contains(x.itemgroup.ToString()) && x.lang == lang).OrderBy(x => x.ordinamento).ToList();
                cc.ForEach(x =>
                {
                    string urlinvariant = db.Categorie.Where(coll => coll.itemgroup == x.itemgroup && coll.lang == "it").Select(coll => coll.urlname).FirstOrDefault();

                    string imgcat = "/public/resource/prodotti/imgcategorie/" + urlinvariant + "/" + collezioneurlnameita + ".jpg";

                    if (!System.IO.File.Exists(Server.MapPath(imgcat)))
                    {
                        imgcat = prodotti.Where(p => p.categoria.StartsWith(x.itemgroup.ToString() + "|")).Select(p => p.imgmain).FirstOrDefault();
                    }
                    // se non ci sono prodotti non visualizzo la categoria|
                    if (db.Prodotti.Where(j => j.collezione.StartsWith(c.itemgroup + "|") && j.categoria.StartsWith(x.itemgroup + "|") && j.visibile == true && j.lang == lang && j.tipologiaprodotto != "accessorio").Count() > 0)
                    {
                        cat.Categorie.Add(new CategoriaLink
                        {
                            Categoria = x.titolo,
                            img       = imgcat,
                            link      = x.urlname
                        });
                    }
                });

                return(View("CollezioniDettaglio", cat));
            }
            else
            {
                // LISTA COLLEZIONI
                PageInfo p = db.PageInfo.Where(x => x.pname == "collezioni" && x.lang == lang)?.FirstOrDefault();
                return(View(p));
            }
        }
        public ActionResult Tipologie(string lang = "it", string tipologia = "", string prodotto = "", string collezione = "")
        {
            if (!string.IsNullOrEmpty(prodotto))
            {
                // PRODOTTO
                Collezioni    coll = db.Collezioni.Where(x => x.lang == lang && x.urlname == collezione).FirstOrDefault();
                TipologieMenu tip  = db.TipologieMenu.Where(x => x.lang == lang && x.urlname == tipologia).FirstOrDefault();

                string listatipologieurl  = (lang == "it" ? "/tipologie" : "/typologies");
                string listatipologietext = (lang == "it" ? "Tipologie" : "Typologies");
                string listacollezioniurl = (lang == "it" ? "/collezioni" : "/collections");

                string collezioneig = coll.itemgroup.ToString();
                string tipologiaig  = tip.itemgroup.ToString();

                Prodotti p = db.Prodotti.Where(x => x.collezione.StartsWith(collezioneig + "|") && x.tipologiamenu.StartsWith(tipologiaig + "|") && x.lang == lang && x.visibile == true && x.codice == prodotto).FirstOrDefault();

                if (p == null)
                {
                    Response.Redirect((lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "collections" : "collezioni"));
                }

                string link = "<a href=\"" + LanguageSetting.GetLangNavigation() + "{0}\">{1}</a>";


                ProdottoPage pp = new ProdottoPage();
                pp.Prodotto = p;
                pp.Finiture = p.ListaFiniture == null ? new List <Finiture>() : p.ListaFiniture;
                string[] igfiniture = pp.Finiture.Select(f => f.gruppoitemgroup).ToArray();
                pp.GruppiFiniture = db.FinitureGruppi.Where(x => x.lang == lang && igfiniture.Contains(x.itemgroup.ToString())).OrderBy(x => x.ordinamento).ToList();
                pp.Accessori      = p.ListaAccessori;

                pp.breadcrumb = string.Format(link, "/", "Ceramica Globo") + " | " +
                                string.Format(link, listatipologieurl, listatipologietext) + " | " +
                                string.Format(link, listatipologieurl + "/" + tip.urlname, tip.titolo) + " | " +
                                string.Format(link, listacollezioniurl + "/" + coll.urlname, coll.titolo) + " | " +
                                "<span>" + p.titolo + " " + p.codice + "</span>";

                // pp.backurl = listacollezioniurl + "/" + coll.urlname;
                pp.backurl = listatipologieurl + "/" + tip.urlname + "?p=" + prodotto;


                pp.isLogged = HttpContext.User.Identity.IsAuthenticated;

                return(View("Prodotto", pp));
            }
            else if (!string.IsNullOrEmpty(collezione))
            {
                // REDIRECT TO COLLEZIONE
                return(Redirect(lang == "it" ? "/collezioni/" + collezione : "/collections/" + collezione));
            }
            else if (!string.IsNullOrEmpty(tipologia))
            {
                // DETTAGLIO TIPOLOGIA
                // lista prodotti per tipologia
                TipologieProdotti tp = new TipologieProdotti();

                TipologieMenu c = db.TipologieMenu.Where(x => x.urlname == tipologia && x.lang == lang).DefaultIfEmpty(null).FirstOrDefault();
                if (c == null)
                {
                    Response.Redirect((lang != "it" ? "/" + lang : "") + "/" + (lang != "it" ? "typologies" : "tipologie"));
                }

                tp.Metatitle        = c.metatitle;
                tp.Metadescription  = c.metadescription;
                tp.TipologiaName    = c.titolo;
                tp.TipologieLink    = (lang == "it" ? "/tipologie" : ("/" + lang + "/typologies"));
                tp.TipologiaUrlname = tipologia;

                List <Prodotti> lp = db.Prodotti
                                     .Where(x => x.tipologiamenu.StartsWith(c.itemgroup + "|") && x.lang == lang && x.visibile == true)
                                     .OrderByDescending(x => x.basecm).ThenByDescending(x => x.altezzacm).ThenByDescending(x => x.profonditacm).ThenBy(x => x.codice)
                                     .ToList();

                tp.Prodotti = lp;

                return(View("TipologieDettaglio", tp));
            }
            else
            {
                // LISTA TIPOLOGIE
                PageInfo p = db.PageInfo.Where(x => x.pname == "tipologie" && x.lang == lang)?.FirstOrDefault();
                return(View(p));
            }
        }
        public ActionResult RegistraUtente(Utenti u)
        {
            u.lang = LanguageSetting.Lang;
            u.data = DateTime.Now;
            AjaxMessagge resultMessage = new AjaxMessagge();

            if (ModelState.IsValid)
            {
                // registro
                // controllo univocità email
                bool isduplicate = db.Utenti.Where(x => x.email == u.email).Count() > 0;
                if (isduplicate)
                {
                    resultMessage.Success     = false;
                    resultMessage.Message     = "registrazionedoppia".Translate();
                    resultMessage.RedirectUrl = "/"; // poi mettere dashboard
                }
                else
                {
                    db.Utenti.Add(u);
                    db.SaveChanges();
                    resultMessage.Success = true;
                    resultMessage.Message = "grazieregistrato".Translate();
                    //resultMessage.RedirectUrl = LanguageSetting.GetLangNavigation() + "/login" + (!string.IsNullOrEmpty(Request.QueryString["r"]) ? "?r=" + Request.QueryString["r"] : ""); // poi mettere dashboard
                    resultMessage.RedirectUrl = (!string.IsNullOrEmpty(Request.QueryString["r"]) ? Request.QueryString["r"] : LanguageSetting.GetLangNavigation() + "/"); // poi mettere dashboard
                }
            }
            else
            {
                resultMessage.Success     = false;
                resultMessage.Message     = "err_controllacampi".Translate();
                resultMessage.RedirectUrl = "/"; // poi mettere dashboard
            }

            return(Json(resultMessage));
        }
Beispiel #11
0
        public ActionResult Download(string lang, string igprodotto, string ftype)
        {
            // return Redirect(LanguageSetting.GetLangNavigation() + "/login");

            bool mustlogged = true;

            Prodotti p = db.Prodotti.Where(x => x.lang == lang && x.itemgroup.ToString() == igprodotto).FirstOrDefault();

            if (p == null)
            {
                return(Redirect(LanguageSetting.GetLangNavigation() + "/"));
            }
            string fname = "";

            switch (ftype)
            {
            case "scheda":
                mustlogged = false;
                fname      = p.scheda;
                break;

            case "istruzioni":
                mustlogged = false;
                fname      = p.istruzioni;
                break;

            case "scassi":
                mustlogged = false;
                fname      = p.scassi;
                break;

            case "capitolato":
                mustlogged = false;
                fname      = p.capitolato;
                break;

            case "dop":
                mustlogged = false;
                fname      = p.prestazione;
                break;

            case "cad":
                mustlogged = true;
                fname      = p.cad;
                break;

            case "3ds":
                mustlogged = true;
                fname      = p.f3ds;
                break;

            case "revit":
                mustlogged = true;
                fname      = p.revit;
                break;

            case "archicad":
                mustlogged = true;
                fname      = p.archicad;
                break;

            case "sketchup":
                mustlogged = true;
                fname      = p.sketchup;
                break;
            }

            if (string.IsNullOrEmpty(fname))
            {
                return(Redirect(LanguageSetting.GetLangNavigation() + "/"));
            }


            if (mustlogged == true && !HttpContext.User.Identity.IsAuthenticated)
            {
                return(Redirect(LanguageSetting.GetLangNavigation() + "/"));
            }

            byte[] fileBytes = System.IO.File.ReadAllBytes(Server.MapPath(fname));
            string fileName  = System.IO.Path.GetFileName(fname);

            return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName));
        }