/// <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); }
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; } } }
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(); }
private void OnMessage(object sender, EventSourceMessageEventArgs e) { isConnected = true; Parse(e.Message); }
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}"); }