public bool Update(Spesa item)
 {
     //approvare una spesa
     using (var context = new GestioneSpeseContext())
     {
         bool saved = false;
         //Gestisco la concorrenza
         do
         {
             try
             {
                 //Modifico lo stato
                 context.Entry <Spesa>(item).State = EntityState.Modified;
                 //Riporto le modifiche sul db
                 context.SaveChanges();
                 saved = true;
             }
             catch (DbUpdateConcurrencyException e)
             {
                 //Rollback: riporto tutti i valori modificati al valore originale
                 foreach (var entity in e.Entries)
                 {
                     var value = entity.GetDatabaseValues();
                     entity.OriginalValues.SetValues(value);
                 }
             }
         } while (saved == false);
         return(true);
     }
 }
        public bool Create(Spesa item)
        {
            using (var ctx = new GestioneSpeseContext())
            {
                if (item == null)
                {
                    return(false);
                }

                //Recupero la categoria
                var categoria = ctx.Categorie.Include(c => c.Spese)
                                .Where(x => x.Id == item.CategoriaId)
                                .SingleOrDefault();

                // Aggiungo la nuova spesa alla lista spese in categorie
                if (categoria != null)
                {
                    categoria.Spese.Add(item);
                }

                ctx.Add(item);
                ctx.SaveChanges();

                return(true);
            }
        }
 public bool Delete(int id)
 {
     //Cancellare le spese esistenti
     using (var context = new GestioneSpeseContext())
     {
         //Recupero la spesa dall'id
         var spesa = context.Spese.Find(id);
         if (spesa == null)
         {
             return(false);
         }
         //Se esiste la cancello
         context.Spese.Remove(spesa);
         context.SaveChanges();
         return(true);
     }
 }
        public bool ApprovazioneSpese(Spesa spesa)
        {
            using (var ctx = new GestioneSpeseContext())
            {
                if (spesa == null)
                {
                    return(false);
                }

                spesa.Approvato = true;

                ctx.Update(spesa);
                ctx.SaveChanges();

                return(true);
            }
        }
        public bool Delete(int id)
        {
            using (var ctx = new GestioneSpeseContext())
            {
                //Controllo sull'ID
                if (id < 0)
                {
                    return(false);
                }
                var spesa = ctx.Spese.Find(id);

                if (spesa != null)
                {
                    ctx.Spese.Remove(spesa);
                    ctx.SaveChanges();
                }

                return(true);
            }
        }
 public bool Create(Categorie item)
 {
     using (var context = new GestioneSpeseContext())
     {
         //Se non sono presenti categorie allora ne inserisco 3
         var categorie = context.Categorie;
         var count     = context.Categorie.Count(x => x.ID > 0);
         if (count == 0)
         {
             context.Categorie.Add(item);
             context.Categorie.Add(new Categorie {
                 Categoria = "Cibo"
             });
             context.Categorie.Add(new Categorie {
                 Categoria = "Varie"
             });
         }
         context.SaveChanges();
         return(true);
     }
 }
 public bool Create(Spesa item)
 {
     //Inserire nuove spese
     using (var context = new GestioneSpeseContext())
     {
         if (item == null)
         {
             return(false);
         }
         //Una spesa è collegata a una categoria
         //Recupero la categoria
         var categoria = context.Categorie
                         .Where(s => s.ID == item.CategoriaID) //Prendo la categoria con ID alla FK
                         .SingleOrDefault();                   //è unica
         if (categoria == null)
         {
             return(false);         //Se non esiste la categoria non lo inserisco
         }
         categoria.Spese.Add(item); //Aggiungo la spesa nella lista di spese della categoria
         context.Spese.Add(item);   //Aggiungo la spesa alle spese
         context.SaveChanges();     //Aggiungo la modifica al database
         return(true);
     }
 }