public async Task <FuncionarioModel> UpdateFuncionario(FuncionarioModel funcionarioModel) { var funcionarioDataModel = await Funcionario.FindAsync(funcionarioModel.Id); if (funcionarioDataModel != null) { Entry(funcionarioDataModel).State = EntityState.Detached; funcionarioDataModel = _mapper.Map <FuncionarioDataModel>(funcionarioModel); Funcionario.Update(funcionarioDataModel); var funcionarioHabiliade = await FuncionarioHabilidade.ToListAsync(); var funcionarioHabiliadeFiltrado = funcionarioHabiliade.Where(x => x.Funcionario != null && x.Funcionario.Id == funcionarioDataModel.Id); FuncionarioHabilidade.RemoveRange(funcionarioHabiliadeFiltrado); foreach (var e in funcionarioModel.Habilidades) { var habilidadeDataModel = await Habilidade.FindAsync(e.Id); AdicionarFuncionarioHabilidade(funcionarioDataModel, habilidadeDataModel); } await SaveChangesAsync(); return(funcionarioModel); } else { throw new EntityNotFoundException("Entidade não encontrada!"); } }
public async Task <FuncionarioModel> InsertFuncionarioAsync(FuncionarioModel funcionarioModel) { var funcionarioDataModel = _mapper.Map <FuncionarioDataModel>(funcionarioModel); await Funcionario.AddAsync(funcionarioDataModel); await SaveChangesAsync(); funcionarioModel.Id = funcionarioDataModel.Id; var funcionarioHabilidadeList = new List <FuncionarioHabilidadeDataModel>(); foreach (var e in funcionarioModel.Habilidades) { var habilidadeDataModel = await Habilidade.FindAsync(e.Id); AdicionarFuncionarioHabilidade(funcionarioDataModel, habilidadeDataModel); } await SaveChangesAsync(); return(funcionarioModel); }