Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
        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;
                }
            }
        }
Esempio n. 5
0
        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;
                    }
                }
            }
        }
Esempio n. 6
0
        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";
            }
        }
Esempio n. 7
0
 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);
     }
 }
Esempio n. 8
0
 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;
     }
 }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
            }
        }