public async Task <IActionResult> Handle(CadastrarPlanoTrabalhoCommand request, CancellationToken cancellationToken) { ApplicationResult <Guid> result = new ApplicationResult <Guid>(request); var unidade = await UnidadeQuery.ObterPorChaveAsync(request.UnidadeId); //Monta o objeto com os dados do item de catalogo Domain.AggregatesModel.PlanoTrabalhoAggregate.PlanoTrabalho item = Domain.AggregatesModel.PlanoTrabalhoAggregate.PlanoTrabalho.Criar( request.UnidadeId, request.DataInicio, request.DataFim, request.TempoComparecimento, request.TempoFaseHabilitacao, unidade.Result.QuantidadeServidores, request.UsuarioLogadoId.ToString(), request.TermoAceite); //Adiciona o catalogo no banco de dados await PlanoTrabalhoRepository.AdicionarAsync(item); UnitOfWork.Commit(false); result.Result = item.PlanoTrabalhoId; result.SetHttpStatusToOk("Plano de trabalho cadastrado com sucesso."); return(result); }
public async Task <IActionResult> Handle(CadastrarPlanoTrabalhoCommand request, CancellationToken cancellationToken) { ApplicationResult <Guid> result = new ApplicationResult <Guid>(request); try { var unidade = await UnidadeQuery.ObterQuantidadeServidoresPorChaveAsync(request.UnidadeId); var tempoComparecimento = request.TempoComparecimento; var termosAceite = request.TermoAceite; if (Configuration.Value.TempoComparecimento > 0) { tempoComparecimento = Configuration.Value.TempoComparecimento; } if (!String.IsNullOrEmpty(Configuration.Value.TermoAceite)) { termosAceite = Configuration.Value.TermoAceite; } //Monta o objeto com os dados do item de catalogo Domain.AggregatesModel.PlanoTrabalhoAggregate.PlanoTrabalho item = Domain.AggregatesModel.PlanoTrabalhoAggregate.PlanoTrabalho.Criar( request.UnidadeId, request.DataInicio, request.DataFim, tempoComparecimento, request.TempoFaseHabilitacao, unidade.Result.QuantidadeServidores, request.UsuarioLogadoId.ToString(), termosAceite); //Adiciona o catalogo no banco de dados await PlanoTrabalhoRepository.AdicionarAsync(item); UnitOfWork.Commit(false); result.Result = item.PlanoTrabalhoId; result.SetHttpStatusToOk("Plano de trabalho cadastrado com sucesso."); } catch (SISRHDomainException ex) { result.Validations = new List <string>() { ex.Message }; result.SetHttpStatusToBadRequest(ex.Message); } return(result); }