public async Task <ActionResult <IId> > Post( [FromBody] HarvestGroupTrees model, [FromServices] DataContext context, [FromServices] IUnitOfWork UnitOfWork) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await GroupTreesIsValid(model, context)) { return(NotFound(new Error("Identificador de Colheita inválido", "Colheita não cadastrada!"))); } try { context.HarvestGroupTrees.Add(model); await UnitOfWork.Commit(); } catch (Exception) { return(BadRequest(new Error("Erro ao gravar no Banco de Dados", "Não foi possível criar a Colheita!"))); } return(Ok(model.Id)); }
private async Task <bool> GroupTreesIsValid(HarvestGroupTrees model, DataContext context) { var species = await context.GroupTrees.FirstOrDefaultAsync(x => x.Id == model.GroupId); if (species == null) { return(false); } return(true); }
public async Task <ActionResult> Put( int id, [FromBody] HarvestGroupTrees model, [FromServices] DataContext context, [FromServices] IUnitOfWork UnitOfWork) { if (id != model.Id) { return(BadRequest(new Error("Identificadores diferentes", "Id informada difere da Colheita!"))); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await GroupTreesIsValid(model, context)) { return(NotFound(new Error("Identificador de Árvore inválido", "Árvore não cadastrada!"))); } try { context.Entry <HarvestGroupTrees>(model).State = EntityState.Modified; await UnitOfWork.Commit(); } catch (DbUpdateConcurrencyException) { return(BadRequest(new Error("Erro ao atualizar o Banco de Dados", "Esta Colheita já foi atualizado!"))); } catch (Exception) { return(BadRequest(new Error("Erro ao atualizar o Banco de Dados", "Não foi possível Atualizar a Colheita!"))); } return(Ok()); }