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 })); } }
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 })); } }