Esempio n. 1
0
        public static bool Edit(Categoria Categoria)
        {
            ArrecebaDLLDb db = new ArrecebaDLLDb();

            HashSet<Categoria> Subcategorias = Categoria.SubCategorias;
            Categoria.SubCategorias = null;
            db.Entry(Categoria).State = EntityState.Modified;

            if (Subcategorias != null)
            {
                foreach (Categoria Subcategoria in Subcategorias)
                {
                    if (Subcategoria.CategoriaId > 0)
                    {
                        if (!String.IsNullOrWhiteSpace(Subcategoria.Nome))
                            db.Entry(Subcategoria).State = EntityState.Modified;
                        else
                        {
                            db.Categorias.Attach(Subcategoria);
                            db.Categorias.Remove(Subcategoria);
                        }
                    }
                    else
                    {
                        if (!String.IsNullOrWhiteSpace(Subcategoria.Nome))
                            db.Categorias.Add(Subcategoria);
                    }
                }
            }

            return db.SaveChanges() > 0;
        }