private void ExecuteTask() { if (_longPollServer == null) { _longPollServer = _getLongPollServer.Get(_sessionInfoRepo.AccessToken); if (_getLongPollServer.Exception != null) throw _getLongPollServer.Exception; } if (_longPollServer != null) { var longPollServerUpdates = _longPollServerRequest.GetUpdates(_longPollServer); if (_longPollServerRequest.Exception != null) throw _longPollServerRequest.Exception; if (longPollServerUpdates != null && _longPollServerRequest.Ts > 0) { _longPollServer.Ts = _longPollServerRequest.Ts; ActionExecutor.RunScenario(_longPollService.UpdateData, longPollServerUpdates); } else { _longPollServer = _getLongPollServer.Get(_sessionInfoRepo.AccessToken); } } }
/// <summary> /// Получает список уведомлений /// </summary> /// <param name="longPollServer">Данные LongPollServer</param> public ILongPollServerUpdates GetUpdates(ILongPollServer longPollServer) { if (longPollServer != null) { var url = string.Format("http://{0}?act=a_check&key={1}&ts={2}&wait=25", longPollServer.Server, longPollServer.Key, longPollServer.Ts); var requestBuilder = new RequestBuilder<LongPollServerResult>(null, false); var response = requestBuilder.GetResponse(url); Exception = requestBuilder.Exception; Ts = response.Ts; return LongPollServerResultParser.Parse(response); } return null; }