示例#1
0
        public bool Insercao(PerfilFuncionalidadeModelo perfilFuncionalidadeModelo)
        {
            try
            {
                if (perfilFuncionalidadeModelo.Funcionalidades == null)
                {
                    throw new Exception("É necessário informar as funcionalidades!");
                }

                if (string.IsNullOrEmpty(perfilFuncionalidadeModelo.eightIDUsuarioModificador))
                {
                    throw new Exception("O usuário modificador não foi informado!");
                }

                //Registra o LOG

                /*
                 * List<FUNCIONALIDADE> funcionalidades = new List<FUNCIONALIDADE>();
                 * logPerfilFuncionalidadePersistencia.BuscaEInsereFuncionalidades(perfilFuncionalidadeModelo.eightIDUsuarioModificador,
                 *  perfilFuncionalidadeModelo.CodPerfil,perfilFuncionalidadeModelo.CodTela,
                 *  AutoMapper.Mapper.Map(perfilFuncionalidadeModelo.Funcionalidades, funcionalidades));
                 */

                bool result = false;
                result = this.perfisPersistencia.Insercao(perfilFuncionalidadeModelo);
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public bool Insercao(PerfilFuncionalidadeModelo perfilFuncionalidadeModelo)
        {
            using (var entities = databaseEntities.GetDB_LaborSafetyEntities())
            {
                //Verifica se o perfil existe
                var perfilExistente = entities.PERFIL.Where(x => x.CodPerfil == perfilFuncionalidadeModelo.CodPerfil).Select(x => x.CodPerfil).FirstOrDefault();
                if (perfilExistente == 0)
                {
                    throw new Exception("O perfil informado é inválido!");
                }

                //Verifica se a tela existe
                var telaExistente = entities.TELA.Where(x => x.CodTela == perfilFuncionalidadeModelo.CodTela).Select(x => x.CodTela).FirstOrDefault();
                if (telaExistente == 0)
                {
                    throw new Exception("A tela informada é inválida!");
                }

                List <FuncionalidadeModelo> funcionalidades = perfilFuncionalidadeModelo.Funcionalidades;

                using (var transaction = entities.Database.BeginTransaction())
                {
                    try
                    {
                        entities.PERFIL_FUNCIONALIDADE.RemoveRange(
                            entities.PERFIL_FUNCIONALIDADE
                            .Where(perfil => perfil.CodPerfil == perfilExistente && perfil.CodTela == telaExistente).ToList());
                        for (int i = 0; i < funcionalidades.Count; i++)
                        {
                            entities.PERFIL_FUNCIONALIDADE.Add(new PERFIL_FUNCIONALIDADE()
                            {
                                CodPerfil         = (long)perfilExistente,
                                CodFuncionalidade = (long)funcionalidades[i].CodFuncionalidade,
                                CodTela           = telaExistente,
                                Edicao            = true
                            });
                        }

                        entities.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception exception)
                    {
                        transaction.Rollback();
                        throw exception;
                    }
                }
            }

            return(true);
        }
示例#3
0
 public IHttpActionResult AssociarFuncionalidades(PerfilFuncionalidadeModelo perfilFuncionalidadeModelo)
 {
     try
     {
         bool result;
         result = this.perfilNegocio.Insercao(perfilFuncionalidadeModelo);
         return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK,
                                                           $"Inserção das funcionalidades ocorrida com sucesso", result)));
     }
     catch (InvalidOperationException exception)
     {
         throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.NotFound,
                                                                         "Perfil ou funcionalidade não encontrado.", exception), exception);
     }
     catch (Exception exception)
     {
         throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest,
                                                                         "Erro ao inserir funcionalidades para o perfil.", exception), exception);
     }
 }