public IList <ApplicationModel> GetApplicationsByRequestId(GetApplicationByRequestIdMqQuery command) { try { return(_db.Query <ApplicationModel>("GetApplicationByRequestId", new { command.RequestId }, commandType: CommandType.StoredProcedure).ToList()); } catch (SqlException e) { _logger.LogError($"Error in database: {e.Message}"); throw; } }
public IActionResult GetApplicationStatus(GetApplicationByRequestIdQuery command) { if (string.IsNullOrEmpty(command.RequestId)) { _logger.LogError("Request is invalid"); return(NotFound()); } _logger.LogInformation($"Processing request: {JsonConvert.SerializeObject(command)}"); _channel.QueueDeclare(queue: GetByRequestIdQueueName, durable: false, exclusive: false, autoDelete: false, arguments: null); var mqCommand = new GetApplicationByRequestIdMqQuery { RequestId = command.RequestId, ClientIp = HttpContext.Connection.RemoteIpAddress.ToString(), }; string message; try { message = JsonConvert.SerializeObject(mqCommand); var body = Encoding.UTF8.GetBytes(message); _channel.BasicPublish(exchange: "", routingKey: GetByRequestIdQueueName, basicProperties: _props, body: body); } catch (Exception e) { _logger.LogError($"Error from message queue: {e.Message}"); return(StatusCode((int)HttpStatusCode.BadGateway)); } _logger.LogInformation($"Sent message: {message}"); _channel.BasicConsume( consumer: _consumer, queue: _replyQueueName, autoAck: true); var response = _respQueue.Take(); _logger.LogInformation($"Received message from server: {response}"); return(Ok(response)); }