public Resultado Incluir(List <UserProjeto> dadosUserProjeto)
        {
            Resultado resultado = new Resultado();

            foreach (UserProjeto dados in dadosUserProjeto)
            {
                resultado = DadosValidos(dados);

                if (resultado.Inconsistencias.Count == 0)
                {
                    // Verifica se já existe associação para o projeto e remove
                    UserProjeto UserProjeto = _context.UserProjetos.Where(
                        p => p.UserId == dados.UserId).FirstOrDefault();
                    if (UserProjeto != null)
                    {
                        _context.UserProjetos.RemoveRange(_context.UserProjetos.Where(t => t.UserId == dados.UserId));
                    }
                    _context.UserProjetos.Add(dados);
                }
            }
            resultado.Acao = "Inclusão de UserProjeto";
            if (resultado.Inconsistencias.Count == 0)
            {
                _context.SaveChanges();
            }
            return(resultado);
        }
        private Resultado DadosValidos(UserProjeto dados)
        {
            var resultado = new Resultado();

            if (dados == null)
            {
                resultado.Inconsistencias.Add(
                    "Preencha os Dados do UserProjeto");
            }
            else
            {
                if (dados.ProjetoId <= 0)
                {
                    resultado.Inconsistencias.Add(
                        "Preencha o ProjetoId");
                }
                if (dados.UserId == null)
                {
                    resultado.Inconsistencias.Add(
                        "Preencha o UserId");
                }
                if (dados.CatalogUserPermissaoId <= 0)
                {
                    resultado.Inconsistencias.Add(
                        "Preencha o CatalogUserPermissaoId");
                }
                CatalogUserPermissao Permissao = _context.CatalogUserPermissoes.Where(
                    e => e.Id == dados.CatalogUserPermissaoId).FirstOrDefault();

                if (Permissao == null)
                {
                    resultado.Inconsistencias.Add(
                        "Permissao não encontrada");
                }
                ApplicationUser User = _context.Users.Where(
                    e => e.Id == dados.UserId).FirstOrDefault();

                if (User == null)
                {
                    resultado.Inconsistencias.Add(
                        "Usuário não encontrado");
                }
                Projeto Projeto = _context.Projetos.Where(
                    e => e.Id == dados.ProjetoId).FirstOrDefault();

                if (Projeto == null)
                {
                    resultado.Inconsistencias.Add(
                        "Projeto não encontrado");
                }
            }

            return(resultado);
        }
        public Resultado Excluir(int projetoId)
        {
            Resultado resultado = new Resultado();

            resultado.Acao = "Exclusão de UserProjeto";

            UserProjeto UserProjeto = Obter(projetoId);

            if (UserProjeto == null)
            {
                resultado.Inconsistencias.Add(
                    "UserProjeto não encontrado");
            }
            else
            {
                _context.UserProjetos.Remove(UserProjeto);
                _context.SaveChanges();
            }

            return(resultado);
        }
        public Resultado Incluir(Projeto dados, string userId)
        {
            Resultado resultado = DadosValidos(dados);

            resultado.Acao = "Inclusão de Projeto";

            if (resultado.Inconsistencias.Count == 0 &&
                _context.Projetos.Where(
                    p => p.Numero == dados.Numero).Count() > 0)
            {
                resultado.Inconsistencias.Add(
                    "Projeto com Número já cadastrado");
            }

            if (resultado.Inconsistencias.Count == 0)
            {
                dados.Tipo     = obterTipoProjeto(dados.Numero.ToString());
                dados.Empresas = new List <Empresa> {
                    new Empresa {
                        CatalogEmpresaId = dados.CatalogEmpresaId
                    }
                };
                _context.Projetos.Add(dados);
                _context.SaveChanges();
                resultado.Id = dados.Id.ToString();
                // criar user projeto
                var userProjeto = new UserProjeto {
                    UserId    = userId,
                    ProjetoId = dados.Id,
                    CatalogUserPermissaoId = 4
                };
                _context.UserProjetos.Add(userProjeto);
                _context.SaveChanges();
            }

            return(resultado);
        }