public void Save(funcao entity)
 {
     DataModel.Entry(entity).State = entity.id_funcao == 0 ?
        EntityState.Added :
        EntityState.Modified;
     DataModel.SaveChanges();
 }
 // Função/List
 public ActionResult List(funcao entity, String message)
 {
     ViewData["message"] = message;
     if (string.IsNullOrEmpty(entity.nome_funcao))
     {
         return View(FuncaoRepository.GetAll());
     }
     else
     {
         return View(FuncaoRepository.GetAllByCriteria(entity.nome_funcao));
     }
 }
        public ActionResult Create(funcao funcao)
        {
            try
            {

                if (validate(funcao))
                    return View(funcao);
                FuncaoRepository.Create(funcao);

                return RedirectToAction("List", new { message = "Dados criados com sucesso!" });
            }
            catch
            {
                return View(funcao);
            }
        }
 public void Delete(funcao entity)
 {
     DataModel.funcao.Remove(entity);
     DataModel.SaveChanges();
 }
 public void Edit(funcao entity)
 {
     Save(entity);
 }
 public void Create(funcao entity)
 {
     Save(entity);
 }
        public bool validate(funcao entity)
        {
            bool retorno = false;

            if (string.IsNullOrEmpty(entity.nome_funcao))
            {
                ModelState.AddModelError("nome_funcao", "Campo obrigatório");
                retorno = true;
            }
            if (string.IsNullOrEmpty(entity.descricao_funcao))
            {
                ModelState.AddModelError("descricao_funcao", "Campo obrigatório");
                retorno = true;
            }

            return retorno;
        }
        public ActionResult Delete(int id, funcao funcao)
        {
            try
            {
                funcao = FuncaoRepository.GetOne(id);
                FuncaoRepository.Delete(funcao);

                return RedirectToAction("List", new { message = "Dados apagados com sucesso!" });
            }
            catch
            {
                return View();
            }
        }
        public void LoadFormFuncao()
        {
            IEnumerable<funcao> lst = FuncaoRepository.GetAll();
            int c = lst.Count();

            funcao temp = new funcao();
            temp.id_funcao = 0;
            temp.nome_funcao = "";

            List<funcao> lstTemp = new List<funcao>();
            lstTemp.Add(temp);

            foreach (var item in lst)
            {
                lstTemp.Add(item);
            }

            ViewData["lstFuncao"] = lstTemp.AsEnumerable<funcao>();
        }