public void Dispose() { pokeDB = null; pokeCtrl = null; }
public static void Main() { pokeDB = new PokeDB(@"..\..\..\Data\pokemons.csv"); pokeCtrl = new PokeControl(); var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "SearchType", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.QueueDeclare(queue: "ListMultType", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.QueueDeclare(queue: "ListAllLegendary", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.QueueDeclare(queue: "SearchName", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.QueueDeclare(queue: "ListHeaders", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.QueueDeclare(queue: "SearchHeader", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.QueueDeclare(queue: "Battle", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.BasicQos(0, 1, false); var consumer = new EventingBasicConsumer(channel); channel.BasicConsume(queue: "SearchType", autoAck: false, consumer: consumer); channel.BasicConsume(queue: "ListMultType", autoAck: false, consumer: consumer); channel.BasicConsume(queue: "ListAllLegendary", autoAck: false, consumer: consumer); channel.BasicConsume(queue: "SearchName", autoAck: false, consumer: consumer); channel.BasicConsume(queue: "ListHeaders", autoAck: false, consumer: consumer); channel.BasicConsume(queue: "SearchHeader", autoAck: false, consumer: consumer); channel.BasicConsume(queue: "Battle", autoAck: false, consumer: consumer); Console.WriteLine("Awaiting requests"); consumer.Received += (model, ea) => { string response = null; var body = ea.Body; var props = ea.BasicProperties; var replyProps = channel.CreateBasicProperties(); replyProps.CorrelationId = props.CorrelationId; try { var message = Encoding.UTF8.GetString(body); Console.WriteLine("In: {0} - {1}", ea.RoutingKey, message); //Create a stream to serialize the object to. MemoryStream ms = new MemoryStream(); Object resp = CreateResponse(ea.RoutingKey, message); // Serializer the User object to the stream. DataContractJsonSerializer ser = new DataContractJsonSerializer((resp.GetType())); ser.WriteObject(ms, resp); byte[] json = ms.ToArray(); ms.Close(); response = Encoding.UTF8.GetString(json, 0, json.Length); } catch (Exception e) { response = "Error: " + e.Message; } finally { Console.WriteLine("Out: {0}", response); var responseBytes = Encoding.UTF8.GetBytes(response); channel.BasicPublish(exchange: "", routingKey: props.ReplyTo, basicProperties: replyProps, body: responseBytes); channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); } }; Console.WriteLine("Press [enter] to exit."); Console.ReadLine(); } }
public Tests() { pokeDB = new PokeDB(@"..\..\..\..\PokeBackend\Data\pokemons.csv"); pokeCtrl = new PokeControl(8); pokeCtrlManyRounds = new PokeControl(1000); }