BoxKite.Twitter.UserStream.ProcessMessages C# (CSharp) Метод

ProcessMessages() приватный Метод

private ProcessMessages ( ) : void
Результат void
        private void ProcessMessages()
        {
            Task.Factory.StartNew(ReadLines, CancelStream.Token);
            readLinesObservable.Subscribe(line =>
            {
#region Main Observer work here
#if (DEBUG)
                Debug.WriteLine(line);
#endif
#if (TRACE)
                if (line == "ENDBOXKITEUSERSTREAMTEST")
                {
                    Stop();
                }
#endif
                if (string.IsNullOrWhiteSpace(line)) return;
                var obj = JsonConvert.DeserializeObject<JObject>(line);

                //https://dev.twitter.com/docs/streaming-apis/messages

                if (obj["direct_message"] != null)
                {
                    _directmessages.OnNext(MapFromStreamTo<DirectMessage>(obj["direct_message"].ToString()));
                    return;
                }

                if (obj["in_reply_to_user_id"] != null)
                {
                    _tweets.OnNext(MapFromStreamTo<Tweet>(obj.ToString()));
                    return;
                }

                if (obj["friends"] != null)
                {
                    SendFriendsMessage(obj["friends"].Values<long>());
                    return;
                }

                // source: https://dev.twitter.com/docs/streaming-apis/messages#Events_event
                if (obj["event"] != null)
                {
                    _events.OnNext(MapFromEventInStream(obj));
                    return;
                }

                if (obj["scrub_geo"] != null)
                {
                    _scrubgeorequests.OnNext(MapFromStreamTo<StreamScrubGeo>(obj["scrub_geo"].ToString()));
                    return;
                }

                if (obj["limit"] != null)
                {
                    _limitnotices.OnNext(MapFromStreamTo<StreamLimitNotice>(obj["limit"].ToString()));
                    return;
                }

                if (obj["delete"] != null)
                {
                    _deleteevents.OnNext(MapFromStreamTo<DeleteEvent>(obj["delete"].ToString()));
                    return;
                }

                if (obj["status_withheld"] != null)
                {
                    _statuswithheld.OnNext(
                        MapFromStreamTo<StreamStatusWithheld>(obj["status_withheld"].ToString()));
                    return;
                }

                if (obj["user_withheld"] != null)
                {
                    _userwithheld.OnNext(MapFromStreamTo<StreamUserWithheld>(obj["user_withheld"].ToString()));
                    return;
                }

                if (obj["disconnect"] != null)
                {
                    MapFromStreamTo<StreamDisconnect>(obj["disconnect"].ToString());
                    Stop();
                    // check for non-hard disconnects & attempt reconnect
                }

                if (obj["warning"] == null) return; // no warnings, so start loop from beginning again

                if (obj["warning"]["percent_full"] != null)
                {
                    MapFromStreamTo<StreamStallWarning>(obj["warning"].ToString());
                    // do something something stall warning.
                }
                if (obj["warning"]["user_id"] != null)
                {
                    MapFromStreamTo<StreamToManyFollowsWarning>(obj["warning"].ToString());
                    // do something something user follows warning this is pretty final, actually.
                    Stop();
                }
#endregion           
            });
        }