示例#1
0
        //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));
        }
示例#2
0
 protected void OnLogRequest(LogRequestEventArgs e)
 {
     if (LogRequestEvent != null) LogRequestEvent(this, e);
 }