private void AsyncGetViewData(LoadingControlInterface lc)
        {
            lc.Current = 0;

            MessShortCorrespondence newMessShortCorrespondence = null;

            try
            {
                lc.Current = 5;

                newMessShortCorrespondence = Globals.BaseLogic.GetShortCorrespondence(true, false);
                lc.Current = 95;
            }
            catch (VKException ex)
            {
                //timerKeepAwake.Enabled = false;
                string error = ExceptionTranslation.TranslateException(ex);

                if (!string.IsNullOrEmpty(error))
                {
                    ViewData["LoadListResponseMessage"] = error;
                    view.UpdateView("LoadListResponseNegative");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                        view.UpdateView("GoToLogin");
                    }
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["LoadListResponseMessage"] = Resources.OutOfMemory;
                view.UpdateView("LoadListResponseNegative");
            }

            if (newMessShortCorrespondence != null)
            {
                FillListModel(newMessShortCorrespondence);
            }
            else
            {
                //view.Model.Clear();
            }

            ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

            view.UpdateView("LoadListResponse");

            // запускаем поток || прогрузки фотографий
            var t = new Thread(delegate { Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary(); })
            {
                IsBackground = true
            };

            t.Start();

            lc.Current = 100;
        }
Esempio n. 2
0
        private void AsyncGetViewData(LoadingControlInterface lc)
        {
            /*
            lc.Current = 0;

            try
            {
                lc.Current = 5;

                ImageHelper.PostProcessImageFile((string)ViewData["ImageFile"], Globals.BaseLogic.IDataLogic.GetUplPhtViewPhtRtnAngl());
                Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero(); // после PostProcess угол необходимо сбросить

                byte[] file;

                using (BinaryReader newBinaryReader = new BinaryReader(File.Open((string)ViewData["ImageFile"], FileMode.Open)))
                {
                    file = new byte[newBinaryReader.BaseStream.Length];
                    newBinaryReader.Read(file, 0, file.Length);
                }

                //using (new WaitWrapper())
                //{
                    Globals.BaseLogic.UploadPhoto(file, false, false);

                    lc.Current = 95;
                //}

                ViewData["ResponseMessage"] = Resources.UploadPhoto_Controller_ResponseMessage_ImageSuccessfullyDownloaded;
            }
            catch (VKException ex)
            {
                string error = ExceptionTranslation.TranslateException(ex);

                if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                {
                    Globals.BaseLogic.IDataLogic.SetToken(string.Empty);
                    MasterForm.Navigate<LoginController>();
                }

                ViewData["ResponseMessage"] = error;
            }
            catch (OutOfMemoryException ex)
            {
                ViewData["ResponseMessage"] = Resources.OutOfMemory;

                DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto OutOfMemoryException Message: " + ex.Message);
                DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto OutOfMemoryException StackTrace: " + ex.StackTrace);
            }
            catch (Exception ex)
            {
                ViewData["ResponseMessage"] = Resources.ErrorMessages_OperationIsDoneUnsuccsessfully;

                DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto Exception Message: " + ex.Message);
                DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto Exception StackTrace: " + ex.StackTrace);
            }
            finally
            {
                view.UpdateView("MainResponse");
            }

            lc.Current = 100;
             */
        }
Esempio n. 3
0
 private void AsyncGetViewData(LoadingControlInterface lc)
 {
     /*
      * lc.Current = 0;
      *
      * try
      * {
      *  lc.Current = 5;
      *
      *  ImageHelper.PostProcessImageFile((string)ViewData["ImageFile"], Globals.BaseLogic.IDataLogic.GetUplPhtViewPhtRtnAngl());
      *  Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero(); // после PostProcess угол необходимо сбросить
      *
      *  byte[] file;
      *
      *  using (BinaryReader newBinaryReader = new BinaryReader(File.Open((string)ViewData["ImageFile"], FileMode.Open)))
      *  {
      *      file = new byte[newBinaryReader.BaseStream.Length];
      *      newBinaryReader.Read(file, 0, file.Length);
      *  }
      *
      *  //using (new WaitWrapper())
      *  //{
      *      Globals.BaseLogic.UploadPhoto(file, false, false);
      *
      *      lc.Current = 95;
      *  //}
      *
      *  ViewData["ResponseMessage"] = Resources.UploadPhoto_Controller_ResponseMessage_ImageSuccessfullyDownloaded;
      * }
      * catch (VKException ex)
      * {
      *  string error = ExceptionTranslation.TranslateException(ex);
      *
      *  if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
      *  {
      *      Globals.BaseLogic.IDataLogic.SetToken(string.Empty);
      *      MasterForm.Navigate<LoginController>();
      *  }
      *
      *  ViewData["ResponseMessage"] = error;
      * }
      * catch (OutOfMemoryException ex)
      * {
      *  ViewData["ResponseMessage"] = Resources.OutOfMemory;
      *
      *  DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto OutOfMemoryException Message: " + ex.Message);
      *  DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto OutOfMemoryException StackTrace: " + ex.StackTrace);
      * }
      * catch (Exception ex)
      * {
      *  ViewData["ResponseMessage"] = Resources.ErrorMessages_OperationIsDoneUnsuccsessfully;
      *
      *  DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto Exception Message: " + ex.Message);
      *  DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto Exception StackTrace: " + ex.StackTrace);
      * }
      * finally
      * {
      *  view.UpdateView("MainResponse");
      * }
      *
      * lc.Current = 100;
      */
 }
Esempio n. 4
0
        protected override void OnViewStateChanged(string key)
        {
            #region Check AutoLogin

            if (key == "CheckAutoLogin")
            {
                try
                {
                    using (new WaitWrapper())
                    {
                        Globals.BaseLogic.AutoLogin();
                    }

                    Initialize("LoginSuccess");
                }
                catch (VKException ex)
                {
                    string message = ExceptionTranslation.TranslateException(ex);

                    if (!string.IsNullOrEmpty(message))
                    {
                        if (ex.LocalizedMessage == ExceptionMessage.IncorrectLoginOrPassword)
                        {
                            Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                            MasterForm.Navigate <LoginController>("IncorrectLoginOrPassword");
                        }
                        else if (ex.LocalizedMessage == ExceptionMessage.NoSavedToken)
                        {
                            MasterForm.Navigate <LoginController>();
                        }
                        else if (ex.LocalizedMessage == ExceptionMessage.UnknownError)
                        {
                            MasterForm.Navigate <LoginController>("UnknownError");
                        }
                        else
                        {
                            Initialize("LoginSuccess");
                        }
                    }
                }
                catch (OutOfMemoryException)
                {
                    DialogControl.ShowQuery(Resources.OutOfMemory, DialogButtons.OK);
                }
            }

            #endregion

            #region InitializeSettings

            else if (key == "InitializeSettings")
            {
                using (new WaitWrapper())
                {
                    // если приложение запущено при остановленном нотификаторе, то очищаем кэш
                    // это единственное место, где осуществляется это действие

                    //if (!Interprocess.IsServiceRunning)
                    {
                        Cache.DeleteEntryFromCache(string.Empty, "ShortActivityResponse");
                        Cache.DeleteEntryFromCache(string.Empty, "ShortUpdatesPhotosResponse");
                        Cache.DeleteEntryFromCache(string.Empty, "ShortWallResponse");
                        Cache.DeleteEntryFromCache(string.Empty, "ShortPhotosCommentsRespounse");
                    }

                    #region SetShowEventButtons

                    if (Globals.BaseLogic.IDataLogic.GetShowButtonMessages())
                    {
                        Globals.BaseLogic.IDataLogic.SetShowButtonMessages();
                    }

                    if (Globals.BaseLogic.IDataLogic.GetShowButtonComments())
                    {
                        Globals.BaseLogic.IDataLogic.SetShowButtonComments();
                    }

                    if (Globals.BaseLogic.IDataLogic.GetShowButtonFriends())
                    {
                        Globals.BaseLogic.IDataLogic.SetShowButtonFriends();
                    }

                    if (Globals.BaseLogic.IDataLogic.GetShowButtonFriendsNews())
                    {
                        Globals.BaseLogic.IDataLogic.SetShowButtonFriendsNews();
                    }

                    if (Globals.BaseLogic.IDataLogic.GetShowButtonFriendsPhotos())
                    {
                        Globals.BaseLogic.IDataLogic.SetShowButtonFriendsPhotos();
                    }

                    if (Globals.BaseLogic.IDataLogic.GetShowButtonWallMessages())
                    {
                        Globals.BaseLogic.IDataLogic.SetShowButtonWallMessages();
                    }

                    #endregion

                    Configuration.LoadConfigSettings();
                    Configuration.SaveConfigSettings();

                    #region старт/стоп нотификатора

                    if (Configuration.BackgroundNotification != BackgroundNotificationTypes.Off)
                    {
                        Globals.BaseLogic.IDataLogic.SetNtfAutorun();

                        OnViewStateChanged("StartNotificator");
                    }
                    else
                    {
                        OnViewStateChanged("StopNotificator");

                        Globals.BaseLogic.IDataLogic.DelNtfAutorun();
                    }

                    OnViewStateChanged("StopNotificator");

                    #endregion
                }
            }

            #endregion

            #region StartNotificator

            if (key == "StartNotificator")
            {
                if (!string.IsNullOrEmpty(Globals.BaseLogic.IDataLogic.GetToken()))
                {
                    //// запуск службы нотификатора
                    //try
                    //{
                    //    if (!Interprocess.IsServiceRunning)
                    //    {
                    //        Interprocess.StartService();
                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //    ViewData["NotificatorStartError"] = ex.Message;
                    //    view.UpdateView("NotificatorStartFail");
                    //}
                }
                else
                {
                    DialogControl.ShowQuery(Resources.MainView_Button_NotificatorCantStart, DialogButtons.OK);
                }
            }

            #endregion

            #region StopNotificator

            if (key == "StopNotificator")
            {
                // остановка службы нотификатора
                //Interprocess.StopService();
            }

            #endregion

            #region GetMainViewData

            if (key == "GetMainViewData")
            {
                LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                Thread asyncDataThread = new Thread(delegate { AsyncGetMainViewData(lc); });

                asyncDataThread.IsBackground = true;
                asyncDataThread.Start();

                lc.ShowLoading(false);

                if (lc.Abort)
                {
                    asyncDataThread.Abort();
                }
            }

            #endregion

            #region GoToUploadPhoto

            if (key == "GoToUploadPhoto")
            {
                MasterForm.Navigate <UploadPhotoController>();
            }

            #endregion

            #region AutoUpdate

            if (key == "AutoUpdate")
            {
                var updateHelper = new UpdateHelper((UIViewBase)ViewData["MainViewThis"]);

                updateHelper.CheckNewVersion();
            }

            #endregion

            #region ChangeStatus

            if (key == "ChangeStatus")
            {
                MasterForm.Navigate <ChangeStatusController>((string)ViewData["UserStatus"]);
            }

            #endregion

            #region CheckNewEvents

            if (key == "CheckNewEvents")
            {
                // проверка флага необходимости обновления списка событий
                if (Globals.BaseLogic.IDataLogic.GetRefreshEventsFlag() == "1")
                {
                    try
                    {
                        // загрузка событий
                        EventsGetResponse newEventsGetResponse = Globals.BaseLogic.EventsGet(false, false, false);

                        ViewData["MessagesCount"]      = string.Empty;
                        ViewData["CommentsCount"]      = string.Empty;
                        ViewData["FriendsCount"]       = string.Empty;
                        ViewData["FriendsNewsCount"]   = string.Empty;
                        ViewData["FriendsPhotosCount"] = string.Empty;
                        ViewData["WallCount"]          = string.Empty;

                        foreach (Event newEvent in newEventsGetResponse.events)
                        {
                            switch (newEvent.type)
                            {
                            case EventType.Messages:
                                ViewData["MessagesCount"] = newEvent.number.ToString();
                                break;

                            case EventType.Comments:
                                ViewData["CommentsCount"] = newEvent.number.ToString();
                                break;

                            case EventType.Friends:
                                ViewData["FriendsCount"] = newEvent.number.ToString();
                                break;

                            case EventType.FriendsNews:
                                ViewData["FriendsNewsCount"] = newEvent.number.ToString();
                                break;

                            case EventType.FriendsPhotos:
                                ViewData["FriendsPhotosCount"] = newEvent.number.ToString();
                                break;

                            case EventType.WallMessages:
                                ViewData["WallCount"] = newEvent.number.ToString();
                                break;
                            }
                        }

                        view.UpdateView("RefreshEventsInfo");
                    }
                    catch (Exception ex)
                    {
                        //
                    }
                }
            }

            #endregion



            #region GoToNews

            if (key == "GoToNews")
            {
                MasterForm.Navigate <StatusUpdatesListController>();
            }

            #endregion

            #region GoToFriends

            if (key == "GoToFriends")
            {
                MasterForm.Navigate <FriendsListController>();
            }

            #endregion

            #region GoToMessages

            if (key == "GoToMessages")
            {
                MasterForm.Navigate <MessagesChainsListController>();
            }

            #endregion

            #region GoToExtras

            if (key == "GoToExtras")
            {
                MasterForm.Navigate <ExtraController>();
            }

            #endregion
        }
Esempio n. 5
0
        private void AsyncGetMainViewData(LoadingControlInterface lc)
        {
            bool isRefresh = (Configuration.AutoUpdateAtStart || (string)ViewData["IsRefreshMainViewData"] == "1");

            // загрузка данных главной страницы
            try
            {
                lc.Current = 5;

                // загрузка событий
                EventsGetResponse newEventsGetResponse = Globals.BaseLogic.EventsGet(isRefresh, false, true);
                lc.Current = 10;

                FillEventsListModel(newEventsGetResponse);
                view.UpdateView("RefreshEventsInfo");

                if (lc.Abort)
                {
                    isRefresh = false;
                }

                // загрузка профиля
                User user = Globals.BaseLogic.GetAuthorizedUserInfo(isRefresh, false);
                lc.Current = 20;

                ViewData["UserName"]   = user.FirstName + " " + user.LastName;
                ViewData["UserStatus"] = user.Status;
                view.UpdateView("RefreshUserInfo");

                if (lc.Abort)
                {
                    isRefresh = false;
                }

                //загрузка аватара
                bool res = Globals.BaseLogic.ICommunicationLogic.LoadImage(user.Photo200px, HttpUtility.GetMd5Hash(user.Photo200px), isRefresh, _afterLoadImageEventHandler, UISettings.CalcPix(50), 0, "int");
                lc.Current = 30;

                if (res)
                {
                    ViewData["AvatarPath"] = SystemConfiguration.AppInstallPath + "//Cache//Files//" + HttpUtility.GetMd5Hash(user.Photo200px);
                }
                else
                {
                    ViewData["AvatarPath"] = string.Empty;
                }

                view.UpdateView("RefreshAvatarFromCache");

                // прогружаем очередь...
                var t = new Thread(delegate { Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary(); })
                {
                    IsBackground = true
                };

                t.Start();
            }
            catch (VKException ex)
            {
                string error = ExceptionTranslation.TranslateException(ex);

                if (!String.IsNullOrEmpty(error))
                {
                    ViewData["GetError"] = error;

                    view.UpdateView("GetFail");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                        MasterForm.Navigate <LoginController>();
                    }
                }

                // если не обновились, грузим из кэша
                try
                {
                    // загрузка событий
                    EventsGetResponse newEventsGetResponse = Globals.BaseLogic.EventsGet(false, false, true);
                    lc.Current = 40;

                    FillEventsListModel(newEventsGetResponse);
                    view.UpdateView("RefreshEventsInfo");

                    // профиль
                    User user = Globals.BaseLogic.GetAuthorizedUserInfo(false, false);
                    lc.Current = 50;

                    ViewData["UserName"]   = user.FirstName + " " + user.LastName;
                    ViewData["UserStatus"] = user.Status;

                    view.UpdateView("RefreshUserInfo");

                    // аватар
                    bool res = Globals.BaseLogic.ICommunicationLogic.LoadImage(user.Photo200px, HttpUtility.GetMd5Hash(user.Photo200px), false, _afterLoadImageEventHandler, UISettings.CalcPix(50), 0, "int");
                    lc.Current = 60;

                    if (res)
                    {
                        ViewData["AvatarPath"] = SystemConfiguration.AppInstallPath + "//Cache//Files//" + HttpUtility.GetMd5Hash(user.Photo200px);
                    }
                    else
                    {
                        ViewData["AvatarPath"] = string.Empty;
                    }

                    view.UpdateView("RefreshAvatarFromCache");
                }
                catch (Exception e)
                {
                    DebugHelper.WriteLogEntry(e, "Error reading from cache");
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["GetError"] = Resources.OutOfMemory;
                view.UpdateView("GetFail");
            }
            catch (Exception ex)
            {
                DebugHelper.WriteLogEntry(ex.Message);
            }

            // прогрузить остальные данные при старте
            if (((string)ViewData["IsFirstStart"]).Equals("1") && Configuration.AutoUpdateAtStart)
            {
                try
                {
                    // список друзей
                    if (lc.Abort)
                    {
                        isRefresh = false;
                    }

                    Globals.BaseLogic.LoadFriendsList(isRefresh, false);
                    lc.Current = 70;

                    // список обновлений статусов
                    if (lc.Abort)
                    {
                        isRefresh = false;
                    }

                    Globals.BaseLogic.LoadActivityDataList(25, isRefresh, false);
                    lc.Current = 80;

                    // список комментариев к фотографиям пользователя
                    if (lc.Abort)
                    {
                        isRefresh = false;
                    }

                    Globals.BaseLogic.LoadPhotosComments(25, isRefresh, false);
                    lc.Current = 90;

                    // список заголовков цепочек сообщений пользователя
                    if (lc.Abort)
                    {
                        isRefresh = false;
                    }

                    Globals.BaseLogic.GetShortCorrespondence(isRefresh, false);
                    lc.Current = 95;
                }
                catch (VKException ex)
                {
                    DebugHelper.WriteLogEntry("Can't download data at start: " + ex.LocalizedMessage + ex.StackTrace);
                }
                catch (OutOfMemoryException ex)
                {
                    DebugHelper.WriteLogEntry("Can't download data at start: " + ex.Message + ex.StackTrace);
                }
                catch (Exception ex)
                {
                    DebugHelper.WriteLogEntry("Can't download data at start: " + ex.Message);
                }
            }

            lc.Current = 100;
        }
Esempio n. 6
0
        protected override void OnViewStateChanged(string key)
        {
            #region GetCurrentStatus

            if (key == "GetCurrentStatus")
            {
                try
                {
                    User currentUser = Globals.BaseLogic.GetAuthorizedUserInfo(true, false);
                    ViewData["LastStatus"] = currentUser.Status;
                }
                catch
                {
                    //
                }
            }

            #endregion

            #region LoadList

            if (key == "LoadList")
            {
                bool isRefrsh        = Convert.ToBoolean(ViewData["IsRefresh"]);
                bool allowReloadData = ViewData["AllowReloadData"] == null || Convert.ToBoolean(ViewData["AllowReloadData"]);

                ViewData["AllowReloadData"] = null;

                if (isRefrsh)
                {
                    if (allowReloadData)
                    {
                        LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                        var asyncDataThread = new Thread(() => AsyncGetViewData(lc))
                        {
                            IsBackground = true
                        };
                        asyncDataThread.Start();

                        lc.ShowLoading(true);

                        if (lc.Abort)
                        {
                            asyncDataThread.Abort();
                        }
                    }
                }
                else
                {
                    try
                    {
                        ActivityResponse newActivityResponse = Globals.BaseLogic.LoadUserActivityDataList(25, false, false);

                        if (newActivityResponse != null)
                        {
                            FillListModel(newActivityResponse, true);

                            Globals.BaseLogic.ICommunicationLogic.ClearImagesInDictionary();
                        }
                        else
                        {
                            view.Model.Statuses.Clear();
                        }

                        ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                    finally
                    {
                        //ViewData["AllowReloadData"] = null;
                    }
                }

                //ViewData["AllowReloadData"] = null;
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion


            #region key == "LoadPhotoFromDisk"

            if (key == "LoadPhotoFromDisk")
            {
                try
                {
                    string fileName = SystemConfiguration.AppInstallPath + @"\Cache\Files\image.jpg";

                    //IImage newIImage;
                    //System.Drawing.Size imageSize;

                    //int displayAreaWidth = (int)view.ViewData["DisplayAreaWidth"];
                    //int displayAreaHeight = (int)view.ViewData["DisplayAreaHeight"];
                    //displayAreaWidth -= UISettings.CalcPix(10);
                    //displayAreaHeight -= UISettings.CalcPix(10);

                    SelectPictureDialog newSelectPictureDialog = new SelectPictureDialog();
                    newSelectPictureDialog.Filter = Resources.UploadPhoto_Controller_newOpenFileDialog_Filter;

                    if (newSelectPictureDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        if (File.Exists(newSelectPictureDialog.FileName))
                        {
                            int maxLinearSize;

                            switch (Configuration.ImageMaxSize)
                            {
                            case ImageMaxSizeTypes.Res640X480:
                                maxLinearSize = 640;
                                break;

                            default:
                                maxLinearSize = ImageHelper.ImageMaxLinearSize;
                                break;
                            }

                            ImageHelper.PreProcessImageFile(newSelectPictureDialog.FileName, fileName, maxLinearSize);

                            // ???
                            //Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero();

                            //newIImage = (IImage)ViewData["Image"];
                            //ViewData["Image"] = ViewData["EmptyImage"];

                            //if (newIImage != null)
                            //{
                            //    Marshal.FinalReleaseComObject(newIImage);
                            //}

                            //ImageHelper.SaveScaledImage((string)ViewData["ImageFile"], (string)ViewData["ThumbImageFile"], (int)Math.Min(displayAreaWidth, displayAreaHeight), Globals.BaseLogic.IDataLogic.GetUplPhtViewPhtRtnAngl());

                            //ImageHelper.LoadImageFromFile((string)ViewData["ThumbImageFile"], out newIImage, out imageSize);

                            //ViewData["Image"] = newIImage;
                            //ViewData["ImageWidth"] = imageSize.Width;
                            //ViewData["ImageHeight"] = imageSize.Height;

                            // ???
                            //Globals.BaseLogic.IDataLogic.SetUplPhtViewHasMdfPht(true);

                            MasterForm.Navigate <SharePhotoController>();
                        }
                    }
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

                    DebugHelper.WriteLogEntry("ShareController.LoadPhotoFromDisk OutOfMemoryException Message: " + ex.Message);
                    DebugHelper.WriteLogEntry("ShareController.LoadPhotoFromDisk OutOfMemoryException StackTrace: " + ex.StackTrace);
                }
                catch (Exception ex)
                {
                    ViewData["ResponseMessage"] = Resources.ErrorMessages_OperationIsDoneUnsuccsessfully;

                    DebugHelper.WriteLogEntry("ShareController.LoadPhotoFromDisk Exception Message: " + ex.Message);
                    DebugHelper.WriteLogEntry("ShareController.LoadPhotoFromDisk Exception StackTrace: " + ex.StackTrace);
                }
                finally
                {
                    view.UpdateView("MainResponse");
                }
            }

            #endregion

            #region key == "SnapPhotoWithinCamera"

            if (key == "SnapPhotoWithinCamera")
            {
                try
                {
                    string fileName = SystemConfiguration.AppInstallPath + @"\Cache\Files\image.jpg";

                    //IImage newIImage;
                    //System.Drawing.Size imageSize;

                    //int displayAreaWidth = (int)view.ViewData["DisplayAreaWidth"];
                    //int displayAreaHeight = (int)view.ViewData["DisplayAreaHeight"];
                    //displayAreaWidth -= UISettings.CalcPix(10);
                    //displayAreaHeight -= UISettings.CalcPix(10);

                    CameraCaptureDialog newCameraCaptureDialog = new Microsoft.WindowsMobile.Forms.CameraCaptureDialog();
                    newCameraCaptureDialog.Mode = Microsoft.WindowsMobile.Forms.CameraCaptureMode.Still;

                    // На некоторых телефонах в камере кнопка "Отмена" может не обрабатываться корректно.
                    // Надатие на эту кнопку на Philips приводит к исключению, его и игнорируем.
                    DialogResult result = DialogResult.Cancel;
                    try
                    {
                        result = newCameraCaptureDialog.ShowDialog();
                    }
                    catch (InvalidOperationException)
                    {
                        result = DialogResult.Cancel;
                    }

                    if (result == System.Windows.Forms.DialogResult.OK)
                    {
                        if (File.Exists(newCameraCaptureDialog.FileName))
                        {
                            int maxLinearSize;

                            switch (Configuration.ImageMaxSize)
                            {
                            case ImageMaxSizeTypes.Res640X480:
                                maxLinearSize = 640;
                                break;

                            default:
                                maxLinearSize = ImageHelper.ImageMaxLinearSize;
                                break;
                            }

                            ImageHelper.PreProcessImageFile(newCameraCaptureDialog.FileName, fileName, maxLinearSize);

                            // ???
                            //Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero();

                            //newIImage = (IImage)ViewData["Image"];
                            //ViewData["Image"] = ViewData["EmptyImage"];

                            //if (newIImage != null)
                            //{
                            //    Marshal.FinalReleaseComObject(newIImage);
                            //}

                            //ImageHelper.SaveScaledImage((string)ViewData["ImageFile"], (string)ViewData["ThumbImageFile"], (int)Math.Min(displayAreaWidth, displayAreaHeight), Globals.BaseLogic.IDataLogic.GetUplPhtViewPhtRtnAngl());

                            //ImageHelper.LoadImageFromFile((string)ViewData["ThumbImageFile"], out newIImage, out imageSize);

                            //ViewData["Image"] = newIImage;
                            //ViewData["ImageWidth"] = imageSize.Width;
                            //ViewData["ImageHeight"] = imageSize.Height;

                            //Globals.BaseLogic.IDataLogic.SetUplPhtViewHasMdfPht(true);

                            File.Delete(newCameraCaptureDialog.FileName);

                            MasterForm.Navigate <SharePhotoController>();
                        }
                    }
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

                    DebugHelper.WriteLogEntry("ShareController.SnapPhotoWithinCamera OutOfMemoryException Message: " + ex.Message);
                    DebugHelper.WriteLogEntry("ShareController.SnapPhotoWithinCamera OutOfMemoryException StackTrace: " + ex.StackTrace);
                }
                catch (Exception ex)
                {
                    ViewData["ResponseMessage"] = Resources.ErrorMessages_OperationIsDoneUnsuccsessfully;

                    DebugHelper.WriteLogEntry("ShareController.SnapPhotoWithinCamera Exception Message: " + ex.Message);
                    DebugHelper.WriteLogEntry("ShareController.SnapPhotoWithinCamera Exception StackTrace: " + ex.StackTrace);
                }
                finally
                {
                    view.UpdateView("MainResponse");
                }
            }

            #endregion



            #region ChangeStatus

            if (key == "ChangeStatus")
            {
                MasterForm.Navigate <ChangeStatusController>();
            }

            #endregion



            #region переходы

            if (key == "GoToNews")
            {
                MasterForm.Navigate <StatusUpdatesListController>();
            }

            if (key == "GoToMessages")
            {
                MasterForm.Navigate <MessagesChainsListController>();
            }

            if (key == "GoToFriends")
            {
                MasterForm.Navigate <FriendsListController>();
            }

            if (key == "GoToExtras")
            {
                MasterForm.Navigate <ExtraController>();
            }

            #endregion



            #region ListActualization

            if (key == "ListActualization")
            {
                ViewData["AllowReloadData"] = null;

                string currentID = Globals.BaseLogic.IDataLogic.GetUid();
                string listID    = (string)ViewData["ListID"];

                if (currentID != listID)
                {
                    ViewData["IsRefresh"] = false;
                    OnViewStateChanged("LoadList");
                }
            }

            #endregion

            #region UserActivityCacheModification

            if (key == "UserActivityCacheModification")
            {
                if (Configuration.DataRenewType != DataRenewVariants.UpdateAlways)
                {
                    Globals.BaseLogic.UpdateCacheOfUserActivities((string)view.ViewData["ReceivedStatus"],
                                                                  Resources.Empty_Status, Resources.MessageI);
                    OnViewStateChanged("LoadList");
                }
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 7
0
        private void AsyncGetViewData(LoadingControlInterface lc)
        {
            lc.Current = 0;

            ActivityResponse newActivityResponse = null;
            User             currentUser         = null;

            try
            {
                lc.Current = 5;

                // загружаем прошлые статусы пользователя
                newActivityResponse = Globals.BaseLogic.LoadUserActivityDataList(25, true, false);
                lc.Current          = 50;

                currentUser = Globals.BaseLogic.GetAuthorizedUserInfo(true, false);
                lc.Current  = 95;
            }
            catch (VKException ex)
            {
                //timerKeepAwake.Enabled = false;
                string error = ExceptionTranslation.TranslateException(ex);

                if (!string.IsNullOrEmpty(error))
                {
                    ViewData["LoadListResponseMessage"] = error;
                    view.UpdateView("LoadListResponseNegative");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        //Globals.BaseLogic.IDataLogic.SetToken(string.Empty);
                        //MasterForm.Navigate<LoginController>();

                        view.UpdateView("GoToLogin");
                    }

                    //newActivityResponse = LoadDataFromCache();
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["GetViewDataResponseMessage"] = Resources.OutOfMemory;
                view.UpdateView("GetViewDataResponseNegative");
            }

            if (newActivityResponse != null)
            {
                FillListModel(newActivityResponse, true);

                if (currentUser != null)
                {
                    UpdateListModel(currentUser.Status);
                }
            }
            else
            {
                //view.Model.Statuses.Clear();
            }

            ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

            view.UpdateView("LoadListResponse");

            lc.Current = 100;
        }
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                    Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        MessShortCorrespondence newMessShortCorrespondence = Globals.BaseLogic.GetShortCorrespondence(false, false);

                        if (newMessShortCorrespondence != null)
                        {
                            FillListModel(newMessShortCorrespondence);

                            Globals.BaseLogic.ICommunicationLogic.ClearImagesInDictionary();
                        }
                        else
                        {
                            view.Model.Clear();
                        }

                        ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                }
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region ChangeReceiver

            if (key == "ChangeReceiver")
            {
                using (new WaitWrapper(false))
                {
                    MasterForm.Navigate <FriendsSearchListController>("");
                }
            }

            #endregion

            #region перехеды

            #region GoToNews

            if (key == "GoToNews")
            {
                MasterForm.Navigate <StatusUpdatesListController>();
            }

            #endregion

            #region GoToFriends

            if (key == "GoToFriends")
            {
                MasterForm.Navigate <FriendsListController>();
            }

            #endregion

            #region GoToPhotos

            if (key == "GoToPhotos")
            {
                MasterForm.Navigate <ShareController>();
            }

            #endregion

            #region GoToExtras

            if (key == "GoToExtras")
            {
                MasterForm.Navigate <ExtraController>();
            }

            #endregion

            #endregion



            #region ListActualization

            if (key == "ListActualization")
            {
                //string currentID = Globals.BaseLogic.IDataLogic.GetUid();
                //string listID = (string)ViewData["ListID"];

                //if (currentID != listID)
                //{
                //    ViewData["IsRefresh"] = false;

                //    OnViewStateChanged("LoadList");
                //}

                ViewData["IsRefresh"] = false;
                OnViewStateChanged("LoadList");
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 9
0
        private void AsyncGetViewData(LoadingControlInterface lc)
        {
            lc.Current = 0;

            // приходит через initialize
            int uid = Convert.ToInt32((string)ViewData["UserID"]);
            //ViewData["UserName"] = Globals.BaseLogic.GetFriendName(uid.ToString());

            MessUserCorrespondence newMessUserCorrespondence = null;

            try
            {
                lc.Current = 5;

                newMessUserCorrespondence = Globals.BaseLogic.RefreshUserCorrespondence(uid, true, false, null);
                lc.Current = 95;
            }
            catch (VKException ex)
            {
                //timerKeepAwake.Enabled = false;
                string error = ExceptionTranslation.TranslateException(ex);

                if (!string.IsNullOrEmpty(error))
                {
                    //newMessUserCorrespondence = LoadDataFromCache(uid);

                    ViewData["LoadListResponseMessage"] = error;
                    view.UpdateView("LoadListResponseNegative");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                        view.UpdateView("GoToLogin");;
                    }
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["LoadListResponseMessage"] = Resources.OutOfMemory;
                view.UpdateView("LoadListResponseNegative");
            }

            if (newMessUserCorrespondence != null)
            {
                FillListModel(newMessUserCorrespondence);
            }
            else
            {
                //view.Model.Clear();
            }

            //ViewData["MessageDraftInput"] = DraftMessagesDataIO.GetDraftMessage(uid);

            view.UpdateView("LoadListResponse");

            // запускаем поток || прогрузки фотографий
            var t = new Thread(delegate { Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary(); })
            {
                IsBackground = true
            };

            t.Start();

            lc.Current = 100;
        }
Esempio n. 10
0
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                //LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                //var asyncDataThread = new Thread(() => AsyncGetViewData(lc)) {IsBackground = true};
                //asyncDataThread.Start();

                //lc.ShowLoading(true);

                //if (lc.Abort)
                //{
                //    asyncDataThread.Abort();
                //}

                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                    Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        FriendsListResponse newFriendsListResponse = Globals.BaseLogic.LoadFriendsList(false, false);

                        if (newFriendsListResponse != null)
                        {
                            //FriendsListResponse additionalFrendListResponse = LoadAdditionalDataFromCache();

                            ViewData["OriginalFrendListResponse"] = newFriendsListResponse;
                            //ViewData["AdditionalFrendListResponse"] = additionalFrendListResponse;

                            FillListModel(newFriendsListResponse, string.Empty);

                            Globals.BaseLogic.ICommunicationLogic.ClearImagesInDictionary();
                        }
                        else
                        {
                            //view.Model.Clear();
                        }

                        //ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                }
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region UserChoise

            if (key == "UserChoise")
            {
                if ((string)ViewData["Uid"] != string.Empty)
                {
                    using (new WaitWrapper(false))
                    {
                        //var uid = (string) ViewData["Addressee"];
                        MasterForm.Navigate <SendMessageController>((string)ViewData["BackLink"], ViewData["Uid"]);
                    }
                }
            }

            #endregion

            #region GoBack

            if (key == "GoBack")
            {
                using (new WaitWrapper(false))
                {
                    NavigationService.GoBack();
                }
            }

            #endregion

            #region FilterFriendList

            if (key == "FilterFriendList")
            {
                using (new WaitWrapper(false))
                {
                    if ((string)ViewData["FilterString"] == string.Empty)
                    {
                        ViewData["OriginalModel"] = OriginalModel;
                        view.UpdateView("ResetState");
                    }
                    else
                    {
                        FillListModel((FriendsListResponse)ViewData["OriginalFrendListResponse"],
                                      (string)ViewData["FilterString"]);
                        ViewData["OriginalModel"] = view.Model;
                        view.UpdateView("ResetState");
                    }
                }
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 11
0
        private void AsyncGetViewData(LoadingControlInterface lc)
        {
            lc.Current = 0;

            FriendsListResponse newFriendsListResponse = null;

            //bool isRefresh = Convert.ToBoolean((string)ViewData["IsRefresh"]);

            try
            {
                lc.Current = 5;

                //if (lc.Abort)
                //{
                //    isRefresh = false;
                //}

                newFriendsListResponse = Globals.BaseLogic.LoadFriendsList(true, false);
                lc.Current             = 95;
            }
            catch (VKException ex)
            {
                string error = ExceptionTranslation.TranslateException(ex);

                if (!string.IsNullOrEmpty(error))
                {
                    ViewData["LoadListResponseMessage"] = error;
                    view.UpdateView("LoadListResponseNegative");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                        view.UpdateView("GoToLogin");
                    }
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["LoadListResponseMessage"] = Resources.OutOfMemory;
                view.UpdateView("LoadListResponseNegative");
            }

            if (newFriendsListResponse != null)
            {
                ViewData["OriginalFrendListResponse"] = newFriendsListResponse;

                FillListModel(newFriendsListResponse, string.Empty);
            }

            view.UpdateView("LoadListResponse");

            //// запускаем поток || прогрузки фотографий
            //var t = new Thread(() => Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary())
            //{
            //    IsBackground = true
            //};

            //t.Start();

            lc.Current = 100;
        }
Esempio n. 12
0
        protected override void OnViewStateChanged(string key)
        {
            #region InitializeSettings

            if (key == "InitializeSettings")
            {
                using (new WaitWrapper())
                {
                    // если приложение запущено при остановленном нотификаторе, то очищаем кэш
                    // это единственное место, где осуществляется это действие
                    //if (!Interprocess.IsServiceRunning)
                    {
                        Cache.DeleteEntryFromCache(string.Empty, "ShortActivityResponse");
                        Cache.DeleteEntryFromCache(string.Empty, "ShortUpdatesPhotosResponse");
                        Cache.DeleteEntryFromCache(string.Empty, "ShortWallResponse");
                        Cache.DeleteEntryFromCache(string.Empty, "ShortPhotosCommentsRespounse");
                    }

                    Configuration.LoadConfigSettings();
                    Configuration.SaveConfigSettings();

                    #region старт/стоп нотификатора

                    if (Configuration.BackgroundNotification != BackgroundNotificationTypes.Off)
                    {
                        Globals.BaseLogic.IDataLogic.SetNtfAutorun();

                        OnViewStateChanged("StartNotificator");
                    }
                    else
                    {
                        OnViewStateChanged("StopNotificator");

                        Globals.BaseLogic.IDataLogic.DelNtfAutorun();
                    }

                    OnViewStateChanged("StopNotificator");

                    #endregion
                }
            }

            #endregion

            #region StartNotificator

            if (key == "StartNotificator")
            {
                if (!string.IsNullOrEmpty(Globals.BaseLogic.IDataLogic.GetToken()))
                {
                    // запуск службы нотификатора
                    try
                    {
                        //if (!Interprocess.IsServiceRunning)
                        //{
                        //    Interprocess.StartService();
                        //}
                    }
                    catch (Exception ex)
                    {
                        ViewData["NotificatorStartError"] = ex.Message;
                        view.UpdateView("NotificatorStartFail");
                    }
                }
                else
                {
                    DialogControl.ShowQuery(Resources.MainView_Button_NotificatorCantStart, DialogButtons.OK);
                }
            }

            #endregion

            #region StopNotificator

            if (key == "StopNotificator")
            {
                // остановка службы нотификатора
                //Interprocess.StopService();
            }

            #endregion

            #region GetViewData

            if (key == "GetViewData")
            {
                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading((string)ViewData["NeedChangeText"] != "1" ? Resources.DataLoading : Resources.FirstDataLoading);
                    ViewData["NeedChangeText"] = "0";

                    timerKeepAwake.Enabled = true;

                    Thread asyncDataThread = new Thread(delegate
                    {
                        try
                        {
                            timerKeepAwake.Enabled = true;

                            AsyncGetViewData(lc);
                        }
                        finally
                        {
                            timerKeepAwake.Enabled = false;
                        }
                    });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        ActivityResponse      newActivityResponse      = Globals.BaseLogic.LoadActivityDataList(25, false, false);
                        UpdatesPhotosResponse newUpdatesPhotosResponse = Globals.BaseLogic.LoadUpdatesPhotos(25, false, false);

                        if (newActivityResponse != null)
                        {
                            FillListModel(newActivityResponse, false);
                        }
                        else
                        {
                            view.Model.Statuses.Clear();
                        }

                        if (newUpdatesPhotosResponse != null)
                        {
                            FillListModel(newUpdatesPhotosResponse, false);
                        }
                        else
                        {
                            view.Model.Photos.Clear();
                        }

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        // гасим
                    }
                }
            }

            #endregion

            #region Check AutoLogin

            if (key == "CheckAutoLogin")
            {
                try
                {
                    using (new WaitWrapper())
                    {
                        //Globals.BaseLogic.AutoLogin();
                    }

                    Initialize("AutoLoginSuccess");
                }
                catch (VKException ex)
                {
                    string message = ExceptionTranslation.TranslateException(ex);

                    //if (!string.IsNullOrEmpty(message))
                    //{
                    //    if (ex.LocalizedMessage == ExceptionMessage.IncorrectLoginOrPassword)
                    //    {
                    //        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                    //        MasterForm.Navigate<LoginController>("IncorrectLoginOrPassword");
                    //    }
                    //    else if (ex.LocalizedMessage == ExceptionMessage.NoSavedToken)
                    //    {
                    //        MasterForm.Navigate<LoginController>("NoSavedToken");
                    //    }
                    //    else if (ex.LocalizedMessage == ExceptionMessage.UnknownError)
                    //    {
                    //        MasterForm.Navigate<LoginController>("UnknownError");
                    //    }
                    //    else
                    //    {
                    //        Initialize("LoginSuccess");
                    //    }
                    //}
                }
                catch (OutOfMemoryException)
                {
                    DialogControl.ShowQuery(Resources.OutOfMemory, DialogButtons.OK);
                }
            }

            #endregion

            #region AutoUpdate

            if (key == "AutoUpdate")
            {
                UpdateHelper updateHelper = new UpdateHelper((UIViewBase)ViewData["StatusUpdatesListView"]);
                updateHelper.CheckNewVersion();
            }

            #endregion

            #region GoToSendMessage

            if (key == "GoToSendMessage")
            {
                MasterForm.Navigate <SendMessageController>("FriendsStatus", ViewData["Uid"]);
            }

            #endregion



            // верхнее меню

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region GoToPhotoComments

            if (key == "GoToPhotoComments")
            {
                MasterForm.Navigate <PhotoCommentsUpdatesListController>();
            }

            #endregion



            #region GoToMessages

            if (key == "GoToMessages")
            {
                MasterForm.Navigate <MessagesChainsListController>();
            }

            #endregion

            #region GoToFriends

            if (key == "GoToFriends")
            {
                MasterForm.Navigate <FriendsListController>();
            }

            #endregion

            #region GoToPhoto

            if (key == "GoToPhotos")
            {
                //MasterForm.Navigate<UploadPhotoController>();
                MasterForm.Navigate <ShareController>();
            }

            #endregion

            #region GoDetailedView

            if (key == "GoDetailedView")
            {
                int    uid           = Convert.ToInt32((string)ViewData["Uid"]);
                int    photoID       = Convert.ToInt32((string)ViewData["PhotoID"]);
                string largePhotoURL = (string)ViewData["LargePhotoURL"];

                if (uid > 0 && photoID > 0)
                {
                    MasterForm.Navigate <ImageCommentController>("Load", uid.ToString(), photoID.ToString(), largePhotoURL);
                }
            }

            #endregion

            #region GoToExtras

            if (key == "GoToExtras")
            {
                MasterForm.Navigate <ExtraController>();
            }

            #endregion



            #region ListActualization

            if (key == "ListActualization")
            {
                // на этой форме необходимости проверять нет, так как переход Login -> this вызывает Reload списка

                //string currentID = Globals.BaseLogic.IDataLogic.GetUid();
                //string listID = (string)ViewData["ListID"];

                //if (currentID != listID)
                //{
                //    OnViewStateChanged("GetViewData");
                //}
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 13
0
        private void AsyncGetViewData(LoadingControlInterface lc)
        {
            string isFirstStart = (string)ViewData["IsFirstStart"];

            ViewData["IsFirstStart"] = "0";

            lc.Current = 2;

            ActivityResponse      newActivityResponse      = null;
            UpdatesPhotosResponse newUpdatesPhotosResponse = null;

            // первичные данные формы
            try
            {
                // загружаем новые новости
                newActivityResponse = Globals.BaseLogic.LoadActivityDataList(25, true, false);
                lc.Current          = 4;

                // загружаем новые фото
                newUpdatesPhotosResponse = Globals.BaseLogic.LoadUpdatesPhotos(25, true, false);
                lc.Current = 10;

                ViewData["FirstActivate"] = string.Empty;
            }
            catch (VKException ex)
            {
                timerKeepAwake.Enabled = false;
                string error = ExceptionTranslation.TranslateException(ex);

                if (!string.IsNullOrEmpty(error))
                {
                    ViewData["GetViewDataResponseMessage"] = error;
                    view.UpdateView("GetViewDataResponseNegative");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                        //view.UpdateView("GoToLogin");
                        OnViewStateChanged("GoToLogin");
                    }
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["GetViewDataResponseMessage"] = Resources.OutOfMemory;
                view.UpdateView("GetViewDataResponseNegative");
            }

            if (newActivityResponse != null)
            {
                FillListModel(newActivityResponse, true);
            }

            if (newUpdatesPhotosResponse != null)
            {
                FillListModel(newUpdatesPhotosResponse, true);
            }

            ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

            view.UpdateView("LoadListResponse");

            // прочие данные при старте приложения
            if (isFirstStart.Equals("1") && Configuration.DataRenewType != DataRenewVariants.DontUpdate)
            {
                try
                {
                    int  totalCount;
                    int  alreadyGet;
                    bool isData;

                    // список друзей
                    Globals.BaseLogic.LoadFriendsList(true, false);
                    lc.Current = 12;

                    // список комментариев к фотографиям пользователя
                    Globals.BaseLogic.LoadPhotosComments(25, true, false);
                    lc.Current = 14;

                    // список заголовков цепочек сообщений пользователя
                    Globals.BaseLogic.GetShortCorrespondence(true, false);
                    lc.Current = 16;

                    // список статусов пользователя (для формы поделиться)
                    Globals.BaseLogic.LoadUserActivityDataList(25, true, false);
                    lc.Current = 18;

                    // список фотографий пользователя
                    Globals.BaseLogic.ReloadUserPhotos(true, false);
                    lc.Current = 20;

                    // З А Г Р У З К А   Ц Е П О Ч Е К   П Е Р Е П И С О К
                    Globals.BaseLogic.ClearMessageCorrespondence();
                    totalCount = Globals.BaseLogic.PredictCorrespondCount();
                    alreadyGet = 0;
                    isData     = false;

                    MessShortCorrespondence newMessShortCorrespondence = DataModel.Data.MessageShortCorrespondence;

                    if (newMessShortCorrespondence == null)
                    {
                        newMessShortCorrespondence = new MessShortCorrespondence();
                    }

                    MessCorrespondence newMessCorrespondence = DataModel.Data.MessageCorrespondence;

                    if (newMessCorrespondence == null)
                    {
                        newMessCorrespondence = new MessCorrespondence();
                    }

                    do
                    {
                        isData = Globals.BaseLogic.UploadNextUserCorrespond(newMessShortCorrespondence, newMessCorrespondence);

                        if (isData)
                        {
                            alreadyGet++;

                            if (totalCount > 0)
                            {
                                lc.Current = 40 - (int)(20 * (((double)(totalCount - alreadyGet)) / ((double)totalCount)));
                            }
                        }
                    }while (isData);

                    DataModel.Data.MessageCorrespondence = newMessCorrespondence;

                    // З А Г Р У З К А   К О М М Е Н Т А Р И Е В
                    Globals.BaseLogic.ClearAllPhotoComments();
                    totalCount = Globals.BaseLogic.PredictPhotoCommentsCount();
                    alreadyGet = 0;
                    isData     = false;

                    PhotosCommentsResponseHistory newPhotosCommentsRespounseHistory = DataModel.Data.PhotosCommentsResponseHistoryData;

                    if (newPhotosCommentsRespounseHistory == null)
                    {
                        newPhotosCommentsRespounseHistory = new PhotosCommentsResponseHistory();
                    }

                    PhotosCommentsResponse newPhotosCommentsRespounse = DataModel.Data.PhotosCommentsResponseData;

                    if (newPhotosCommentsRespounse == null)
                    {
                        newPhotosCommentsRespounse = new PhotosCommentsResponse();
                    }

                    UpdatesPhotosResponse nwUpdatesPhotosResponse = DataModel.Data.UpdatesPhotosResponseData;

                    if (nwUpdatesPhotosResponse == null)
                    {
                        nwUpdatesPhotosResponse = new UpdatesPhotosResponse();
                    }

                    do
                    {
                        isData = Globals.BaseLogic.UploadNextPhotoComments(newPhotosCommentsRespounseHistory, newPhotosCommentsRespounse, nwUpdatesPhotosResponse);

                        if (isData)
                        {
                            alreadyGet++;

                            if (totalCount > 0)
                            {
                                lc.Current = 60 - (int)(20 * (((double)(totalCount - alreadyGet)) / ((double)totalCount)));
                            }
                        }
                    }while (isData);

                    DataModel.Data.PhotosCommentsResponseHistoryData = newPhotosCommentsRespounseHistory;

                    // З А Г Р У З К А   П Р О Ф И Л Е Й   П О Л Ь З О В А Т Е Л Е Й
                    totalCount = Globals.BaseLogic.PredictFriendsCount();
                    alreadyGet = 0;
                    isData     = false;

                    FriendsListResponse additionalFriendsListResponse = additionalFriendsListResponse = DataModel.Data.FriendsListAdditionalResponseData;

                    if (additionalFriendsListResponse == null)
                    {
                        additionalFriendsListResponse = new FriendsListResponse();
                    }

                    FriendsListResponse oldFriendsListResponse = DataModel.Data.FriendsListResponseData;

                    if (oldFriendsListResponse == null)
                    {
                        oldFriendsListResponse = new FriendsListResponse();
                    }

                    do
                    {
                        isData = Globals.BaseLogic.GetNextFriendsInfo(true, false, additionalFriendsListResponse, oldFriendsListResponse);

                        if (isData)
                        {
                            alreadyGet++;

                            if (totalCount > 0)
                            {
                                lc.Current = 98 - (int)(38 * (((double)(totalCount - alreadyGet)) / ((double)totalCount)));
                            }
                        }
                    } while (isData);

                    DataModel.Data.FriendsListAdditionalResponseData = additionalFriendsListResponse;

                    // все фото
                    Globals.BaseLogic.DownloadAllPhotoData();

                    lc.Current = 99;
                }
                catch (VKException)
                {
                    DebugHelper.WriteLogEntry("Ошибка при загрузке данных при старте приложения");
                }
                catch (OutOfMemoryException)
                {
                    DebugHelper.WriteLogEntry("Ошибка при загрузке данных при старте приложения");
                }
                catch (Exception)
                {
                    DebugHelper.WriteLogEntry("Ошибка при загрузке данных при старте приложения");
                }
            }

            // запускаем поток || прогрузки фотографий
            var t = new Thread(delegate { Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary(); })
            {
                IsBackground = true
            };

            t.Start();

            lc.Current = 100;
        }
Esempio n. 14
0
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                    Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        int    uid           = Convert.ToInt32((string)ViewData["UserID"]);
                        int    photoID       = Convert.ToInt32((string)ViewData["PhotoID"]);
                        string largePhotoURL = (string)ViewData["LargePhotoURL"];

                        PhotosCommentsResponse newPhotosCommentsResponse = Globals.BaseLogic.LoadCommentsToPhoto(uid, photoID, 50, false, false, null);

                        if (newPhotosCommentsResponse != null)
                        {
                            FillListModel(largePhotoURL, newPhotosCommentsResponse);

                            Globals.BaseLogic.ICommunicationLogic.ClearImagesInDictionary();
                        }
                        else
                        {
                            //view.Model.Clear();

                            //NavigationService.GoBack();
                        }

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                }
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region NewComment

            if (key == "NewComment")
            {
                using (new WaitWrapper(false))
                {
                    MasterForm.Navigate <SendCommentController>(ViewData["UserID"], ViewData["PhotoID"], ViewData["LargePhotoURL"]);
                }
            }

            #endregion

            #region PutInAlbum

            if (key == "PutInAlbum")
            {
                try
                {
                    byte[] file;

                    using (
                        var newBinaryReader =
                            new BinaryReader(File.Open(SystemConfiguration.AppInstallPath + @"\Cache\Files\" +
                                                       HttpUtility.GetMd5Hash((string)ViewData["LargePhotoURL"]),
                                                       FileMode.Open)))
                    {
                        file = new byte[newBinaryReader.BaseStream.Length];
                        newBinaryReader.Read(file, 0, file.Length);
                    }

                    using (new WaitWrapper())
                    {
                        Globals.BaseLogic.UploadPhoto(file, false, false);
                    }

                    ViewData["ResponseMessage"] = Resources.UploadPhoto_Controller_ResponseMessage_ImageSuccessfullyDownloaded;
                }
                catch (VKException ex)
                {
                    string errMessage;

                    switch (ex.LocalizedMessage)
                    {
                    case ExceptionMessage.UnknownError:
                        errMessage = Resources.VK_ERRORS_UnknownError;
                        break;

                    case ExceptionMessage.ServerUnavalible:
                        errMessage = Resources.VK_ERRORS_ServerUnavalible;
                        break;

                    case ExceptionMessage.NoConnection:
                        errMessage = Resources.VK_ERRORS_NoConnection;
                        break;

                    default:
                        errMessage = string.Empty;
                        break;
                    }

                    ViewData["ResponseMessage"] = errMessage;
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

                    DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto OutOfMemoryException Message: " + ex.Message);
                    DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto OutOfMemoryException StackTrace: " + ex.StackTrace);
                }
                catch (Exception ex)
                {
                    ViewData["ResponseMessage"] = Resources.ErrorMessages_OperationIsDoneUnsuccsessfully;

                    DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto Exception Message: " + ex.Message);
                    DebugHelper.WriteLogEntry("UploadPhotoController.UploadPhoto Exception StackTrace: " + ex.StackTrace);
                }
                finally
                {
                    view.UpdateView("MainResponse");
                }
            }

            #endregion

            #region SaveOnDisk

            if (key == "SaveOnDisk")
            {
                var sfDialog = new SaveFileDialog();

                var bmp = new Bitmap(SystemConfiguration.AppInstallPath + @"\Cache\Files\" +
                                     HttpUtility.GetMd5Hash((string)ViewData["LargePhotoURL"]));

                sfDialog.Filter = "файлы jpeg (*.jpeg)|*.jpeg";

                sfDialog.FileName = Resources.DefaultFileNameToSave;
                if (sfDialog.ShowDialog() == DialogResult.OK)
                {
                    bmp.Save(sfDialog.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                }

                bmp.Dispose();
            }

            #endregion

            #region GoToSendMessage

            if (key == "GoToSendMessage")
            {
                MasterForm.Navigate <SendMessageController>("ImageDetailedView", ViewData["SenderID"], ViewData["SenderName"]);
            }

            #endregion

            #region GoBack

            if (key == "GoBack")
            {
                NavigationService.GoBack();
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 15
0
        private void AsyncGetViewData(LoadingControlInterface lc)
        {
            lc.Current = 0;

            PhotosCommentsResponse newPhotosCommentsResponse = null;

            //

            int    uid           = Convert.ToInt32((string)ViewData["UserID"]);
            int    photoID       = Convert.ToInt32((string)ViewData["PhotoID"]);
            string largePhotoURL = (string)ViewData["LargePhotoURL"];

            try
            {
                lc.Current = 5;

                newPhotosCommentsResponse = Globals.BaseLogic.LoadCommentsToPhoto(uid, photoID, 50, true, false, null);
                lc.Current = 95;
            }
            catch (VKException ex)
            {
                //timerKeepAwake.Enabled = false;
                string error = ExceptionTranslation.TranslateException(ex);

                if (!string.IsNullOrEmpty(error))
                {
                    ViewData["LoadListResponseMessage"] = error;
                    view.UpdateView("LoadListResponseNegative");

                    if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                    {
                        Globals.BaseLogic.IDataLogic.SetToken(string.Empty);

                        view.UpdateView("GoToLogin");
                    }

                    //newPhotosCommentsResponse = LoadDataFromCache(photoID);
                }
            }
            catch (OutOfMemoryException)
            {
                ViewData["LoadListResponseMessage"] = Resources.OutOfMemory;
                view.UpdateView("LoadListResponseNegative");
            }

            if (newPhotosCommentsResponse != null)
            {
                FillListModel(largePhotoURL, newPhotosCommentsResponse);
            }
            else
            {
                //view.Model.Clear();
            }

            view.UpdateView("LoadListResponse");

            // запускаем поток || прогрузки фотографий
            var t = new Thread(delegate { Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary(); })
            {
                IsBackground = true
            };

            t.Start();

            lc.Current = 100;
        }
Esempio n. 16
0
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                    Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        FriendsListResponse newFriendsListResponse = Globals.BaseLogic.LoadFriendsList(false, false);

                        if (newFriendsListResponse != null)
                        {
                            FriendsListResponse additionalFrendListResponse = LoadAdditionalDataFromCache();

                            ViewData["OriginalFrendListResponse"]   = newFriendsListResponse;
                            ViewData["AdditionalFrendListResponse"] = additionalFrendListResponse;

                            FillListModel(newFriendsListResponse, additionalFrendListResponse, string.Empty);

                            Globals.BaseLogic.ICommunicationLogic.ClearImagesInDictionary();
                        }
                        else
                        {
                            view.Model.Clear();
                        }

                        ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                }
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region GoToSendMessage

            if (key == "GoToSendMessage")
            {
                MasterForm.Navigate <SendMessageController>("FriendList", ViewData["Uid"]);
            }

            #endregion

            #region FilterFriendList

            if (key == "FilterFriendList")
            {
                using (new WaitWrapper(false))
                {
                    if ((string)ViewData["FilterString"] == string.Empty)
                    {
                        ViewData["OriginalModel"] = OriginalModel;
                        view.UpdateView("ResetState");
                    }
                    else
                    {
                        FillListModel((FriendsListResponse)ViewData["OriginalFrendListResponse"], (FriendsListResponse)ViewData["AdditionalFrendListResponse"], (string)ViewData["FilterString"]);
                        ViewData["OriginalModel"] = view.Model;
                        view.UpdateView("ResetState");
                    }
                }
            }

            #endregion

            #region CallNumber

            if (key == "CallNumber")
            {
                try
                {
                    if (ViewData["ABTelephone"] != null)
                    {
                        Phone phone = new Phone();

                        phone.Talk((string)ViewData["ABTelephone"], true);
                    }
                }
                catch
                {
                    // CallNumberResponseMessage_Unsuccess
                    ViewData["CallNumberResponseMessage"] = Resources.CallNumberResponseMessage_Unsuccess;
                    view.UpdateView("CallNumberResponse");
                }
            }

            #endregion

            #region SaveNumber

            if (key == "SaveNumber")
            {
                using (OutlookSession os = new OutlookSession())
                {
                    try
                    {
                        if (ViewData["ABFirstName"] != null && ViewData["ABLastName"] != null && ViewData["ABTelephone"] != null)
                        {
                            Contact contact = null;

                            foreach (var val in os.Contacts.Items)
                            {
                                if (val.FirstName == (string)ViewData["ABFirstName"] && val.LastName == (string)ViewData["ABLastName"])
                                {
                                    contact = val;
                                }
                            }

                            if (contact == null)
                            {
                                contact = new Contact();

                                contact.FirstName = (string)ViewData["ABFirstName"];
                                contact.LastName  = (string)ViewData["ABLastName"];

                                os.Contacts.Items.Add(contact);
                            }

                            contact.MobileTelephoneNumber = (string)ViewData["ABTelephone"];

                            if (ViewData["ABBD"] != null)
                            {
                                contact.Birthday = (DateTime)ViewData["ABBD"];
                            }

                            if (ViewData["ImagePath"] != null)
                            {
                                contact.SetPicture((string)ViewData["ImagePath"]);
                            }

                            contact.Update();

                            ViewData["SaveNumberResponseMessage"] = Resources.SaveNumberResponseMessage_Succsess;
                        }
                        else
                        {
                            throw new Exception();
                        }
                    }
                    catch (Exception)
                    {
                        ViewData["SaveNumberResponseMessage"] = Resources.SaveNumberResponseMessage_Unsuccess;
                    }
                }

                view.UpdateView("SaveNumberResponse");

                //contact.B

                //contact.MobileTelephoneNumber

                //using (new WaitWrapper(false))
                //{
                //    if ((string)ViewData["FilterString"] == string.Empty)
                //    {
                //        ViewData["OriginalModel"] = OriginalModel;
                //        view.UpdateView("ResetState");
                //    }
                //    else
                //    {
                //        FillListModel((FriendsListResponse) ViewData["OriginalFrendListResponse"], null, (string) ViewData["FilterString"]);
                //        ViewData["OriginalModel"] = view.Model;
                //        view.UpdateView("ResetState");
                //    }
                //}
            }

            #endregion


            #region GoToNews

            if (key == "GoToNews")
            {
                MasterForm.Navigate <StatusUpdatesListController>();
            }

            #endregion

            #region GoToMessages

            if (key == "GoToMessages")
            {
                MasterForm.Navigate <MessagesChainsListController>();
            }

            #endregion

            #region GoToPhotos

            if (key == "GoToPhotos")
            {
                MasterForm.Navigate <ShareController>();
            }

            #endregion

            #region GoToExtras

            if (key == "GoToExtras")
            {
                MasterForm.Navigate <ExtraController>();
            }

            #endregion



            #region ListActualization

            if (key == "ListActualization")
            {
                string currentID = Globals.BaseLogic.IDataLogic.GetUid();
                string listID    = (string)ViewData["ListID"];

                if (currentID != listID)
                {
                    ViewData["IsRefresh"] = false;

                    OnViewStateChanged("LoadList");
                }
            }

            #endregion

            #region GoToSettings

            if (key == "GoToSettings")
            {
                using (new WaitWrapper(false))
                {
                    Configuration.LoadConfigSettings();
                    MasterForm.Navigate <SettingsController>();
                }
            }

            #endregion

            #region GoToUserData

            if (key == "GoToUserData")
            {
                using (new WaitWrapper(false))
                {
                    MasterForm.Navigate <UserDataController>();
                }
            }

            #endregion

            #region GoToAbout

            if (key == "GoToAbout")
            {
                using (new WaitWrapper(false))
                {
                    MasterForm.Navigate <AboutController>();
                }
            }

            #endregion

            #region GoToExit

            if (key == "GoToExit")
            {
                using (new WaitWrapper(false))
                {
                    if (SystemConfiguration.DeleteOnExit)
                    {
                        Globals.BaseLogic.IDataLogic.ClearPass();
                    }
                    Application.Exit();
                }
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 17
0
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                    Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        PhotosCommentsResponse newPhotosCommentsResponse = Globals.BaseLogic.LoadPhotosComments(25, false, false); // комментарии

                        if (newPhotosCommentsResponse != null)
                        {
                            FillListModel(newPhotosCommentsResponse);

                            Globals.BaseLogic.ICommunicationLogic.ClearImagesInDictionary();
                        }
                        else
                        {
                            view.Model.Clear();
                        }

                        ViewData["ListID"] = Globals.BaseLogic.IDataLogic.GetUid(); // сохраняем ID пользователя для которого был построен список

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                }
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region GoToStatuses

            if (key == "GoToStatuses")
            {
                MasterForm.Navigate <StatusUpdatesListController>();
            }

            #endregion

            #region GoToSendMessage

            if (key == "GoToSendMessage")
            {
                MasterForm.Navigate <SendMessageController>("PhotoComments", ViewData["SenderID"], ViewData["SenderName"]);
            }

            #endregion

            #region GoDetailedView

            if (key == "GoDetailedView")
            {
                int    uid           = Convert.ToInt32((string)ViewData["Uid"]);
                int    photoID       = Convert.ToInt32((string)ViewData["PhotoID"]);
                string largePhotoURL = (string)ViewData["LargePhotoURL"];

                if (uid > 0 && photoID > 0 && !string.IsNullOrEmpty(largePhotoURL))
                {
                    MasterForm.Navigate <ImageCommentController>("Load", uid.ToString(), photoID.ToString(), largePhotoURL);
                }
            }

            #endregion

            if (key == "NewComment")
            {
                int uid     = Convert.ToInt32((string)ViewData["Uid"]);
                int photoID = Convert.ToInt32((string)ViewData["PhotoID"]);
                var url     = (string)ViewData["LargePhotoURL"];

                if (uid > 0 && photoID > 0)
                {
                    MasterForm.Navigate <SendCommentController>(uid.ToString(), photoID.ToString(), url);
                }
            }


            #region GoToMessages

            if (key == "GoToMessages")
            {
                MasterForm.Navigate <MessagesChainsListController>();
            }

            #endregion

            #region GoToFriends

            if (key == "GoToFriends")
            {
                MasterForm.Navigate <FriendsListController>();
            }

            #endregion

            #region GoToPhotos

            if (key == "GoToPhotos")
            {
                MasterForm.Navigate <ShareController>();
            }

            #endregion

            #region GoToExtras

            if (key == "GoToExtras")
            {
                MasterForm.Navigate <ExtraController>();
            }

            #endregion



            #region ListActualization

            if (key == "ListActualization")
            {
                string currentID = Globals.BaseLogic.IDataLogic.GetUid();
                string listID    = (string)ViewData["ListID"];

                if (currentID != listID)
                {
                    ViewData["IsRefresh"] = false;

                    OnViewStateChanged("LoadList");
                }
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 18
0
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                bool isRefrsh = Convert.ToBoolean(ViewData["IsRefresh"]);

                if (isRefrsh)
                {
                    LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.DataLoading);

                    Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                    asyncDataThread.IsBackground = true;
                    asyncDataThread.Start();

                    lc.ShowLoading(true);

                    if (lc.Abort)
                    {
                        asyncDataThread.Abort();
                    }
                }
                else
                {
                    try
                    {
                        int uid = Convert.ToInt32((string)ViewData["UserID"]);

                        MessUserCorrespondence newMessUserCorrespondence = Globals.BaseLogic.RefreshUserCorrespondence(uid, false, false, null);

                        if (newMessUserCorrespondence != null)
                        {
                            FillListModel(newMessUserCorrespondence);
                        }
                        else
                        {
                            //view.Model.Clear();
                        }

                        view.UpdateView("LoadListResponse");
                    }
                    catch
                    {
                        //
                    }
                }
            }

            #endregion

            #region ReloadList

            if (key == "ReloadList")
            {
                view.UpdateView("ReloadListResponse");
            }

            #endregion

            #region RefreshList

            if (key == "RefreshList")
            {
                view.UpdateView("RefreshListResponse");
            }

            #endregion

            #region SentMessage

            if (key == "SentMessage")
            {
                /*
                 * bool result = false;
                 *
                 * int uid = Convert.ToInt32((string)ViewData["UserID"]);
                 * string text = (string)ViewData["MessageDraftOutput"];
                 *
                 * try
                 * {
                 *  // проверка на Empty во вьюхе
                 *  result = Globals.BaseLogic.SendMessage(uid, text, false);
                 * }
                 * catch (VKException ex)
                 * {
                 *  string error = ExceptionTranslation.TranslateException(ex);
                 *
                 *  ViewData["SentMessageResponseMessage"] = error;
                 *  ViewData["MessageIsSent"] = "false";
                 *
                 *  view.UpdateView("SentMessageResponse");
                 *
                 *  if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword))
                 *  {
                 *      Globals.BaseLogic.IDataLogic.SetToken(string.Empty);
                 *      MasterForm.Navigate<LoginController>();
                 *  }
                 *
                 *  return;
                 * }
                 * catch (OutOfMemoryException)
                 * {
                 *  ViewData["SentMessageResponseMessage"] = Resources.OutOfMemory;
                 *  ViewData["MessageIsSent"] = "false";
                 *
                 *  view.UpdateView("SentMessageResponse");
                 *  return;
                 * }
                 *
                 * if (result)
                 * {
                 *  DraftMessagesDataIO.DeleteDraftMessage(uid);
                 *
                 *  ViewData["SentMessageResponseMessage"] = Resources.MessagesList_Controller_Messages_MessageSentSuccessfully;
                 *  ViewData["MessageIsSent"] = "true";
                 * }
                 * else
                 * {
                 *  ViewData["SentMessageResponseMessage"] = Resources.MessagesList_Controller_Messages_MessageSentUnsuccessfully;
                 *  ViewData["MessageIsSent"] = "false";
                 * }
                 *
                 * view.UpdateView("SentMessageResponse");
                 */

                MasterForm.Navigate <SendMessageController>("MessagesList", (string)ViewData["UserID"], (string)ViewData["UserName"]);
            }

            #endregion

            #region Back

            if (key == "Back")
            {
                int    uid  = Convert.ToInt32((string)ViewData["UserID"]);
                string text = ((string)ViewData["MessageDraftOutput"]).Trim();

                //DraftMessagesDataIO.SetDraftMessage(text, uid);

                MasterForm.Navigate <MessagesChainsListController>();
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }