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 void TestArray2() { int[] a = { 1, 2, 3, 4 }; int[] asp = { 11, 12, 13, 14 }; int[] incremento = Collezioni.Incremento(a); CollectionAssert.AreEqual(asp, incremento); }
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)); } }