Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
 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)));
         }
     }
 }