Exemplo n.º 1
0
        public async Task <ResponseModel <EntidadDto> > Handle(CrearCitaCommand request, CancellationToken cancellationToken)
        {
            ResponseModel <EntidadDto> response = new ResponseModel <EntidadDto>();
            ResponseService            responseService;
            ConfigurationHelper        configuration = new ConfigurationHelper();

            try
            {
                var cita = _mapper.Map <Cita>(request);
                _citaRepository.Agregar(cita);

                //Activamos el prospecto si se encuentra descartado
                Prospecto prospecto = new Prospecto(request.IdProspecto,
                                                    request.CitaProspectoCommand != null ? request.CitaProspectoCommand.TelefonoCelular : "",
                                                    request.CitaProspectoCommand != null ? request.CitaProspectoCommand.TelefonoFijo : "",
                                                    request.AuditoriaFechaCreacion, request.AuditoriaUsuarioCreacion);
                _prospectoRepository.ActivarProspecto(prospecto);

                await _citaRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

                responseService        = configuration.ObtenerCodigoRespuestaServicio(CodigoRespuestaServicio.Exito, "");
                response.auditResponse = new AuditResponse {
                    codigoRespuesta = responseService.codigoRespuesta, mensajeRespuesta = responseService.mensajeRespuesta
                };
                response.Entity = new EntidadDto {
                    Id = cita.IdCita, Mensaje = "Se registro correctamente la cita"
                };

                return(await Task.Run(() => {
                    return response;
                }));
            }
            catch (Exception ex)
            {
                responseService        = configuration.ObtenerCodigoRespuestaServicio(CodigoRespuestaServicio.ErrorInesperado, ex.InnerException.Message.ToString());
                response.auditResponse = new AuditResponse {
                    codigoRespuesta = responseService.codigoRespuesta, mensajeRespuesta = responseService.mensajeRespuesta
                };

                return(await Task.Run(() => {
                    return response;
                }));
            }
        }