public bool SaveNewItem(string nome, string desc, string effetto, string urlImmagine, float costo, long disponibilita, DateTime?scadenza, int?numeroCariche, long tipoOggetto) { try { //creo l'oggetto NewOggetti newItem = new NewOggetti(); newItem.Costo = costo; newItem.DataScadenza = scadenza; newItem.Descrizione = desc; newItem.Disponibilita = disponibilita; newItem.Effetto = effetto; newItem.Immagine = urlImmagine; newItem.Nome = nome; newItem.NumeroCariche = numeroCariche; newItem.Tipo = tipoOggetto; //ora creo i dieci GUID che servono a fare i QR differenziati for (int i = 0; i < 10; i++) { CodiciQr codice = new CodiciQr(); codice.Codice = Guid.NewGuid(); newItem.CodiciQrs.Add(codice); } context.AddToNewElementis(newItem); return(true); } catch { return(false); } }
public bool AddComponentToItem(long progressivoOggetto, long progressivoComponente) { try { long?numeroMassimo = null; var ingredienti = (from componenti in context.NewFormules where componenti.Risultato == progressivoOggetto orderby componenti.NumeroIngrediente descending select componenti.NumeroIngrediente); if (ingredienti.Count() > 0) { numeroMassimo = ingredienti.Max(); } if (!numeroMassimo.HasValue) { numeroMassimo = -1; } NewOggetti item = (from oggetti in context.NewElementis where oggetti.Progressivo == progressivoOggetto select oggetti).OfType <NewOggetti>().FirstOrDefault(); NewFormule ingrediente = new NewFormule(); ingrediente.Ingrediente = progressivoComponente; ingrediente.NumeroIngrediente = numeroMassimo.Value + 1; item.Componenti.Add(ingrediente); return(true); } catch { return(false); } }
public bool SaveItem(long?progressivo, string nome, string desc, string effetto, string urlImmagine, float costo, long disponibilita, DateTime?scadenza, int?numeroCariche, long tipoOggetto) { try { if (!progressivo.HasValue) { return(SaveNewItem(nome, desc, effetto, urlImmagine, costo, disponibilita, scadenza, numeroCariche, tipoOggetto)); } NewOggetti itemToEdit = GetItemFromNumber(progressivo.Value); itemToEdit.Costo = costo; itemToEdit.DataScadenza = scadenza; itemToEdit.Descrizione = desc; itemToEdit.Disponibilita = disponibilita; itemToEdit.Effetto = effetto; itemToEdit.Immagine = urlImmagine; itemToEdit.Nome = nome; itemToEdit.NumeroCariche = numeroCariche; itemToEdit.Tipo = tipoOggetto; return(true); } catch { return(false); } }
private void qrReader_OnCodeDecoded(object sender, EventArgs e) { string myCode = qrReader.Code; if (!string.IsNullOrEmpty(myCode)) { Guid uniqueCode; try { lblDescrizione.Text = string.Empty; uniqueCode = new Guid(myCode); } catch { lblDescrizione.Text = "Cartellino non valido"; //Se il codice è un codice ad cazzum, non un GUID, è ovviamente un QR Code sbagliato return; } OggettiManager manager = new OggettiManager(DatabaseContext); NewOggetti sostanza = manager.GetItemFromQRCode(uniqueCode); if (sostanza == null) { lblDescrizione.Text = "Non è un cartellino oggetto"; } else { txtElencoIngredienti.Text += sostanza.Nome + "\r\n"; hidField.Value += sostanza.Progressivo + ";"; lblDescrizione.Text = "Componente inserito"; btnCrea.Enabled = true; } } }
private void qrReader_OnCodeDecoded(object sender, EventArgs e) { string myCode = qrReader.Code; svuotaControlli(); if (!string.IsNullOrEmpty(myCode)) { Guid uniqueCode; try { uniqueCode = new Guid(myCode); } catch { lblDescrizione.Text = "Cartellino non valido"; //Se il codice è un codice ad cazzum, non un GUID, è ovviamente un QR Code sbagliato return; } OggettiManager manager = new OggettiManager(DatabaseContext); NewOggetti myItem = manager.GetItemFromQRCode(uniqueCode); if (myItem == null) { lblDescrizione.Text = "Non è un cartellino oggetto"; } else { lblNome.Text = myItem.Nome; if (!string.IsNullOrWhiteSpace(myItem.Descrizione)) { lblDescrizione.Text = myItem.Descrizione.Replace("\r", "<br />"); } if (!string.IsNullOrWhiteSpace(myItem.Effetto)) { lblEffetto.Text = myItem.Effetto.Replace("\r", "<br />"); } if (myItem.Tipo.HasValue) { lblTipo.Text = myItem.TipoOggetti.Descrizione; } lblData.Text = myItem.DataScadenza.HasValue ? myItem.DataScadenza.Value.ToString("dd/MM/yyyy") : string.Empty; lblCosto.Text = myItem.Costo.ToString(); lblCariche.Text = myItem.NumeroCariche.ToString(); if (!string.IsNullOrWhiteSpace(myItem.Immagine)) { imgOggetto.Visible = true; imgOggetto.ImageUrl = myItem.Immagine; } } } }
private void Timer1_Tick(object sender, EventArgs e) { Timer1.Enabled = false; string[] ingredientiLetti = hidField.Value.Split(';'); List <long?> progressiviIngredienti = new List <long?>(); for (int i = 0; i < ingredientiLetti.Length; i++) { if (!string.IsNullOrWhiteSpace(ingredientiLetti[i])) { long progressivo = long.Parse(ingredientiLetti[i]); progressiviIngredienti.Add(progressivo); } } OggettiManager manager = new OggettiManager(DatabaseContext); NewOggetti oggetto = manager.GetItemFromListOfComponents(progressiviIngredienti); ElaborazioneViews.SetActiveView(viewRisultato); if (oggetto != null) { lblNome.Text = oggetto.Nome; if (!string.IsNullOrWhiteSpace(oggetto.Descrizione)) { lblDescrizione.Text = oggetto.Descrizione.Replace("\r", "<br />"); } if (!string.IsNullOrWhiteSpace(oggetto.Effetto)) { lblEffetto.Text = oggetto.Effetto.Replace("\r", "<br />"); } lblCosto.Text = oggetto.Costo.ToString(); lblCariche.Text = oggetto.NumeroCariche.HasValue ? oggetto.NumeroCariche.ToString() : string.Empty; lblDescrizione.Text = string.IsNullOrWhiteSpace(oggetto.Descrizione) ? string.Empty : oggetto.Descrizione.Replace("\r", "<br />"); lblTipo.Text = oggetto.TipoOggetti.Descrizione; if (!string.IsNullOrWhiteSpace(oggetto.Immagine)) { imgOggetto.Visible = true; imgOggetto.ImageUrl = oggetto.Immagine; } btnCrea.Enabled = false; } else { resetResults(); ElaborazioneViews.SetActiveView(viewAttesa); lblDescrizione.Text = "I componenti inseriti non possono essere assemblati tra loro"; } }
public bool CloneItem(long progressivo, string nome, string desc, string effetto, string urlImmagine, float costo, long disponibilita, DateTime?scadenza, int?numeroCariche, long tipoOggetto) { try { //Creo l'oggetto nuovo (la clonatura in realtà è avvenuta in Form, qui "clono" solo i Componenti NewOggetti newItem = new NewOggetti(); newItem.Costo = costo; newItem.DataScadenza = scadenza; newItem.Descrizione = desc; newItem.Disponibilita = disponibilita; newItem.Effetto = effetto; newItem.Immagine = urlImmagine; newItem.Nome = nome; newItem.NumeroCariche = numeroCariche; newItem.Tipo = tipoOggetto; context.AddToNewElementis(newItem); //Ora "clono" i componenti dall'oggetto originale IEnumerable <NewFormule> components = from componenti in context.NewFormules where componenti.Risultato == progressivo orderby componenti.NumeroIngrediente ascending select componenti; foreach (NewFormule singleComponent in components) { NewFormule newComponent = new NewFormule(); newComponent.Ingrediente = singleComponent.Ingrediente; newComponent.NumeroIngrediente = singleComponent.NumeroIngrediente; newItem.Componenti.Add(newComponent); } //ora creo i dieci GUID che servono a fare i QR differenziati for (int i = 0; i < 10; i++) { CodiciQr codice = new CodiciQr(); codice.Codice = Guid.NewGuid(); newItem.CodiciQrs.Add(codice); } context.AddToNewElementis(newItem); return(true); } catch { return(false); } }
public InsertOggetto(long itemToEdit) : this() { originalItem = itemToEdit; using (databaseContext = CreateDatabaseContext()) { OggettiManager manager = new OggettiManager(databaseContext); NewOggetti original = manager.GetItemFromNumber(itemToEdit); txtNome.Text = original.Nome; txtDescrizione.Text = original.Descrizione; txtEffetto.Text = original.Effetto; mstxCosto.Text = original.Costo.ToString(); if (original.NumeroCariche.HasValue) { mstxCariche.Text = original.NumeroCariche.ToString(); } cmbDisponibilita.SelectedValue = original.Disponibilita; cmbTipo.SelectedValue = original.Tipo; calScadenza.SelectionStart = calScadenza.SelectionEnd = original.DataScadenza.HasValue ? original.DataScadenza.Value : DateTime.Today; } }
public NewOggetti GetItemFromListOfComponents(List <long?> ingredienti) { var query = from formule in context.NewFormules where ingredienti.Contains(formule.Ingrediente) group formule by formule.Risultato into selezione select new { numero = selezione.Key, elementi = selezione }; NewOggetti oggetto = null; foreach (var element in query) { var query2 = (from oggetti in context.NewElementis where oggetti.Progressivo == element.numero && oggetti.Componenti.Count == ingredienti.Count select oggetti).OfType <NewOggetti>().FirstOrDefault(); //sostanza = GetSubstanceFromNumber(element.numero); if (query2 != null && query2 is NewOggetti) { //controlliamo l'ORDINE degli ingredienti var componenti = (from components in query2.Componenti orderby components.NumeroIngrediente select components).ToList(); bool found = true; for (int i = 0; i < ingredienti.Count; i++) { if (ingredienti[i] != componenti[i].Ingrediente) { found = false; break; } } if (found) { return((NewOggetti)query2); } } } return(oggetto); }
public bool RemoveComponentFromItem(long progressivoOggetto, long numeroIngrediente) { try { var ingrediente = (from componenti in context.NewFormules where componenti.Risultato == progressivoOggetto && componenti.NumeroIngrediente == numeroIngrediente select componenti).FirstOrDefault(); if (ingrediente != null) { NewOggetti item = (from oggetti in context.NewElementis where oggetti.Progressivo == progressivoOggetto select oggetti).OfType <NewOggetti>().FirstOrDefault(); item.Componenti.Remove(ingrediente); } return(true); } catch { return(false); } }