Esempio n. 1
0
        public void QuestionBatchRequestHandler()
        {
            var channel  = queues.connection.CreateModel();
            var consumer = new AsyncEventingBasicConsumer(channel);

            consumer.Received += async(model, ea) =>
            {
                Console.WriteLine("Recieved Request for Questions");
                var body = ea.Body;
                batch_query = (QuestionBatchRequest)body.DeSerialize(typeof(QuestionBatchRequest));
                this.questionidbatchlist             = new GraphBatchResponse(batch_query.Username);
                this.questionidbatchlist.questionids = (graphfunctions.GetQuestionBatchIds(batch_query.Username, batch_query.Tech, batch_query.Concepts));
                channel.BasicAck(ea.DeliveryTag, false);
                channel.BasicPublish("KnowldegeGraphExchange", "Models.QuestionId", null, this.questionidbatchlist.Serialize());
                var routingKey = ea.RoutingKey;
                Console.WriteLine(" - Routing Key <{0}>", routingKey);
                Console.WriteLine("- Delivery Tag <{0}>", ea.DeliveryTag);
                await Task.Yield();
            };
            channel.BasicConsume("QuizEngine_KnowledgeGraph", false, consumer);
        }
        private HttpResponseMessage GetEmailResponseMessage(GraphBatchRequest request, string errorCode, string message, HttpStatusCode statusCode)
        {
            var graphResponses = request.Requests.Select(e => new GraphResponse
            {
                Status = statusCode,
                Body   = new GraphResponseBody {
                    Error = new GraphResponseError {
                        Code = errorCode, Messsage = message
                    }
                },
                Id = e.Id,
            });

            var graphBatchResponse = new GraphBatchResponse
            {
                Responses = graphResponses.ToList(),
            };

            return(new HttpResponseMessage(statusCode)
            {
                Content = new StringContent(JsonConvert.SerializeObject(graphBatchResponse)),
            });
        }