// GET: Magazzino/Create /// <summary> /// Metodo invocato alla creazione di un magazzino /// Crea un nuovo oggetto Magazzino /// Assegna a UserId l' ID dell' utente loggato /// Ritorna la vista /// </summary> /// <returns></returns> public ActionResult Create() { var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino m = new Magazzino { UserId = me.Id }; return(View(m)); }
public ActionResult Edit([Bind(Include = "MagazzinoId,UserId")] Magazzino magazzino) { if (ModelState.IsValid) { _db.Entry(magazzino).State = EntityState.Modified; _db.SaveChanges(); return(RedirectToAction("Index")); } return(View(magazzino)); }
public ActionResult Create([Bind(Include = "MagazzinoId,UserId")] Magazzino magazzino) { if (ModelState.IsValid) { _db.Magazzinoes.Add(magazzino); _db.SaveChanges(); return(RedirectToAction("Index")); } return(View(magazzino)); }
// GET: Magazzino/Edit/5 /// Metodo invocato alla modifica di un magazzino /// Se l' ID è nullo ritorna uno StatusCode di BadRequest /// Se l' ID non è presente nel database ritorna HttpNotFound /// Se è presente ritorna la vista del Magazzino trovato /// <param name="id">Valore della chiave per il model Magazzino</param> /// <returns></returns> public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Magazzino magazzino = _db.Magazzinoes.Find(id); if (magazzino == null) { return(HttpNotFound()); } return(View(magazzino)); }
// GET: Magazzino/Details/5 /// <summary> /// Metodo invocato alla richiesta di dettagli sul magazzino /// Restituisce errore se id è nullo o non esiste /// Altrimenti restituisce l'elemento cercato alla pagina /// </summary> /// <param name="id">Valore della chiave per model Magazzino</param> /// <returns></returns> public ActionResult Details(int?id) { if (id == null) { PathConfig c = new PathConfig(); return(Redirect(c.error)); } Magazzino magazzino = _db.Magazzinoes.Find(id); if (magazzino == null) { return(HttpNotFound()); } return(View(magazzino)); }
public ActionResult AggiungiZucchero() { ZuccheriMagazzino am = new ZuccheriMagazzino(); var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); am.Magazzino = magazzino; am.MagazzinoId = magazzino.MagazzinoId; var listaZuccheri = _db.Zuccheri.Except(_db.ZuccheriMagazzinos .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Zucchero)); SelectList zuccheri = new SelectList(listaZuccheri, "ZuccheriId", "Nome"); ViewBag.Zuccheri = zuccheri; return(View(am)); }
public ActionResult AggiungiMalti() { MaltiMagazzino mm = new MaltiMagazzino(); var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); mm.Magazzino = magazzino; mm.MagazzinoId = magazzino.MagazzinoId; var listaMalti = _db.Malti.Except(_db.MaltiMagazzinos .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Malto)); SelectList malti = new SelectList(listaMalti, "MaltiId", "Nome"); ViewBag.Malti = malti; return(View(mm)); }
public ActionResult AggiungiLuppolo() { LuppoliMagazzino lum = new LuppoliMagazzino(); var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); lum.Magazzino = magazzino; lum.MagazzinoId = magazzino.MagazzinoId; var listaLuppolis = _db.Luppoli.Except(_db.LuppoliMagazzinos .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Luppolo)); SelectList luppoli = new SelectList(listaLuppolis, "LuppoliId", "Nome"); ViewBag.Luppoli = luppoli; return(View(lum)); }
public ActionResult AggiungiLievito() { LievitiMagazzino lm = new LievitiMagazzino(); var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); lm.Magazzino = magazzino; lm.MagazzinoId = magazzino.MagazzinoId; var listaLievitis = _db.Lieviti.Except(_db.LievitiMagazzinos .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Lievito)); SelectList lieviti = new SelectList(listaLievitis, "LievitiId", "Nome"); ViewBag.Lieviti = lieviti; return(View(lm)); }
/// <summary> /// Metodo invocato all' aggiunta di un nuovo additivo nel magazzino /// Crea un nuovo AdditiviMagazzino assegnandolo al magazzino collegato all' ID dell' utente /// Assegna la lista di additivi alla variabile speciale ViewBag /// Ritorna la vista di AdditiviMagazzino /// </summary> /// <returns></returns> public ActionResult AggiungiAdditivo() { AdditiviMagazzino am = new AdditiviMagazzino(); var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); am.Magazzino = magazzino; am.MagazzinoId = magazzino.MagazzinoId; var listaAdditivi = _db.Additivi.Except(_db.AdditiviMagazzinos .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Additivo)); SelectList additivi = new SelectList(listaAdditivi, "AdditiviId", "Nome"); ViewBag.Additivi = additivi; return(View(am)); }
public ActionResult AggiungiZucchero(ZuccheriMagazzino am) { if (ModelState.IsValid) { _db.ZuccheriMagazzinos.Add(am); _db.SaveChanges(); return(RedirectToAction("Index")); } var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); am.Magazzino = magazzino; am.MagazzinoId = magazzino.MagazzinoId; SelectList zuccheri = new SelectList(_db.Zuccheri, "ZuccheriId", "Nome"); ViewBag.Zuccheri = zuccheri; return(View(am)); }
public ActionResult AggiungiLievito(LievitiMagazzino lm) { if (ModelState.IsValid) { _db.LievitiMagazzinos.Add(lm); _db.SaveChanges(); return(RedirectToAction("Index")); } var me = _db.Users.First(x => x.UserName == User.Identity.Name); Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id); lm.Magazzino = magazzino; lm.MagazzinoId = magazzino.MagazzinoId; SelectList lieviti = new SelectList(_db.Lieviti, "LievitiId", "Nome"); ViewBag.Lieviti = lieviti; return(View(lm)); }
private void LeggiMagazzino(string nomeDeposito) { DataTable dt = ReadDatatable(nomeDeposito); if (dt.Rows.Count > 1) { if (dt.Rows[0][2].ToString() == "" && dt.Rows[0][3].ToString() == "" && dt.Rows[0][4].ToString() == "" ) { // remove header dt.Rows[0].Delete(); dt.Rows[1].Delete(); } } dt.AcceptChanges(); var list = dt.AsEnumerable().Select(a => new { // assuming column 0's type is Nullable<long> Categoria = a.Field <string>(1), Marca = a.Field <string>(2), Modello = a.Field <string>(3), Note = a.Field <string>(4), DescrBreve = a.Field <string>(5), Colore = a.Field <string>(6), Qta = (a.Field <string>(7)), PrezzoVendita = (a.Field <string>(8)), PrezzoAcq = (a.Field <string>(9)), Condizione = a.Field <string>(10), }).Where(a => a.Categoria != null && a.Categoria.Length > 0 && a.Marca != null && a.Marca.Length > 0).ToList(); ProgressManager.Instance().Value = 0; ProgressManager.Instance().Max = list.Count; ProgressManager.Instance().Messaggio = nomeDeposito; using (var uof = new UnitOfWork()) { var deposito = uof.DepositoRepository.Find(a => a.NomeDeposito == nomeDeposito).ToList().DefaultIfEmpty( new Deposito() { NomeDeposito = nomeDeposito }).FirstOrDefault(); var listCategorie = uof.CategorieRepository.Find(a => true).ToList(); foreach (var item in list.ToList()) { try { var magItem = new Magazzino(); var articolo = new Articolo(); articolo.Strumento.Marca = item.Marca; if (item.PrezzoVendita != null) { articolo.Prezzo = decimal.Parse(item.PrezzoVendita.Replace("€", "").Trim()); } else { articolo.Prezzo = 0; } articolo.Note1 = (item.Note); articolo.Strumento.Colore = (item.Colore); articolo.Titolo = item.Marca + " " + item.Modello + " " + item.DescrBreve + " " + item.Colore; articolo.Titolo = articolo.Titolo.Trim(); articolo.ArticoloWeb.Testo = articolo.Titolo; articolo.TagImport = "ExcelMagazzini " + nomeDeposito; try { articolo.Condizione = (enCondizioneArticolo)Enum.Parse(typeof(enCondizioneArticolo), item.Condizione, true); } catch { if (item.Condizione.ToUpper().Contains("USATO")) { articolo.Condizione = enCondizioneArticolo.UsatoGarantito; } else if (item.Condizione.ToUpper().Contains("DEMO")) { articolo.Condizione = enCondizioneArticolo.ExDemo; } else { throw new MessageException( string.Format(@"Non è specificata la condizione (Nuovo\usato\demo) per l'articolo {0}" , articolo.Titolo)); } } var categoriaName = item.Categoria; if (categoriaName.Equals("Panca", StringComparison.InvariantCultureIgnoreCase)) { categoriaName = "Sgabelli e Panche"; } if (categoriaName.StartsWith("sax", StringComparison.InvariantCultureIgnoreCase)) { categoriaName = "Sax"; } categoriaName = categoriaName.Replace(" ", "").ToUpper(); var categoriaSel = listCategorie.Where(a => a.Nome.ToUpper().Replace(" ", "") == categoriaName).FirstOrDefault(); if (categoriaSel == null) { categoriaName = categoriaName.Remove(categoriaName.Length - 1); categoriaSel = listCategorie.Where(a => a.Nome.ToUpper().Replace(" ", "").StartsWith(categoriaName)) .FirstOrDefault(); } if (categoriaSel == null) { articolo.Note2 = item.Categoria; categoriaSel = listCategorie.Where(a => a.Codice == -1000).First(); } articolo.CategoriaID = categoriaSel.ID; magItem.Qta = int.Parse(item.Qta); magItem.Articolo = articolo; magItem.Deposito = deposito; if (!string.IsNullOrEmpty(item.PrezzoAcq) && item.PrezzoAcq.Trim().Length > 0) { articolo.PrezzoAcquisto = decimal.Parse(item.PrezzoAcq); } else { articolo.PrezzoAcquisto = 0; } magItem.Articolo = articolo; //uof.ArticoliRepository.Find(a=>a.) uof.MagazzinoRepository.Add(magItem); } catch (Exception ex) { throw ex; } ProgressManager.Instance().Value++; } uof.Commit(); } }
private void ImportLibri(UnitOfWork uof, Deposito deposito, System.Collections.Generic.List <Categoria> listCategorie) { DataTable dt = ReadDatatable(enNomeTabellaExcel.LIBRI.ToString()); var list = dt.AsEnumerable().Select(a => new { // assuming column 0's type is Nullable<long> CodiceABarre = a.Field <string>(0), Titolo = a.Field <string>(1), Autore = a.Field <string>(2), Genere = a.Field <string>(3), Edizione = a.Field <string>(4), Quantita = int.Parse(a.Field <string>(5)), Edizione2 = a.Field <string>(6), Ordine = a.Field <string>(7), Varie1 = a.Field <string>(8), Settore = a.Field <string>(9), PrezzoVendita = decimal.Parse(a.Field <string>(10)), Categoria = "Libri - Altro", }).ToList(); ProgressManager.Instance().Messaggio = "Libri"; ProgressManager.Instance().Value = 0; ProgressManager.Instance().Max = list.Count(); foreach (var item in list.ToList()) { var magItem = new Magazzino(); var articolo = new Articolo(); articolo.Condizione = enCondizioneArticolo.Nuovo; articolo.Prezzo = (item.PrezzoVendita); articolo.CodiceABarre = item.CodiceABarre; var categoriaSel = listCategorie.Where(a => a.Nome.ToUpper() == item.Categoria.ToUpper()).FirstOrDefault(); if (categoriaSel == null) { throw new MessageException(string.Format("Negli strumenti non è specificata una categoria corretta per l'articolo {0}", item.CodiceABarre)); } articolo.CategoriaID = categoriaSel.ID; articolo.Titolo = (item.Autore + " " + item.Titolo + " " + item.Genere + " " + item.Edizione + " " + item.Edizione2).Trim().Replace(" ", " "); articolo.Libro = new Libro { Autore = item.Autore, Edizione = item.Edizione, Edizione2 = item.Edizione2, Genere = item.Genere, Ordine = item.Ordine, Settore = item.Settore }; articolo.Note1 = item.Varie1; articolo.TagImport = "MulinoLibri"; articolo.Condizione = enCondizioneArticolo.NonSpecificato; magItem.Qta = item.Quantita; magItem.Articolo = articolo; magItem.Deposito = deposito; uof.MagazzinoRepository.Add(magItem); ProgressManager.Instance().Value++; } }
private void ImportArticoli(UnitOfWork uof, Deposito deposito, System.Collections.Generic.List <Categoria> listCategorie) { DataTable dt = ReadDatatable(enNomeTabellaExcel.artic.ToString()); try { var list = dt.AsEnumerable().Select(a => new { // assuming column 0's type is Nullable<long> CodiceABarre = a.Field <string>(0), Marca = a.Field <string>(1), Articolo = a.Field <string>(2), Varie1 = a.Field <string>(3), Varie2 = a.Field <string>(4), Varie3 = a.Field <string>(5), PrezzoVendita = a.Field <string>(6), PrezzoAcq = a.Field <string>(7), Rivenditore = a.Field <string>(8), Quantita = a.Field <string>(9), Categoria = "<Non Specificato>", }).ToList(); ProgressManager.Instance().Messaggio = "Articoli"; ProgressManager.Instance().Value = 0; ProgressManager.Instance().Max = list.Count(); foreach (var item in list.ToList()) { var magItem = new Magazzino(); var articolo = new Articolo(); articolo.Condizione = enCondizioneArticolo.Nuovo; articolo.Strumento.Marca = item.Marca; articolo.Prezzo = decimal.Parse(item.PrezzoVendita); articolo.CodiceABarre = item.CodiceABarre; var categoriaSel = listCategorie.Where(a => a.Nome.ToUpper() == item.Categoria.ToUpper()).FirstOrDefault(); if (categoriaSel == null) { throw new MessageException(string.Format("Nei libri non è specificata una categoria corretta per l'articolo {0}", item.CodiceABarre)); } articolo.CategoriaID = categoriaSel.ID; articolo.Titolo = item.Marca + " " + item.Articolo; if (!string.IsNullOrEmpty(item.Varie1) && !item.Varie1.Contains("?")) { articolo.Titolo += " " + item.Varie1; } articolo.Strumento.Rivenditore = item.Rivenditore; articolo.Note1 = item.Varie1; articolo.Note2 = item.Varie2; articolo.Note3 = item.Varie3; articolo.Condizione = enCondizioneArticolo.NonSpecificato; articolo.PrezzoAcquisto = decimal.Parse(item.PrezzoAcq); articolo.TagImport = "MulinoArticoli"; magItem.Qta = int.Parse(item.Quantita); magItem.Articolo = articolo; magItem.Deposito = deposito; magItem.PrezzoAcquisto = decimal.Parse(item.PrezzoAcq); //uof.ArticoliRepository.Find(a=>a.) uof.MagazzinoRepository.Add(magItem); ProgressManager.Instance().Value++; } } catch (Exception ex) { throw ex; } }
//funzionalità what should I brew Today, suggerisce quale birra preparare in base a ciò che è presente in magazzino public ActionResult WhatShoudIBrewToday() { var me = User.Identity.GetUserId(); List <Ricette> additivi = new List <Ricette>(); List <Ricette> luppoli = new List <Ricette>(); List <Ricette> lieviti = new List <Ricette>(); List <Ricette> malti = new List <Ricette>(); List <Ricette> zuccheri = new List <Ricette>(); Magazzino m = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me); List <Additivi> a = new List <Additivi>(); if (m?.AdditiviUtente != null) { foreach (var additiviMagazzino in m.AdditiviUtente) { a.Add(_db.Additivi.FirstOrDefault(x => x.AdditiviId == additiviMagazzino.AdditiviId)); } } foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me)) { if (a.All(x => ricette.Additivis.Contains(x))) { additivi.Add(ricette); } } List <Luppoli> l = new List <Luppoli>(); if (m != null) { foreach (var additiviMagazzino in m.LuppoliUtente) { l.Add(_db.Luppoli.FirstOrDefault(x => x.LuppoliId == additiviMagazzino.LuppoliId)); } foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me)) { if (l.All(x => ricette.Luppolis.Contains(x))) { luppoli.Add(ricette); } } List <Lieviti> li = new List <Lieviti>(); foreach (var additiviMagazzino in m.LievitiUtente) { li.Add(_db.Lieviti.FirstOrDefault(x => x.LievitiId == additiviMagazzino.LievitiId)); } foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me)) { if (li.All(x => ricette.Lievitis.Contains(x))) { lieviti.Add(ricette); } } List <Malti> ma = new List <Malti>(); foreach (var additiviMagazzino in m.MaltiUtente) { ma.Add(_db.Malti.Where(x => x.MaltiId == additiviMagazzino.MaltiId).FirstOrDefault()); } foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me)) { if (ma.All(x => ricette.Maltis.Contains(x))) { malti.Add(ricette); } } List <Zuccheri> z = new List <Zuccheri>(); foreach (var additiviMagazzino in m.ZuccheriUtente) { z.Add(_db.Zuccheri.Where(x => x.ZuccheriId == additiviMagazzino.ZuccheriId).FirstOrDefault()); } foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me)) { if (z.All(x => ricette.Zuccheris.Contains(x))) { zuccheri.Add(ricette); } } } var valide = additivi.Intersect(malti).Intersect(luppoli).Intersect(lieviti).Intersect(zuccheri); Random r = new Random(); var mex = User.Identity.GetUserId(); if (valide.Count() > 0) { int quale = r.Next(0, valide.Count()); return(RedirectToAction("Details", new { ricetta = valide.ElementAt(quale).RicettaId })); } else if (_db.Ricette.Where(x => x.Privata == false || x.UserId == mex).Count() > 0) { int q = r.Next(0, _db.Ricette.Where(x => x.Privata == false || x.UserId == mex).Count()); var dove = _db.Ricette.Where(x => x.Privata == false || x.UserId == mex).ToList().ElementAt(q).RicettaId; return(RedirectToAction("Details", new { id = dove })); } else { return(Redirect("/Ricette/Nessuna")); } }