예제 #1
0
        public async Task <IActionResult> Incluir(string Nome, string Desenvolvedores)
        {
            try
            {
                var P = new Tb_Projeto();
                P.InAtivo = true;
                P.Nome    = Nome;
                await _context.Tb_Projetos.AddAsync(P);

                await _context.SaveChangesAsync();

                int Proj_id = P.Id;
                if (Desenvolvedores != null)
                {
                    var DevsArray = Desenvolvedores.Split("/");
                    foreach (var item in DevsArray)
                    {
                        if (!String.IsNullOrEmpty(item))
                        {
                            var tbDev_proj = new Tb_Desenvolvedor_Projeto();
                            tbDev_proj.Tb_ProjetoId = Proj_id;
                            tbDev_proj.InAtivo      = true;

                            tbDev_proj.Tb_Desenvolvedor = _context.Tb_Desenvolvedores.FirstOrDefault(x => x.Nome == item);
                            if (tbDev_proj.Tb_Desenvolvedor != null)
                            {
                                tbDev_proj.Tb_DesenvolvedorId = tbDev_proj.Tb_Desenvolvedor.Id;
                                await _context.Tb_Desenvolvedores_Projetos.AddAsync(tbDev_proj);
                            }
                        }
                    }
                }
                await _context.SaveChangesAsync();

                return(StatusCode(200));
            }
            catch (Exception ex)
            {
                var errorId = Guid.NewGuid();
                _logger.LogError(ex, "ErrorId: {0}", errorId.ToString());
                return(StatusCode(500, new { ErrorId = errorId.ToString(), Mensagem = ex.Message }));
            }
        }
예제 #2
0
        public async Task <IActionResult> Alterar(string Id, string Nome, string Desenvolvedores)
        {
            try
            {
                var P = await _context.Tb_Projetos.FirstOrDefaultAsync(x => x.Id == int.Parse(Id));

                P.Nome = Nome;
                await _context.SaveChangesAsync();

                int Proj_id = P.Id;



                if (Desenvolvedores != null)
                {
                    var listaDesenvCadastrados = await _context.Tb_Desenvolvedores_Projetos.Include(x => x.Tb_Desenvolvedor).Where(x => x.Tb_ProjetoId == Proj_id).ToListAsync();

                    var DevsArray = Desenvolvedores.Split("/");

                    //Adiciona os que novos
                    foreach (var item in DevsArray)
                    {
                        if (!String.IsNullOrEmpty(item))
                        {
                            if (!listaDesenvCadastrados.Any(x => x.Tb_Desenvolvedor.Nome == item))
                            {
                                var tbDev_proj = new Tb_Desenvolvedor_Projeto();
                                tbDev_proj.Tb_ProjetoId     = Proj_id;
                                tbDev_proj.InAtivo          = true;
                                tbDev_proj.Tb_Desenvolvedor = _context.Tb_Desenvolvedores.FirstOrDefault(x => x.Nome == item);
                                if (tbDev_proj.Tb_Desenvolvedor != null)
                                {
                                    tbDev_proj.Tb_DesenvolvedorId = tbDev_proj.Tb_Desenvolvedor.Id;
                                    await _context.Tb_Desenvolvedores_Projetos.AddAsync(tbDev_proj);
                                }
                            }
                            else
                            {
                                var DevNaoAtivo = listaDesenvCadastrados.FirstOrDefault(x => x.Tb_Desenvolvedor.Nome == item && x.InAtivo == false);
                                if (DevNaoAtivo != null)
                                {
                                    DevNaoAtivo.InAtivo = true;
                                }
                            }
                        }
                    }

                    //Coloca para InAtivo = false para os deletados
                    foreach (var item in listaDesenvCadastrados)
                    {
                        if (!DevsArray.Any(x => x == item.Tb_Desenvolvedor.Nome && item.InAtivo == true))
                        {
                            item.InAtivo = false;
                        }
                    }
                }



                await _context.SaveChangesAsync();

                return(StatusCode(200));
            }
            catch (Exception ex)
            {
                var errorId = Guid.NewGuid();
                _logger.LogError(ex, "ErrorId: {0}", errorId.ToString());
                return(StatusCode(500, new { ErrorId = errorId.ToString(), Mensagem = ex.Message }));
            }
        }