//public FriendsListResponse GetAdditionalFriendsInfo(bool isRefresh, bool restoreSession) //{ // DebugHelper.WriteLogEntry("BaseLogic.GetAdditionalFriendsInfo"); // запускаем функцию // FriendsListResponse additionalFriendsListResponse; // работаем с набором "дополнительных" данных // // загрузка "дополнительных" данных по пользователю из кэша // try // { // additionalFriendsListResponse = Cache.Cache.LoadFromCache<FriendsListResponse>(string.Empty, "FriendsListAdditionalResponse"); // } // catch // { // additionalFriendsListResponse = new FriendsListResponse(); // если нет, создаем пустой // } // try // { // if (isRefresh) // { // throw new Exception(); // } // return additionalFriendsListResponse; // если не обновление, то возвращаем что есть // } // catch (Exception) // { // //WiFi // if (_iDataLogic.GetOnlyWIFI() == "1") // if (!CoreHelper.TurnWiFi(true)) throw new VKException(ExceptionMessage.NoConnection); // // восстанавливаем сессию // if (restoreSession) // { // AutoLogin(); // } // ErrorResponse newErrorResponse = null; // ошибка // FriendsListResponse oldFriendsListResponse = null; // набор "стандартных" данных // // поднимаем набор "стандартных" данных // try // { // oldFriendsListResponse = Cache.Cache.LoadFromCache<FriendsListResponse>(string.Empty, "FriendsListResponse"); // } // catch (Exception) // { // return additionalFriendsListResponse; // если нет в кэше, , то возвращаем что есть // } // // проходим по списку "стандартных" данных // // если в "стандартном" списке есть пользователь, данных которого нет в "дополнительном" // // закачиваем профиль // foreach (User oldUser in oldFriendsListResponse.Users) // { // User additionalUserInfo = null; // буферная переменная для хранения полного профиля друга // if (additionalFriendsListResponse.IsUserInList(oldUser.Uid)) // { // continue; // не добавляем, если уже есть инфо // } // else // { // // получаем профиль друга // try // { // additionalUserInfo = _iCommunicationLogic.UserGetInfo(oldUser.Uid, _iDataLogic.GetSessionKey(), out newErrorResponse); // } // catch (VKException) // { // throw; // } // catch (TimeoutException ex) // { // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo TimeoutException Message: " + ex.Message); // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo TimeoutException StackTrace: " + ex.StackTrace); // throw new VKException(ExceptionMessage.NoConnection); // } // catch (WebException ex) // { // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo WebException Message: " + ex.Message); // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo WebException StackTrace: " + ex.StackTrace); // throw new VKException(ExceptionMessage.NoConnection); // } // catch (OutOfMemoryException ex) // { // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo OutOfMemoryException Message: " + ex.Message); // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo OutOfMemoryException StackTrace: " + ex.StackTrace); // throw; // } // catch (Exception ex) // { // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo Exception Message: " + ex.Message); // DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo Exception StackTrace: " + ex.StackTrace); // } // if (additionalUserInfo != null) // что-то получили от сервера // { // User newUser = new User(); // для минимизирования данных создаем нового пользователя для которого храним только 3 поля // newUser.Uid = oldUser.Uid; // ID пользователя // newUser.Birthday = additionalUserInfo.Birthday; // бездэй и мобилка из нового инфо // newUser.MobilePhone = additionalUserInfo.MobilePhone; // additionalFriendsListResponse.Users.Add(newUser); // } // else // ищем ошибку... // { // if (newErrorResponse != null) // { // if (newErrorResponse.error_code == "1") // { // if (!restoreSession) // { // return GetAdditionalFriendsInfo(isRefresh, true); // } // else // { // throw new VKException(ExceptionMessage.ServerUnavalible); // } // } // else if (newErrorResponse.error_code == "2") // { // throw new VKException(ExceptionMessage.AccountBloked); // } // else // { // throw new VKException(ExceptionMessage.UnknownError); // } // } // else // { // throw new VKException(ExceptionMessage.UnknownError); // } // } // // сохраняем результат в кэш после каждой успешной попытки // try // { // DebugHelper.WriteLogEntry("(Кэш) Сохранение данных FriendsListAdditionalResponse..."); // bool result; // result = Cache.Cache.SaveToCache(additionalFriendsListResponse, string.Empty, "FriendsListAdditionalResponse"); // if (result) // { // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse успешно сохранены."); // } // else // { // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse не сохранены."); // } // } // catch (Exception) // { // DebugHelper.WriteLogEntry("(Кэш) В процессе сохранения данных FriendsListAdditionalResponse произошла ошибка."); // } // } // } // //// сохраняем результат в кэш // //try // //{ // // DebugHelper.WriteLogEntry("(Кэш) Сохранение данных FriendsListAdditionalResponse..."); // // bool result; // // result = Cache.Cache.SaveToCache(additionalFriendsListResponse, string.Empty, "FriendsListAdditionalResponse"); // // if (result) // // { // // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse успешно сохранены."); // // } // // else // // { // // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse не сохранены."); // // } // //} // //catch (Exception) // //{ // // DebugHelper.WriteLogEntry("(Кэш) В процессе сохранения данных FriendsListAdditionalResponse произошла ошибка."); // //} // return additionalFriendsListResponse; // } //} #endregion Other #if DEBUG private void LogRequest(object sender, LogRequestEventArgs e) { string request = null; if (e.Stream != null) { byte[] buffer = new byte[e.Stream.Length]; e.Stream.Read(buffer, 0, (int)e.Stream.Length); request = Encoding.UTF8.GetString(buffer, 0, buffer.Length); } DebugHelper.WriteLogEntry(String.Format("Log Request: {0}; Stream: {1}", e.Info, request)); }
protected void OnLogRequest(LogRequestEventArgs e) { if (LogRequestEvent != null) LogRequestEvent(this, e); }