public static void ReceiveMeta() { var rbService = new RabbitMQService(); var conn = rbService.GetRabbitMQConnection(); var meta = conn.CreateModel(); meta.ExchangeDeclare("Metas", durable: true, type: ExchangeType.Fanout); var queueName = meta.QueueDeclare().QueueName; meta.QueueBind(queue: queueName, exchange: "Metas", routingKey: "UOFMetas"); meta.BasicQos(prefetchSize: 0, prefetchCount: 1, false); var metaConsumer = new EventingBasicConsumer(meta); meta.BasicConsume(queueName, false, metaConsumer); SerilogHelper.Information($"Connected Metas {queueName}"); metaConsumer.Received += (model, ea) => { var body = ea.Body; var data = Encoding.UTF8.GetString(body); var _data = UtcHelper.Deserialize <Meta>(data); Program.metaMainQueue.Enqueue(_data); meta.BasicAck(ea.DeliveryTag, multiple: false); }; }
private void RouteTheKey(string typeName, ReceiveFeedv2 feed, dbEntities db) { switch (typeName) { case "odds_change": OddsChange(UtcHelper.Deserialize <odds_change>(feed.Data), db, feed.RouteKey); break; case "bet_stop": BetStop(UtcHelper.Deserialize <bet_stop>(feed.Data), db, feed.RouteKey); break; case "bet_settlement": BetSettlement(UtcHelper.Deserialize <bet_settlement>(feed.Data), db, feed.RouteKey); break; case "cancelbet": BetCancel(UtcHelper.Deserialize <bet_cancel>(feed.Data), db, feed.RouteKey); break; case "producer_down": ProducerUpDown(UtcHelper.Deserialize <ProducerModel>(feed.Data), db, feed.RouteKey); break; case "producer_up": ProducerUpDown(UtcHelper.Deserialize <ProducerModel>(feed.Data), db, feed.RouteKey); break; case "rollback_betsettlement": SerilogHelper.Error($"{feed.RouteKey}"); break; case "rollback_cancelbet": SerilogHelper.Error($"{feed.RouteKey}"); break; case "fixture_change": FixtureChange(UtcHelper.Deserialize <fixture_change>(feed.Data), db, feed.RouteKey); break; default: SerilogHelper.Error($"{feed.RouteKey}"); break; } }