/// <summary>
        /// Parse a new event and trigger
        /// </summary>
        /// <param name="sender">The eventsourcereader</param>
        /// <param name="e">event of type EvenSourceMessageEventArgs</param>
        private void NewEvent(EventSourceMessageEventArgs e)
        {
            if (!_isConnected)
            {
                _isConnected = true;
                connectedEventBus?.Invoke(true);
                Debug.Log("Connected to OpenHab Eventbus again.");
            }
            EventModel ev = JsonUtility.FromJson <EventModel>(e.Message);

            ev.Parse();
            //Debug.Log("NewEvent!!!\nParsed new Object:\n" + ev.ToString());

            // New revision, send event to specific item, not a fun of iterating through lists but...
            foreach (GameObject item in _subscribers)
            {
                ItemController ic = item.GetComponent <ItemController>();
                if (ic.GetItemID() == ev.itemId && ic.GetItemSubType() == ev._eventType)
                {
                    ic.RecievedEvent(ev);
                }
            }

            // This sends the event to all items.
            // It would be better if event is sent to specific item.
            //newEvent?.Invoke(ev);
        }
示例#2
0
 private static void Evt_MessageReceived(object sender, EventSourceMessageEventArgs e)
 {
     if (active)
     {
         Privmsg msg   = JsonConvert.DeserializeObject <Privmsg>(e.Message);
         int     count = channelCounts.GetValueOrDefault(msg.Channel, 0);
         channelCounts[msg.Channel] = count + 1;
         if (!string.IsNullOrEmpty(msg.User))
         {
             count = userCounts.GetValueOrDefault(msg.User, 0);
             userCounts[msg.User] = count + 1;
         }
     }
 }
示例#3
0
        private void HandleTradeEvent(object sender, EventSourceMessageEventArgs e)
        {
            try {
                var tradeMessages = JsonConvert.DeserializeObject <TradeMessage[]>(e.Message, client._jsonSerializerSettings);

                var handler = _eventHandler;

                if (tradeMessages == null || !tradeMessages.Any() || handler == null)
                {
                    return;
                }

                var firstMessage = tradeMessages.First();
                var trade        = firstMessage.Trade;

                trade.Symbol = firstMessage.Symbol;

                handler(this, trade);
                //client.MessagesUsedTotal++; not needed - free operation, just for example
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
        }
 private void EventSourceOnMessageReceived(object sender, EventSourceMessageEventArgs e)
 {
     throw new NotImplementedException();
 }
示例#5
0
文件: JTService.cs 项目: KaynSD/bbTV
 private void OnMessage(object sender, EventSourceMessageEventArgs e)
 {
     isConnected = true;
     Parse(e.Message);
 }
示例#6
0
        private void ShowOperationResponse(EventSourceMessageEventArgs op)
        {
            if (op.Event == "open")
            {
                return;
            }
            var or = JsonSingleton.GetInstance <OperationResponse>(op.Message);

            SavePagingToken(or.PagingToken);

            if (or.GetType() != typeof(PaymentOperationResponse))
            {
                return;
            }
            var payment = (PaymentOperationResponse)or;

            if (payment.From.AccountId == _keyPair.AccountId)
            {
                return;
            }

            AppSettings.Logger.Information(
                $@"Transaction received: Id: {or.Id}, Source: {or.SourceAccount.AccountId}, Type: {or.Type}");

            // Need to make sure the payment was at least $10 worth of XRP
            // If it isn't enough, refund the money minus a small transaction fee.
            var paymentAmount = decimal.Parse(payment.Amount);

            if (GetMinimumLumensRequired() > paymentAmount)
            {
                AppSettings.Logger.Information(
                    $"Received underfunded pament of {paymentAmount} lumens from {payment.From.AccountId}! Refunding...");

                SendPayment(
                    payment.From.AccountId,
                    (paymentAmount - 0.0000200m).ToString("0.0000000"),
                    "Err: http://bit.ly/2FW9r0m");

                return;
            }

            AppSettings.Logger.Information("Connecting to the database to get the availale pool...");
            var poolId = _poolRepository.GetAvailablePoolByPayer(payment.From.AccountId);

            if (poolId == 0)
            {
                poolId = _poolRepository.Add(new Pool
                {
                    CreateDate = DateTime.Now
                });

                AppSettings.Logger.Information($"Created new Pool {poolId}.");
            }

            var celebId = _poolRepository.GetAvailablePoolCelebrity(poolId);

            var ticketId = _ticketRepository.Add(new Ticket
            {
                PlayerAddress = payment.From.AccountId,
                CelebrityId   = celebId,
                PoolId        = poolId
            });

            AppSettings.Logger.Information(
                "Created a new Ticket: \n " +
                $"Ticket ID: {ticketId} \n " +
                $"Player Address: {payment.From.AccountId} \n" +
                $"Celebrity ID: {celebId} \n" +
                $"Pool ID: {poolId}");

            SendPayment(
                or.SourceAccount.AccountId,
                "0.0000001",
                $"Raffle Ticket Id: {ticketId}");
        }