public void  ApprovingSpesa(int id)
        {
            using (var ctx = new GestioneSpeseContex())
            {
                bool saved = false;
                do
                {
                    try
                    {
                        var spesa = ctx.Spese.Include(c => c.Categoria)
                                    .FirstOrDefault(x => x.Id == id);
                        spesa.Approvato = true;
                        ctx.Entry <Spesa>(spesa).State = EntityState.Modified;
                        ctx.SaveChanges();

                        saved = true;
                    }
                    catch (DbUpdateConcurrencyException ex)
                    {
                        foreach (var entity in ex.Entries)
                        {
                            var dbValue = entity.GetDatabaseValues();
                            entity.OriginalValues.SetValues(dbValue);
                        }
                    }
                } while (!saved);
            }
        }
        public bool Delete(int id)
        {
            using (var ctx = new GestioneSpeseContex())
            {
                if (id < 0)
                {
                    return(false); // l'id non può essere negativo
                }

                var spesa = ctx.Spese.Find(id);

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

                return(true);
            }
        }
        public bool Create(Spesa item)
        {
            using (var ctx = new GestioneSpeseContex())
            {
                if (item == null)
                {
                    return(false);
                }

                var categoria = ctx.Categorie.Include(c => c.Spese)
                                .Where(c => c.Id == item.CategoriaId)
                                .SingleOrDefault();
                if (categoria != null)
                {
                    categoria.Spese.Add(item); //Aggiungo alle spese della relativa categoria
                }

                ctx.Spese.Add(item);
                ctx.SaveChanges();
                return(true);
            }
        }