public ActionResult Delete([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<CadastroPerfilModel> ListaPerfil)
        {
            try
            {
                // TODO: Add update logic here
                if (ListaPerfil != null && ModelState.IsValid)
                {

                    using (var cadastroPerfil = new CadastroPerfil())
                    {

                        foreach (var p in ListaPerfil)
                            cadastroPerfil.ExcluirPerfil(p.IdPerfil);

                    }

                }

                return Json(ListaPerfil.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }
            catch
            {
                return View();
            }
        }
        public ActionResult Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<CadastroPerfilModel> ListaPerfil)
        {
            try
            {
                if (ListaPerfil != null && ModelState.IsValid)
                {

                    using (var cadastroPerfil = new CadastroPerfil())
                    {

                        foreach (var p in ListaPerfil)
                        {

                            var perfil = new Perfil()
                            {
                                Ativo = p.Ativo,
                                Atribuicao = (Rule)p.Atribuicao.IdAtribuicaoPerfil,
                                Nome = p.Nome
                            };

                            cadastroPerfil.InserirPerfil(perfil);
                            p.IdPerfil = perfil.IdPerfil;

                        }

                    };

                }

                return Json(ListaPerfil.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }
            catch
            {
                return View();
            }
        }
        public ActionResult Edit([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<CadastroPerfilModel> ListaPerfil)
        {
            try
            {
                // TODO: Add update logic here
                if (ListaPerfil != null && ModelState.IsValid)
                {

                    using (var cadastroPerfil = new CadastroPerfil())
                    {

                        foreach (var p in ListaPerfil)
                        {

                            var perfil = cadastroPerfil.GetPerfilById(p.IdPerfil);

                            perfil.Ativo = p.Ativo;
                            perfil.Atribuicao = (Rule)p.Atribuicao.IdAtribuicaoPerfil;
                            perfil.Nome = p.Nome;

                            cadastroPerfil.AlterarPerfil(perfil);

                        }

                    };

                }
                return Json(ListaPerfil.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }
            catch
            {
                return View();
            }
        }
        public ActionResult Read([DataSourceRequest] DataSourceRequest request)
        {
            using (var cadPerfil = new CadastroPerfil())
            {

                var listaPerfil = cadPerfil.GetListaPerfil().Select(x => new CadastroPerfilModel()
                {
                    IdPerfil = x.IdPerfil,
                    Ativo = x.Ativo,
                    Atribuicao = GetAtribuicaoPerfil(x.Atribuicao),
                    Nome = x.Nome
                }).ToList();

                return Json(listaPerfil.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
            }
        }