/// <summary> /// Uma ausência pode ou não ter seu retorno registrado no momento do cadastro, porém o retorno pode ser registrado posteriormente. /// </summary> /// <param name="model"></param> /// <returns></returns> public bool RegistrarRetorno(AusenciaRetornoForm model) { using (var context = new DatabaseContext()) { if (model.DataHoraFim == DateTime.MinValue) { throw new BusinessException("Informe a data de retorno para continuar"); } var entity = GetByKeyFull(model.IdAusencia); if (entity == null) { throw new BusinessException("Ausência não encontrada"); } if (model.DataHoraFim < entity.DataHoraInicio) { throw new BusinessException("A data de retorno não pode ser anterior à data de saída."); } entity.DataHoraAlteracao = CurrentDateTime; entity.IdUsuarioAlteracao = IdUsuarioLogado; entity.DataHoraFim = model.DataHoraFim; entity.ObservacaoRetorno = model.ObservacaoRetorno; context.Entry(entity).State = EntityState.Modified; var result = context.SaveChanges() > 0; if (result) { RegistrarLogAtividade(entity, PERMISSAO_REGISTRAR_RETORNO); } return(result); } }
public IHttpActionResult RegistrarRetorno([FromBody] AusenciaRetornoForm entity) { using (var repository = new AusenciaRepository()) { try { return(Ok(CreateResponse(true, "O retorno foi registrado", repository.RegistrarRetorno(entity)))); } catch (BusinessException ex) { return(Content(HttpStatusCode.BadRequest, CreateResponse(false, "Erro ao registrar o retorno", ex.Message))); } } }