Example #1
0
        private void NavigateBack()
        {
            switch ((string)ViewData["BackLink"])
            {
            case "FriendList":
                MasterForm.Navigate <FriendsListController>();
                break;

            //case "FriendSearch":
            //MasterForm.Navigate<FriendsSearchListController>();
            //break;
            case "MessagesList":
                MasterForm.Navigate <MessagesListController>((string)ViewData["UserID"], (string)ViewData["UserName"]);
                break;

            case "PhotoComments":
                MasterForm.Navigate <PhotoCommentsUpdatesListController>();
                break;

            case "FriendsStatus":
                MasterForm.Navigate <StatusUpdatesListController>();
                break;

            case "ImageDetailedView":
                //MasterForm.Navigate<ImageCommentController>();
                NavigationService.GoBack();
                break;

            case "":
                NavigationService.GoBack();
                break;
            }
        }
        protected override void OnInitialize(params object[] parameters)
        {
            if (parameters != null)
            {
                if (parameters.Length > 0)
                {
                    int uid = 0;

                    try
                    {
                        uid = Convert.ToInt32(parameters[0].ToString());
                    }
                    catch
                    {
                        return;
                    }

                    if (uid > 0)
                    {
                        MasterForm.Navigate <SendMessageController>(uid.ToString());
                    }
                }
            }

            base.OnInitialize(parameters);
        }
Example #3
0
        protected override void OnInitialize(params object[] parameters)
        {
            if (parameters != null)
            {
                if (parameters.Length > 0)
                {
                    int uid = 0;

                    try
                    {
                        uid = Convert.ToInt32(parameters[0].ToString());
                    }
                    catch
                    {
                        uid = -1;
                    }

                    // передаем только корректный id
                    if (uid > 0)
                    {
                        MasterForm.Navigate <SendMessageController>("FriendList", uid.ToString());
                    }
                }
            }

            base.OnInitialize(parameters);
        }
Example #4
0
        /// <summary>
        /// This method indicates that something has been changed in the view.
        /// </summary>
        /// <param name="key">The string key to identify what has been changed.</param>
        protected override void OnViewStateChanged(string key)
        {
            #region LoadUserData
            if (key == "LoadUserData")
            {
                string login = Globals.BaseLogic.IDataLogic.GetSavedLogin();
                ViewData["UserLogin"] = login;
                view.UpdateView("UserDataLoaded");
            }
            #endregion

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

            #region ClearPass
            if (key == "ClearPass")
            {
                DialogResult dlgRes = DialogControl.ShowQuery(Resources.UserData_ClearPass, DialogButtons.YesNo);
                switch (dlgRes)
                {
                case DialogResult.Yes:
                    using (new WaitWrapper(false))
                    {
                        Globals.BaseLogic.IDataLogic.ClearPass();
                        Globals.BaseLogic.IDataLogic.ClearCache();
                        //надо еще и нотификатор остановить
                        //Interprocess.StopService();
                        MasterForm.Navigate <LoginController>();
                    }
                    break;
                }
                view.UpdateView("DeselectButton");
            }
            #endregion

            #region ClearCache
            if (key == "ClearCache")
            {
                DialogResult dlgRes = DialogControl.ShowQuery(Resources.UserData_ClearCache, DialogButtons.YesNo);
                switch (dlgRes)
                {
                case DialogResult.Yes:
                    using (new WaitWrapper(false))
                    {
                        Globals.BaseLogic.IDataLogic.ClearCache();
                    }
                    break;
                }
                view.UpdateView("DeselectButton");
            }
            #endregion
        }
Example #5
0
        private void AutoLogin()
        {
            try
            {
                Globals.BaseLogic.AutoLogin();
            }
            catch (VKException ex)
            {
                string errMessage = "";
                switch (ex.LocalizedMessage)
                {
                case ExceptionMessage.IncorrectLoginOrPassword:
                    errMessage = Resources.IncorrectLoginOrPassword;
                    break;

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

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

                case ExceptionMessage.UnknownError:
                    errMessage = Resources.VK_ERRORS_UnknownError;
                    break;

                case ExceptionMessage.NoSavedToken:
                    errMessage = Resources.VK_ERRORS_NoSavedToken;
                    break;

                case ExceptionMessage.AccountBloked:
                    errMessage = Resources.VK_ERRORS_AccountBloked;
                    break;
                }
                if (!String.IsNullOrEmpty(errMessage))
                {
                    ViewData["AutoLoginError"] = errMessage;
                    view.UpdateView("AutoLoginFail");

                    if (ex.LocalizedMessage == ExceptionMessage.IncorrectLoginOrPassword)
                    {
                        Globals.BaseLogic.IDataLogic.SetToken("");
                        MasterForm.Navigate <LoginController>();
                    }
                }
            }
            catch (OutOfMemoryException)
            {
                // недостаточно памяти
                ViewData["AutoLoginError"] = Resources.OutOfMemory;
                view.UpdateView("AutoLoginFail");
            }
        }
Example #6
0
        protected override void OnInitialize(params object[] parameters)
        {
            if ((parameters != null) && (parameters.Length > 0))
            {
                string param = parameters[0] as string;

                if ((param != null) && (param == "GoToUserData"))
                {
                    using (new WaitWrapper(false))
                    {
                        MasterForm.Navigate <UserDataController>();
                    }
                }

                /*
                 * else if ((param != null) && (param == "GoToSettings"))
                 * {
                 *  using (new WaitWrapper(false))
                 *  {
                 *      Configuration.LoadConfigSettings();
                 *      MasterForm.Navigate<SettingsController>();
                 *  }
                 * }
                 */

                else if ((param != null) && (param == "GoToAbout"))
                {
                    using (new WaitWrapper(false))
                    {
                        MasterForm.Navigate <AboutController>();
                    }
                }

                else if ((param != null) && (param == "GoToHelp"))
                {
                    using (new WaitWrapper(false))
                    {
                        MasterForm.Navigate <WebBrowserController>("Help");
                    }
                }

                else if ((param != null) && (param == "GoToExit"))
                {
                    using (new WaitWrapper(false))
                    {
                        Application.Exit();
                    }
                }
            }

            base.OnInitialize(parameters);
        }
Example #7
0
        protected override void OnViewStateChanged(string key)
        {
            if (key == "DoLogin")
            {
                string login    = (string)view.ViewData["Login"];
                string password = (string)view.ViewData["Password"];

                try
                {
                    // авторизация по логину/паролю
                    using (new WaitWrapper())
                    {
                        Globals.BaseLogic.AuthLogin(login, password, true);
                    }

                    try
                    {
                        Globals.BaseLogic.IDataLogic.SetSavedLogin(login);
                    }
                    catch (Exception ex)
                    {
                        SystemConfiguration.Log.Write(LogEntryType.Error, "DataLogic.SetSavedLogin failed: " + ex.Message);
                    }

                    MasterForm.Navigate <StatusUpdatesListController>("LoginSuccess", "1");
                }
                catch (VKException ex)
                {
                    string message = ExceptionTranslation.TranslateException(ex);

                    if (!string.IsNullOrEmpty(message))
                    {
                        ViewData["LoginError"] = message;

                        view.UpdateView("LoginFail");
                    }
                }
                catch (OutOfMemoryException)
                {
                    ViewData["LoginError"] = Resources.OutOfMemory;

                    view.UpdateView("LoginFail");
                }
            }

            if (key == "CancelLogin")
            {
                Application.Exit();
            }
        }
Example #8
0
        protected override void OnViewStateChanged(string key)
        {
            #region SetComment

            if (key == "SetComment")
            {
                StringBuilder newStringBuilder = new StringBuilder();

                string comment = (string)view.ViewData["CurrentComment"];

                comment = comment.Replace("\r", string.Empty);

                // пилим по переносам строки...
                string[] lines = comment.Split('\n');

                foreach (string line in lines)
                {
                    newStringBuilder.Append(line);
                    newStringBuilder.Append(" ");
                }

                comment = newStringBuilder.ToString();

                if (!string.IsNullOrEmpty(comment))
                {
                    comment = comment.Remove(comment.Length - 1, 1);
                }

                ViewData["CurrentComment"] = comment;

                MasterForm.Navigate <UploadPhotoController>("Comment", (string)ViewData["CurrentComment"]);
            }

            #endregion

            #region Cancel

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

            #endregion
        }
        protected override void OnInitialize(params object[] parameters)
        {
            if (parameters != null)
            {
                if (parameters.Length > 1)
                {
                    {
                        string param0 = parameters[0].ToString();
                        string param1 = parameters[1].ToString();
                        string param2 = parameters[2].ToString();

                        if (!string.IsNullOrEmpty(param0))
                        {
                            if (param0 == "GoToMessagesList")
                            {
                                MasterForm.Navigate <MessagesListController>(param1, param2);
                            }
                        }
                    }
                }
            }

            base.OnInitialize(parameters);
        }
Example #10
0
        /// <summary>
        /// This method indicates that something has been changed in the view.
        /// </summary>
        /// <param name="key">The string key to identify what has been changed.</param>
        protected override void OnViewStateChanged(string key)
        {
            #region SetStatus

            if (key == "SetStatus")
            {
                StringBuilder newStringBuilder = new StringBuilder();

                var status = (string)view.ViewData["CurrentStatus"];

                status = status.Replace("\r", string.Empty);
                status = status.Replace("\n", " ");
                status = status.Trim();

                //// пилим по переносам строки...
                //string[] lines = status.Split('\n');

                //foreach (string line in lines)
                //{
                //    newStringBuilder.Append(line);
                //    newStringBuilder.Append(" ");
                //}

                //status = newStringBuilder.ToString();

                //if (status.EndsWith(" "))
                //{
                //    status = status.Remove(status.Length - 1, 1);
                //}

                // ?
                ViewData["CurrentStatus"] = status;

                // обновление статуса
                try
                {
                    // обновление информации о пользователе
                    using (new WaitWrapper())
                    {
                        if (!string.IsNullOrEmpty(status))
                        {
                            Globals.BaseLogic.SetStatus(status, StatusActionType.Refresh, false);
                        }
                        else
                        {
                            Globals.BaseLogic.SetStatus(status, StatusActionType.Clear, false);
                        }
                    }

                    view.UpdateView("SetStatusSuccess");
                    view.UpdateView("HideCursor");

                    MasterForm.Navigate <ShareController>("UpdateStatus", view.ViewData["CurrentStatus"]);

                    //NavigationService.GoBack();

                    // ?
                    //MasterForm.Navigate<MainController>("Status", (string)ViewData["CurrentStatus"]);
                }
                catch (VKException ex)
                {
                    string error = ExceptionTranslation.TranslateException(ex);

                    if (!string.IsNullOrEmpty(error))
                    {
                        // показывать сообщение об ошибке вроде как не нужно
                        if (ex.LocalizedMessage == ExceptionMessage.IncorrectLoginOrPassword)
                        {
                            Globals.BaseLogic.IDataLogic.SetToken(string.Empty);
                            //MasterForm.Navigate<LoginController>();

                            view.UpdateView("GoToLogin");
                        }

                        ViewData["SetStatusError"] = error;
                        view.UpdateView("SetStatusFail");
                    }
                }
                catch (OutOfMemoryException)
                {
                    ViewData["SetStatusError"] = Resources.OutOfMemory;
                    view.UpdateView("SetStatusFail");
                }
            }

            #endregion

            #region Cancel

            if (key == "Cancel")
            {
                view.UpdateView("HideCursor");
                NavigationService.GoBack();
            }

            #endregion

            //OnViewStateChanged("GoGoToLogin");

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Example #11
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
        }
Example #12
0
        protected override void OnViewStateChanged(string key)
        {
            //ViewData["ResponseMessage"] = string.Empty; // а раньше работало как-то без этого

            #region key == "ClearRegistry"

            if (key == "ClearRegistry")
            {
                Globals.BaseLogic.IDataLogic.SetUplPhtViewHasMdfPht(false);
                Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtCmnt(string.Empty);
                Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero();
            }

            #endregion

            #region key == "ActivateForm"

            if (key == "ActivateForm")
            {
                try
                {
                    ViewData["ResponseMessage"] = string.Empty; // а раньше работало как-то без этого

                    ViewData["ImageFile"]      = SystemConfiguration.AppInstallPath + @"\Cache\Files\image.jpg";
                    ViewData["ThumbImageFile"] = SystemConfiguration.AppInstallPath + @"\Cache\Files\t_image.jpg";
                    ViewData["EmptyImageFile"] = SystemConfiguration.AppInstallPath + @"\Cache\Files\empty.jpg";

                    // "пустышка" для подмены
                    if (ViewData["EmptyImage"] == null)
                    {
                        IImage newIImage;

                        ImageHelper.SaveImageFromMemory(MasterForm.SkinManager.GetImage("EmptyImage"), (string)ViewData["EmptyImageFile"]);

                        ImageHelper.LoadImageFromFile((string)ViewData["EmptyImageFile"], out newIImage);

                        ViewData["EmptyImage"] = newIImage;
                    }

                    int displayAreaWidth  = (int)view.ViewData["DisplayAreaWidth"];
                    int displayAreaHeight = (int)view.ViewData["DisplayAreaHeight"];

                    // изображение
                    if (File.Exists((string)ViewData["ImageFile"]))
                    {
                        if (ViewData["Image"] == null)
                        {
                            IImage newIImage;
                            System.Drawing.Size imageSize;

                            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;
                        }
                        else
                        {
                            if (Math.Max((int)ViewData["ImageWidth"], (int)ViewData["ImageHeight"]) != Math.Min(displayAreaWidth, displayAreaHeight))
                            {
                                IImage newIImage;
                                System.Drawing.Size imageSize;

                                newIImage         = (IImage)ViewData["Image"];
                                ViewData["Image"] = ViewData["EmptyImage"];
                                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;
                            }
                        }
                    }
                    else
                    {
                        NavigationService.GoBack();
                    }
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

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

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

            #endregion

            #region key == "DeactivateForm"

            if (key == "DeactivateForm")
            {
                if (ViewData["EmptyImage"] != null)
                {
                    Marshal.FinalReleaseComObject((IImage)ViewData["EmptyImage"]);
                    ViewData["EmptyImage"] = null;
                }

                if (ViewData["Image"] != null)
                {
                    Marshal.FinalReleaseComObject((IImage)ViewData["Image"]);
                    ViewData["Image"] = null;
                }

                ViewData["ImageFile"]      = SystemConfiguration.AppInstallPath + @"\Cache\Files\image.jpg";
                ViewData["ThumbImageFile"] = SystemConfiguration.AppInstallPath + @"\Cache\Files\t_image.jpg";
                ViewData["EmptyImageFile"] = SystemConfiguration.AppInstallPath + @"\Cache\Files\empty.jpg";

                if (File.Exists((string)ViewData["ImageFile"]))
                {
                    File.Delete((string)ViewData["ImageFile"]);
                }

                if (File.Exists((string)ViewData["ThumbImageFile"]))
                {
                    File.Delete((string)ViewData["ThumbImageFile"]);
                }

                if (File.Exists((string)ViewData["EmptyImageFile"]))
                {
                    File.Delete((string)ViewData["EmptyImageFile"]);
                }
            }

            #endregion

            #region key == "RotareImageClockwise" || key == "RotareImageCounterclockwise"

            if (key == "RotareImageClockwise" || key == "RotareImageCounterclockwise")
            {
                try
                {
                    IImage newIImage;
                    System.Drawing.Size imageSize;

                    int displayAreaWidth  = (int)view.ViewData["DisplayAreaWidth"];
                    int displayAreaHeight = (int)view.ViewData["DisplayAreaHeight"];

                    if (key == "RotareImageClockwise")
                    {
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglCW();
                    }

                    if (key == "RotareImageCounterclockwise")
                    {
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglCCW();
                    }

                    newIImage         = (IImage)ViewData["Image"];
                    ViewData["Image"] = ViewData["EmptyImage"];
                    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;
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

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

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

            #endregion

            #region key == "UploadPhoto"

            if (key == "UploadPhoto")
            {
                /*
                 * LoadingControlInterface lc = LoadingControl.CreateLoading(Resources.ImageUpload);
                 *
                 * Thread asyncDataThread = new Thread(delegate { AsyncGetViewData(lc); });
                 * asyncDataThread.IsBackground = true;
                 * asyncDataThread.Start();
                 *
                 * lc.ShowLoading(true);
                 *
                 * if (lc.Abort)
                 * {
                 *  asyncDataThread.Abort();
                 * }
                 */

                try
                {
                    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);
                    }

                    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);

                        view.UpdateView("GoToLogin");
                    }

                    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");
                }
            }

            #endregion

            //

            #region key == "GoBack"

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

                MasterForm.Navigate <ShareController>("AllowReloadData", "false");
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Example #13
0
        protected override void OnViewStateChanged(string key)
        {
            #region key == "DeactivateForm"

            if (key == "DeactivateForm")
            {
                if (ViewData["EmptyImage"] != null)
                {
                    Marshal.FinalReleaseComObject((IImage)ViewData["EmptyImage"]);
                    ViewData["EmptyImage"] = null;
                }

                if (ViewData["BaseImage"] != null)
                {
                    Marshal.FinalReleaseComObject((IImage)ViewData["BaseImage"]);
                    ViewData["BaseImage"] = null;
                }

                if (ViewData["DummyImage"] != null)
                {
                    Marshal.FinalReleaseComObject((IImage)ViewData["DummyImage"]);
                    ViewData["DummyImage"] = null;
                }

                if (ViewData["Image"] != null)
                {
                    Marshal.FinalReleaseComObject((IImage)ViewData["Image"]);
                    ViewData["Image"] = null;
                }
            }

            #endregion

            #region key == "ActivateForm"

            if (key == "ActivateForm")
            {
                try
                {
                    ViewData["ImageFile"]           = SystemConfiguration.AppInstallPath + @"\Cache\Files\image.jpg";
                    ViewData["ThumbImageFile"]      = SystemConfiguration.AppInstallPath + @"\Cache\Files\t_image.jpg";
                    ViewData["BaseImageFile"]       = SystemConfiguration.AppInstallPath + @"\Cache\Files\base.jpg";
                    ViewData["ThumbBaseImageFile"]  = SystemConfiguration.AppInstallPath + @"\Cache\Files\t_base.jpg";
                    ViewData["DummyImageFile"]      = SystemConfiguration.AppInstallPath + @"\Cache\Files\dummy.jpg";
                    ViewData["ThumbDummyImageFile"] = SystemConfiguration.AppInstallPath + @"\Cache\Files\t_dummy.jpg";
                    ViewData["EmptyImageFile"]      = SystemConfiguration.AppInstallPath + @"\Cache\Files\empty.jpg";

                    if (ViewData["EmptyImage"] == null)
                    {
                        IImage newIImage;

                        ImageHelper.SaveImageFromMemory(MasterForm.SkinManager.GetImage("EmptyImage"), (string)ViewData["EmptyImageFile"]);

                        ImageHelper.LoadImageFromFile((string)ViewData["EmptyImageFile"], out newIImage);

                        ViewData["EmptyImage"] = newIImage;
                    }

                    int displayAreaWidth  = (int)view.ViewData["DisplayAreaWidth"];
                    int displayAreaHeight = (int)view.ViewData["DisplayAreaHeight"];

                    if (ViewData["BaseImage"] == null)
                    {
                        IImage newIImage;

                        ImageHelper.SaveImageFromMemory(MasterForm.SkinManager.GetImage("BaseImage"), (string)ViewData["BaseImageFile"]);

                        ImageHelper.SaveScaledImage((string)ViewData["BaseImageFile"], (string)ViewData["ThumbBaseImageFile"], new System.Drawing.Size(displayAreaWidth, displayAreaHeight));

                        ImageHelper.LoadImageFromFile((string)ViewData["ThumbBaseImageFile"], out newIImage);

                        ViewData["BaseImage"]       = newIImage;
                        ViewData["BaseImageWidth"]  = displayAreaWidth;
                        ViewData["BaseImageHeight"] = displayAreaHeight;
                    }
                    else
                    {
                        if ((int)ViewData["BaseImageWidth"] != displayAreaWidth || (int)ViewData["BaseImageHeight"] != displayAreaHeight)
                        {
                            IImage newIImage;

                            newIImage             = (IImage)ViewData["BaseImage"];
                            ViewData["BaseImage"] = ViewData["EmptyImage"];
                            Marshal.FinalReleaseComObject(newIImage);

                            ImageHelper.SaveScaledImage((string)ViewData["BaseImageFile"], (string)ViewData["ThumbBaseImageFile"], new System.Drawing.Size(displayAreaWidth, displayAreaHeight));

                            ImageHelper.LoadImageFromFile((string)ViewData["ThumbBaseImageFile"], out newIImage);

                            ViewData["BaseImage"]       = newIImage;
                            ViewData["BaseImageWidth"]  = displayAreaWidth;
                            ViewData["BaseImageHeight"] = displayAreaHeight;
                        }
                    }

                    displayAreaWidth  -= UISettings.CalcPix(10);
                    displayAreaHeight -= UISettings.CalcPix(10);

                    if (ViewData["DummyImage"] == null)
                    {
                        IImage newIImage;

                        ImageHelper.SaveImageFromMemory(MasterForm.SkinManager.GetImage("DummyImage"), (string)ViewData["DummyImageFile"]);

                        ImageHelper.SaveScaledImage((string)ViewData["DummyImageFile"], (string)ViewData["ThumbDummyImageFile"], new System.Drawing.Size(displayAreaWidth, displayAreaHeight));

                        ImageHelper.LoadImageFromFile((string)ViewData["ThumbDummyImageFile"], out newIImage);

                        ViewData["DummyImage"]       = newIImage;
                        ViewData["DummyImageWidth"]  = displayAreaWidth;
                        ViewData["DummyImageHeight"] = displayAreaHeight;
                    }
                    else
                    {
                        if ((int)ViewData["DummyImageWidth"] != displayAreaWidth || (int)ViewData["DummyImageHeight"] != displayAreaHeight)
                        {
                            IImage newIImage;

                            newIImage = (IImage)ViewData["DummyImage"];
                            ViewData["DummyImage"] = ViewData["EmptyImage"];
                            Marshal.FinalReleaseComObject(newIImage);

                            ImageHelper.SaveScaledImage((string)ViewData["DummyImageFile"], (string)ViewData["ThumbDummyImageFile"], new System.Drawing.Size(displayAreaWidth, displayAreaHeight));

                            ImageHelper.LoadImageFromFile((string)ViewData["ThumbDummyImageFile"], out newIImage);

                            ViewData["DummyImage"]       = newIImage;
                            ViewData["DummyImageWidth"]  = displayAreaWidth;
                            ViewData["DummyImageHeight"] = displayAreaHeight;
                        }
                    }

                    if (File.Exists((string)ViewData["ImageFile"]))
                    {
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewHasMdfPht(true);

                        if (ViewData["Image"] == null)
                        {
                            IImage newIImage;
                            System.Drawing.Size imageSize;

                            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;
                        }
                        else
                        {
                            if (Math.Max((int)ViewData["ImageWidth"], (int)ViewData["ImageHeight"]) != Math.Min(displayAreaWidth, displayAreaHeight))
                            {
                                IImage newIImage;
                                System.Drawing.Size imageSize;

                                newIImage         = (IImage)ViewData["Image"];
                                ViewData["Image"] = ViewData["EmptyImage"];
                                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;
                            }
                        }
                    }
                    else
                    {
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewHasMdfPht(false);
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtCmnt(string.Empty);
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero();
                    }
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

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

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

            #endregion

            #region key == "RotareImageClockwise" || key == "RotareImageCounterclockwise"

            if (key == "RotareImageClockwise" || key == "RotareImageCounterclockwise")
            {
                try
                {
                    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);

                    if (key == "RotareImageClockwise")
                    {
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglCW();
                    }

                    if (key == "RotareImageCounterclockwise")
                    {
                        Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglCCW();
                    }

                    newIImage         = (IImage)ViewData["Image"];
                    ViewData["Image"] = ViewData["EmptyImage"];
                    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;
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

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

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

            #endregion

            #region key == "LoadPhotoFromDisk"

            if (key == "LoadPhotoFromDisk")
            {
                try
                {
                    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, (string)ViewData["ImageFile"], 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);
                        }
                    }
                }
                catch (OutOfMemoryException ex)
                {
                    ViewData["ResponseMessage"] = Resources.OutOfMemory;

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

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

            #endregion

            #region key == "SnapPhotoWithinCamera"

            if (key == "SnapPhotoWithinCamera")
            {
                try
                {
                    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;

                    if (newCameraCaptureDialog.ShowDialog() == 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, (string)ViewData["ImageFile"], 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);
                        }
                    }

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

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

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

            #endregion

            #region key == "UploadPhoto"

            if (key == "UploadPhotoMobile" || key == "UploadPhotoMain")
            {
                try
                {
                    ImageHelper.PostProcessImageFile((string)ViewData["ImageFile"], Globals.BaseLogic.IDataLogic.GetUplPhtViewPhtRtnAngl());

                    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);
                    }

                    bool isAvatar;

                    if (key == "UploadPhotoMobile")
                    {
                        isAvatar = false;
                    }
                    else
                    {
                        isAvatar = true;
                    }

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

                    File.Delete((string)ViewData["ImageFile"]);

                    Globals.BaseLogic.IDataLogic.SetUplPhtViewHasMdfPht(false);
                    Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtCmnt(string.Empty);
                    Globals.BaseLogic.IDataLogic.SetUplPhtViewPhtRtnAnglZero();

                    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 ChangePhotoComment

            if (key == "ChangePhotoComment")
            {
                MasterForm.Navigate <ChangeCommentController>(Globals.BaseLogic.IDataLogic.GetUplPhtViewPhtCmnt());
            }

            #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
        }
Example #14
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;
        }
Example #15
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>();
            }
        }
Example #16
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>();
            }
        }
        protected override void OnViewStateChanged(string key)
        {
            #region LoadList

            if (key == "LoadList")
            {
                FriendsListResponse newFriendsListResponse = null;

                try
                {
                    newFriendsListResponse = Globals.BaseLogic.LoadFriendsOnlineList(false);
                }
                catch (VKException ex)
                {
                    switch (ex.LocalizedMessage)
                    {
                    case ExceptionMessage.UnknownError:
                        ViewData["LoadListResponseMessage"] = Resources.VK_ERRORS_UnknownError;
                        break;

                    case ExceptionMessage.ServerUnavalible:
                        ViewData["LoadListResponseMessage"] = Resources.VK_ERRORS_ServerUnavalible;
                        break;

                    case ExceptionMessage.NoConnection:
                        ViewData["LoadListResponseMessage"] = Resources.VK_ERRORS_NoConnection;
                        break;
                    }

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

                    view.UpdateView("LoadListResponseNegative");
                    return;
                }

                if (newFriendsListResponse != null)
                {
                    view.Model.Clear();

                    foreach (User newUser in newFriendsListResponse.Users)
                    {
                        FriendListViewItem newFriendListViewItem = new FriendListViewItem();

                        newFriendListViewItem.Uid = newUser.Uid;
                        //newFriendListViewItem.UserName = newUser.FullName;

                        newFriendListViewItem.Avatar = SystemConfiguration.AppInstallPath + @"\Cache\Files\Thumb\" + HttpUtility.GetMd5Hash(newUser.Photo100px);

                        bool result = Globals.BaseLogic.ICommunicationLogic.LoadImage(newUser.Photo100px, @"Thumb\" + HttpUtility.GetMd5Hash(newUser.Photo100px), false, _afterLoadImageEventHandler, 100, 0, "int");

                        newFriendListViewItem.IsAvatarLoaded = result;

                        view.Model.Add(newFriendListViewItem);
                    }

                    view.Model.Sort();

                    view.UpdateView("LoadListResponse");

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

                    t.Start();
                }
                else
                {
                    ViewData["LoadListResponseMessage"] = Resources.FriendsList_Messages_OperationDoneUnsuccsessfully;

                    view.UpdateView("LoadListResponseNegative");
                }
            }

            #endregion

            #region ReloadList

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

            #endregion



            #region GoToMain

            if (key == "GoToMain")
            {
                MasterForm.Navigate <MainController>();
            }

            #endregion

            #region GoToNews

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

            #endregion

            #region GoToMessages

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

            #endregion

            #region GoToExtras

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

            #endregion

            #region GoToFriends

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

            #endregion
        }
Example #18
0
        protected override void OnViewStateChanged(string key)
        {
            #region SendMessage

            if (key == "SendMessage")
            {
                try
                {
                    using (new WaitWrapper(false))
                    {
                        Globals.BaseLogic.AddComments((string)ViewData["Message"],
                                                      (string)ViewData["UserID"] + "_" +
                                                      (string)ViewData["PhotoID"],
                                                      false);
                    }
                    view.UpdateView("SendCommentSuccess");

                    using (new WaitWrapper(false))
                    {
                        PhotosCommentsResponseHistory pchResponse = null;
                        PhotosCommentsResponse        pcResponse  = null;

                        try
                        {
                            //pchResponse = Cache.LoadFromCache<PhotosCommentsResponseHistory>(string.Empty, "PhotosCommentsResponseHistory");

                            pchResponse = DataModel.Data.PhotosCommentsResponseHistoryData;

                            if (pchResponse == null)
                            {
                                throw new Exception();
                            }
                        }
                        catch (Exception)
                        {
                            pchResponse = new PhotosCommentsResponseHistory();
                        }

                        pcResponse = pchResponse.GetItem(Convert.ToInt32((string)ViewData["PhotoID"]));

                        if (pcResponse == null)
                        {
                            pcResponse = new PhotosCommentsResponse();
                            pchResponse.AddItem(pcResponse);
                        }

                        var newPhotoData = new PhotoData
                        {
                            pdPhotoID       = Convert.ToInt32((string)ViewData["PhotoID"]),
                            pdUserID        = Convert.ToInt32((string)ViewData["UserID"]),
                            pdPhotoURL604px = (string)ViewData["LargePhotoUrl"]
                        };

                        var newPostReceiver = new PostReceiver
                        {
                            prUserID = Convert.ToInt32((string)ViewData["UserID"])
                        };

                        var newPostSender = new PostSender
                        {
                            psUserID =
                                Convert.ToInt32(Globals.BaseLogic.IDataLogic.GetUid()),
                            psUserName = Resources.MessageI
                        };

                        var newWallData = new WallData
                        {
                            wdWallDataType = WallDataType.PlainText,
                            wdText         = (string)ViewData["Message"]
                        };

                        pcResponse.pcrPhotoID = Convert.ToInt32((string)ViewData["PhotoID"]);
                        pcResponse.pcrComments.Insert(0, new CommentPost
                        {
                            cpID           = 0,
                            cpTime         = DateTime.Now,
                            cpPhotoData    = newPhotoData,
                            cpPostReceiver = newPostReceiver,
                            cpPostSender   = newPostSender,
                            cpWallData     = newWallData
                        }
                                                      );

                        //try
                        //{
                        //    bool result = Cache.SaveToCache(pchResponse, string.Empty,
                        //                                    "PhotosCommentsResponseHistory");
                        //    DebugHelper.WriteLogEntry(result
                        //                                  ? "Новый комментарий сохранен в кэш."
                        //                                  : "Новый комментарий не сохранены в кэш.");
                        //}
                        //catch (IOException newException)
                        //{
                        //    DebugHelper.WriteLogEntry("Ошибка сохранения комментария к фото в кэш: " +
                        //                              newException.Message);
                        //}

                        DataModel.Data.PhotosCommentsResponseHistoryData = pchResponse;

                        if ((string)ViewData["UserID"] == Globals.BaseLogic.IDataLogic.GetUid())
                        {
                            try
                            {
                                //pcResponse = Cache.LoadFromCache<PhotosCommentsResponse>(string.Empty,
                                //                                                         "PhotosCommentsResponse");

                                pcResponse = DataModel.Data.PhotosCommentsResponseData;

                                if (pcResponse == null)
                                {
                                    throw new Exception();
                                }
                            }
                            catch (Exception)
                            {
                                pcResponse = new PhotosCommentsResponse();
                            }

                            pcResponse.pcrPhotoID = Convert.ToInt32((string)ViewData["PhotoID"]);
                            pcResponse.pcrComments.Insert(0, new CommentPost
                            {
                                cpID           = 0,
                                cpTime         = DateTime.Now,
                                cpPhotoData    = newPhotoData,
                                cpPostReceiver = newPostReceiver,
                                cpPostSender   = newPostSender,
                                cpWallData     = newWallData
                            }
                                                          );

                            //try
                            //{
                            //    bool result = Cache.SaveToCache(pcResponse, string.Empty, "PhotosCommentsResponse");
                            //    DebugHelper.WriteLogEntry(result
                            //                                  ? "Новый комментарий сохранен в кэш комментариев к своим фото."
                            //                                  : "Новый комментарий не сохранен в кэш комментариев к своим фото.");
                            //}
                            //catch (IOException newException)
                            //{
                            //    DebugHelper.WriteLogEntry("Ошибка сохранения комментария к своему фото в кэш: " +
                            //                              newException.Message);
                            //}

                            DataModel.Data.PhotosCommentsResponseData = pcResponse;
                        }
                        NavigationService.GoBack();
                    }
                }
                catch (VKException ex)
                {
                    //timerKeepAwake.Enabled = false;
                    string err = ExceptionTranslation.TranslateException(ex);
                    if (!string.IsNullOrEmpty(err))
                    {
                        ViewData["SendCommentError"] = err;
                        view.UpdateView("SendCommentFail");

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

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

            #endregion

            #region GoBack

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

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
        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>();
            }
        }
Example #20
0
        /// <summary>
        /// This method indicates that something has been changed in the view.
        /// </summary>
        /// <param name="key">The string key to identify what has been changed.</param>
        protected override void OnViewStateChanged(string key)
        {
            if (key == "GoBack")
            {
                if (_helpFileUrl != null)
                {
                    ViewData["Url"] = _helpFileUrl + "#top";
                    ViewData["BackButtonVisible"] = true;
                    view.UpdateView("WebBrowserGoToUrl");
                }
                else if (_urlHistory.Count > 1)
                {
                    _urlHistory.Pop();
                    ViewData["Url"] = _urlHistory.Peek();
                    ViewData["BackButtonVisible"] = _urlHistory.Count > 1;
                    view.UpdateView("WebBrowserGoToUrl");
                }
            }

            //if (key == "GoBack")
            //{
            //    if (_urlHistory.Count > 1)
            //    {
            //        ViewData["Url"] = _urlHistory[0];
            //		ViewData["BackButtonVisible"] = _urlHistory.Count > 1;
            //        view.UpdateView("WebBrowserGoToUrl");
            //        _urlHistory.Clear();
            //    }
            //}

            else if (key == "GoToUrl")
            {
                _st_cmd_errors   = 0;
                _autoLoginErrors = 0;

                _urlHistory.Push((string)ViewData["Url"]);
                ViewData["BackButtonVisible"] = _urlHistory.Count > 1;
                view.UpdateView("WebBrowserGoToUrl");
            }
            else if (key == "GoToApp")
            {
                view.UpdateView("WebBrowserStop");
                _urlHistory.Clear();
                _helpFileUrl = null;
                NavigationService.GoBack();
            }
            else if (key == "DocumentCompleted")
            {
                string url = ViewData["DocumentCompleteUrl"] as string;
                if (url != null)
                {
                    Uri uri = null;
                    try
                    {
                        uri = new Uri(url);
                    }
                    catch (UriFormatException)
                    { }

                    string path = uri.GetComponents(UriComponents.Path, UriFormat.SafeUnescaped);
                    if (path == "apphook/logoff")
                    {
                        //у пользователя скидывался пароль
                        Globals.BaseLogic.IDataLogic.SetToken("");
                        //пользователя сразу переводили из формы браузера на форму логина
                        MasterForm.Navigate <LoginController>();
                    }
                    else if (path == "apphook/login")
                    {
                        if (_autoLoginErrors == 0)
                        {
                            _autoLoginErrors++;
                            //Обновление сессии
                            AutoLogin();
                            //открыть ту же самую страницу, что пользователь запрашивал ранее
                            view.UpdateView("WebBrowserGoToUrl");
                        }
                    }
                    else
                    {
                        int i = url.IndexOf('?');
                        if (i > -1 && i + 1 < url.Length)
                        {
                            string query = url.Substring(i + 1);
                            if (query.Length > 0)
                            {
                                string[] qparams = query.Split(new char[] { '&' });
                                for (i = 0; i < qparams.Length; i++)
                                {
                                    if (qparams[i] == "st.cmd=error")
                                    {
                                        if (_st_cmd_errors == 0)
                                        {
                                            _st_cmd_errors++;
                                            AutoLogin();
                                            view.UpdateView("WebBrowserGoToUrl");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Example #21
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>();
            }
        }
Example #22
0
        /// <summary>
        /// This method indicates that something has been changed in the view.
        /// </summary>
        /// <param name="key">The string key to identify what has been changed.</param>
        protected override void OnViewStateChanged(string key)
        {
            #region Activate

            if (key == "Activate")
            {
                int uid = Convert.ToInt32((string)ViewData["UserID"]);

                //string friendName = Globals.BaseLogic.GetFriendName(uid.ToString());
                string oldText = DraftMessagesDataIO.GetDraftMessage(uid);

                //view.ViewData["UserName"] = friendName;
                view.ViewData["MessageDraftInput"] = oldText;

                // проверяем: запретить ли смену пользователя?
                if (((string)ViewData["BackLink"]).Equals("ImageDetailedView"))
                {
                    ViewData["AFRHideButton"] = true;
                }
                else
                {
                    ViewData["AFRHideButton"] = false;
                }

                view.UpdateView("ActivateResponse");
            }

            #endregion

            #region SentMessage

            if (key == "SentMessage")
            {
                bool result = false;

                int    uid  = Convert.ToInt32((string)ViewData["UserID"]);
                string text = (string)ViewData["MessageDraftOutput"];

                try
                {
                    using (new WaitWrapper())
                    {
                        // проверка на 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);

                        view.UpdateView("GoToLogin");
                    }

                    return;
                }
                catch (OutOfMemoryException)
                {
                    ViewData["SentMessageResponseMessage"] = Resources.OutOfMemory;
                    ViewData["MessageIsSent"] = "false";

                    view.UpdateView("SentMessageResponse");
                    return;
                }

                using (new WaitWrapper(false))
                {
                    if (result)
                    {
                        DraftMessagesDataIO.DeleteDraftMessage(uid);
                        ViewData["MsgForChangedReceiver"] = string.Empty;

                        Globals.BaseLogic.SaveSendMessageToCache(uid, text);

                        ViewData["SentMessageResponseMessage"] =
                            Resources.MessagesList_Controller_Messages_MessageSentSuccessfully;
                        ViewData["MessageIsSent"] = "true";
                    }
                    else
                    {
                        ViewData["SentMessageResponseMessage"] =
                            Resources.MessagesList_Controller_Messages_MessageSentUnsuccessfully;
                        ViewData["MessageIsSent"] = "false";
                    }
                }

                view.UpdateView("SentMessageResponse");
            }

            #endregion

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

                DraftMessagesDataIO.SetDraftMessage(text, uid);
                NavigateBack();
            }
            #endregion

            #region SendComplete
            if (key == "SendComplete")
            {
                NavigateBack();
            }
            #endregion

            #region ChangeReceiver

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

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Example #23
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>();
            }
        }
Example #24
0
        protected override void OnViewStateChanged(string key)
        {
            if (key == "LoadList")
            {
                try
                {
                    //ActivityResponse newActivityResponse = Globals.BaseLogic.LoadActivityDataList(25, true, false);
                    PhotosCommentsResponse newPhotosCommentsRespounse = Globals.BaseLogic.LoadPhotosComments(20, true, false);

                    view.Model.Clear();

                    foreach (CommentPost newCommentPost in newPhotosCommentsRespounse.pcrComments)
                    {
                        WallPostListViewItem newWallPostListViewItem = new WallPostListViewItem();

                        newWallPostListViewItem.UserName         = newCommentPost.cpPostSender.psUserName; //newActivityData.adDataSender.psUserName;
                        newWallPostListViewItem.Status           = newCommentPost.cpWallData.wdText;       //newActivityData.adText;
                        newWallPostListViewItem.StatusChangeDate = newCommentPost.cpTime.ToString();       //newActivityData.adTime.ToString();

                        newWallPostListViewItem.Avatar = SystemConfiguration.AppInstallPath + @"\Cache\Files\Thumb\" + HttpUtility.GetMd5Hash(newCommentPost.cpPhotoData.pdPhotoURL130px);

                        bool res;

                        //загрузка превьюшки
                        res = Globals.BaseLogic.ICommunicationLogic.LoadImage(newCommentPost.cpPhotoData.pdPhotoURL130px, @"Thumb\" + HttpUtility.GetMd5Hash(newCommentPost.cpPhotoData.pdPhotoURL130px), false, _afterLoadImageEventHandler, UISettings.CalcPix(50), 0, "int");

                        if (res)
                        {
                            newWallPostListViewItem.IsAvatarLoaded = true;
                        }
                        else
                        {
                            newWallPostListViewItem.IsAvatarLoaded = false;
                        }

                        view.Model.Add(newWallPostListViewItem);
                    }

                    //foreach (ActivityData newActivityData in newActivityResponse.arActivityDatas)
                    //{
                    //    WallPostListViewItem newWallPostListViewItem = new WallPostListViewItem();

                    //    newWallPostListViewItem.UserName = newActivityData.adDataSender.psUserName;
                    //    newWallPostListViewItem.Status = newActivityData.adText;
                    //    newWallPostListViewItem.StatusChangeDate = newActivityData.adTime.ToString();

                    //    newWallPostListViewItem.Avatar = SystemConfiguration.AppInstallPath + @"\Cache\Files\Thumb\" + HttpUtility.GetMd5Hash(newActivityData.adDataSender.psUserPhotoURL);

                    //    bool res;

                    //    if (newActivityData.adDataSender.psUserPhotoURL == "0")
                    //    {
                    //        res = false;
                    //    }
                    //    else
                    //    {
                    //        //загрузка аватара
                    //        res = Globals.BaseLogic.ICommunicationLogic.LoadImage(newActivityData.adDataSender.psUserPhotoURL, @"Thumb\" + HttpUtility.GetMd5Hash(newActivityData.adDataSender.psUserPhotoURL), false, _afterLoadImageEventHandler);
                    //    }

                    //    if (res)
                    //    {
                    //        newWallPostListViewItem.IsAvatarLoaded = true;
                    //    }
                    //    else
                    //    {
                    //        newWallPostListViewItem.IsAvatarLoaded = false;
                    //    }

                    //    view.Model.Add(newWallPostListViewItem);
                    //}

                    //view.Model.Sort();

                    view.UpdateView("LoadListResponse");
                }
                catch (Exception newException)
                {
                    ViewData["LoadListResponseMessage"] = newException.Message;

                    view.UpdateView("LoadListResponseNegative");
                }

                #region оригинальный код
                //try
                //{
                //    WallResponse newWallResponse = Globals.BaseLogic.LoadWallPostList(15, true, false);

                //    //WallResponse newWallResponse = new WallResponse();

                //    #region Тестовые данные
                //    //WallPost WallPost1 = new WallPost();
                //    //newWallResponse.wrWallPosts.Add(WallPost1);

                //    //WallData WallData1 = new WallData();
                //    //WallPost1.wpWallData = WallData1;
                //    //WallData1.wdText = "Сообщение со стены!!!";

                //    //PostSender PostSender1 = new PostSender();
                //    //WallPost1.wpPostSender = PostSender1;
                //    //PostSender1.psUserName = "******";

                //    //WallPost WallPost2 = new WallPost();
                //    //newWallResponse.wrWallPosts.Add(WallPost2);

                //    //WallData WallData2 = new WallData();
                //    //WallPost2.wpWallData = WallData2;
                //    //WallData2.wdText = "Привет мир! Hello World!";

                //    //PostSender PostSender2 = new PostSender();
                //    //WallPost2.wpPostSender = PostSender2;
                //    //PostSender2.psUserName = "******";

                //    //newWallResponse.wrWallPosts.Add(WallPost1);
                //    //newWallResponse.wrWallPosts.Add(WallPost2);
                //    #endregion

                //    view.Model.Clear();

                //    foreach (WallPost newWallPost in newWallResponse.wrWallPosts)
                //    {
                //        WallPostListViewItem newWallPostListViewItem = new WallPostListViewItem();

                //        newWallPostListViewItem.Name = newWallPost.wpPostSender.psUserName;
                //        newWallPostListViewItem.Text = newWallPost.wpWallData.wdText;

                //        view.Model.Add(newWallPostListViewItem);
                //    }

                //    view.Model.Sort();

                //    view.UpdateView("LoadListResponse");
                //}
                //catch (Exception newException)
                //{
                //    ViewData["LoadListResponseMessage"] = newException.Message;

                //    view.UpdateView("LoadListResponseNegative");
                //}
                #endregion
                //
            }

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

            if (key == "GoToMain")
            {
                MasterForm.Navigate <MainController>();
            }

            if (key == "CloseApplication")
            {
                //TODO Закрыть приложение
                Application.Exit();
            }
        }
Example #25
0
        /// <summary>
        /// This method indicates that something has been changed in the view.
        /// </summary>
        /// <param name="key">The string key to identify what has been changed.</param>
        protected override void OnViewStateChanged(string key)
        {
            #region StartNotificator
            if (key == "StartNotificator")
            {
                if (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);
                }
                //MessageBox.Show(Resources.MainView_Button_NotificatorCantStart);
            }
            #endregion

            if (key == "StopNotificator")
            {
                // Interprocess.StopService();
            }

            #region Переходы по тулбару

            #region GoToNews

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

            #endregion

            #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

            #endregion
        }
Example #26
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>();
            }
        }
        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>();
            }
        }
Example #28
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>();
            }
        }
Example #29
0
        /// <summary>
        /// This method indicates that something has been changed in the view.
        /// </summary>
        /// <param name="key">The string key to identify what has been changed.</param>
        protected override void OnViewStateChanged(string key)
        {
            if (key == "LoadSettings")
            {
                Configuration.LoadConfigSettings();
            }

            #region RefreshSettings
            if (key == "RefreshSettings")
            {
                var settings = new List <SettingsListViewItems>();

                #region Автообновление

                /*
                 * settings.Add(new SettingsListViewItems
                 * {
                 *  GroupName = Resources.SettingsView_GroupHeader,
                 *  OptionName = Resources.AutoUpdateAtStart,
                 *  OptionType = SettingsKineticControlOptionType.CheckBox,
                 *  OptionValue = Configuration.AutoUpdateAtStart,
                 * });
                 */
                #endregion

                //Загрузка данных
                #region Обновление данных
                string dataRenew = "";
                switch (Configuration.DataRenewType)
                {
                case DataRenewVariants.DontUpdate:
                    dataRenew = Resources.DontUpdate;
                    break;

                case DataRenewVariants.AutoUpdateAtStart:
                    dataRenew = Resources.AutoUpdateAtStart;
                    break;

                case DataRenewVariants.UpdateAlways:
                    dataRenew = Resources.UpdateAlways;
                    break;
                }
                settings.Add(new SettingsListViewItems
                {
                    GroupName   = Resources.SettingsView_GroupHeader,
                    OptionName  = Resources.DataRefreshing,
                    OptionType  = SettingsKineticControlOptionType.MultiValue,
                    OptionValue = dataRenew,
                    Tag         =
                        (EventHandler)
                        (delegate
                    {
                        using (new WaitWrapper(false))
                        {
                            MasterForm.Navigate <MultiValueSettingsController>(
                                "DataRefreshing");
                        }
                    })
                }
                             );
                #endregion
                #region Только Wi-Fi

                settings.Add(new SettingsListViewItems
                {
                    GroupName   = Resources.SettingsView_GroupHeader,
                    OptionName  = Resources.SettingsView_OnlyWiFi,
                    OptionType  = SettingsKineticControlOptionType.CheckBox,
                    OptionValue = Configuration.OnlyWiFi
                }
                             );

                #endregion
                #region Обновлять в роуминге

                settings.Add(new SettingsListViewItems
                {
                    GroupName   = Resources.SettingsView_GroupHeader,
                    OptionName  = Resources.RenewInRoam,
                    OptionType  = SettingsKineticControlOptionType.CheckBox,
                    OptionValue = Configuration.RenewInRoam
                }
                             );

                #endregion

                //Отправка фотографий
                #region  азрешение изображений

                string imageMaxSize = "";
                switch (Configuration.ImageMaxSize)
                {
                case ImageMaxSizeTypes.DoNotChange:
                    imageMaxSize = Resources.Settings_DoNotChange;
                    break;

                case ImageMaxSizeTypes.Res640X480:
                    imageMaxSize = Resources.Settings_Res640X480;
                    break;
                }
                settings.Add(new SettingsListViewItems
                {
                    GroupName   = Resources.SettingsView_GroupHeader_Photos,
                    OptionName  = Resources.ImageMaxSize,
                    OptionType  = SettingsKineticControlOptionType.MultiValue,
                    OptionValue = imageMaxSize,
                    Tag         =
                        (EventHandler)
                        (delegate
                    {
                        using (new WaitWrapper(false))
                        {
                            MasterForm.Navigate <MultiValueSettingsController>("ImageMaxSize");
                        }
                    }),
                }
                             );

                #endregion

                //Уведомления
                #region Частота обновления
                // Нотификатор отключён по просьбе пользователей - сильно садит батарейку и кушает много траффика

                /*
                 * string backgroundNotification = "";
                 * switch (Configuration.BackgroundNotification)
                 * {
                 *  //case BackgroundNotificationTypes.OnStart:
                 *  //  backgroundNotification = Resources.SettingsView_WhileStatrted;
                 *  //break;
                 *  case BackgroundNotificationTypes.Off:
                 *      backgroundNotification = Resources.Settings_Off;
                 *      break;
                 *  case BackgroundNotificationTypes.In5Min:
                 *      backgroundNotification = Resources.Settings_In5Min;
                 *      break;
                 *  case BackgroundNotificationTypes.In10Min:
                 *      backgroundNotification = Resources.Settings_In10Min;
                 *      break;
                 *  case BackgroundNotificationTypes.InHour:
                 *      backgroundNotification = Resources.Settings_InHour;
                 *      break;
                 * }
                 * settings.Add(new SettingsListViewItems
                 * {
                 *  GroupName = Resources.SettingsView_GroupHeader_Notifications,
                 *  OptionName = Resources.BackgroundNotification,
                 *  OptionType = SettingsKineticControlOptionType.MultiValue,
                 *  OptionValue = backgroundNotification,
                 *  Tag =
                 *      (EventHandler)
                 *      (delegate
                 *      {
                 *          using (new WaitWrapper(false))
                 *          {
                 *              MasterForm.Navigate<MultiValueSettingsController>(
                 *                  "BackgroundNotification");
                 *          }
                 *      }),
                 * }
                 *  );
                 */
                #endregion

                ViewData["Settings"] = settings;
                view.UpdateView("SettingsLoaded");
            }
            #endregion

            #region ApplyAndSaveSettings
            if (key == "ApplyAndSaveSettings")
            {
                var settings = (List <SettingsListViewItems>)ViewData["Settings"];

                foreach (var settingsItem in settings)
                {
                    #region AutoUpdateAtStart

                    /*
                     * if (settingsItem.OptionName == Resources.AutoUpdateAtStart)
                     * {
                     *  if ((bool)settingsItem.OptionValue)
                     *  {
                     *      Configuration.AutoUpdateAtStart = true;
                     *  }
                     *  else
                     *  {
                     *      Configuration.AutoUpdateAtStart = false;
                     *  }
                     * }
                     */
                    #endregion

                    #region UpdateFriendsStatus
                    if (settingsItem.OptionName == Resources.UpdateFriendsStatus)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.UpdateFriendsStatus = true;
                        }
                        else
                        {
                            Configuration.UpdateFriendsStatus = false;
                        }
                    }
                    #endregion

                    #region RenewInRoam
                    if (settingsItem.OptionName == Resources.RenewInRoam)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.RenewInRoam = true;
                        }
                        else
                        {
                            Configuration.RenewInRoam = false;
                        }
                    }
                    #endregion

                    #region WiFi
                    if (settingsItem.OptionName == Resources.SettingsView_OnlyWiFi)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.OnlyWiFi = true;
                        }
                        else
                        {
                            Configuration.OnlyWiFi = false;
                        }
                    }
                    #endregion

                    /*#region NotificateFriendsBirthdays
                     * if (settingsItem.OptionName == Resources.NotificateFriendsBirthdays)
                     * {
                     *  if ((bool)settingsItem.OptionValue)
                     *  {
                     *      Configuration.NotificateFriendsBirthdays = true;
                     *  }
                     *  else
                     *  {
                     *      Configuration.NotificateFriendsBirthdays = false;
                     *  }
                     * }
                     #endregion*/

                    #region TraceMessagess
                    if (settingsItem.OptionName == Resources.Settings_Messages)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.TraceMessagess = true;
                        }
                        else
                        {
                            Configuration.TraceMessagess = false;
                        }
                    }
                    #endregion

                    #region TraceComments
                    if (settingsItem.OptionName == Resources.Settings_Comments)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.TraceComments = true;
                        }
                        else
                        {
                            Configuration.TraceComments = false;
                        }
                    }
                    #endregion

                    #region TraceFriends
                    if (settingsItem.OptionName == Resources.Settings_Friends)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.TraceFriends = true;
                        }
                        else
                        {
                            Configuration.TraceFriends = false;
                        }
                    }
                    #endregion

                    #region TraceFriendsNews
                    if (settingsItem.OptionName == Resources.Settings_FriendsNews)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.TraceFriendsNews = true;
                        }
                        else
                        {
                            Configuration.TraceFriendsNews = false;
                        }
                    }
                    #endregion

                    #region TraceFriendsPhotos
                    if (settingsItem.OptionName == Resources.Settings_FriendsPhotos)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.TraceFriendsPhotos = true;
                        }
                        else
                        {
                            Configuration.TraceFriendsPhotos = false;
                        }
                    }
                    #endregion

                    #region TraceWallMessages
                    if (settingsItem.OptionName == Resources.Settings_WallMessages)
                    {
                        if ((bool)settingsItem.OptionValue)
                        {
                            Configuration.TraceWallMessages = true;
                        }
                        else
                        {
                            Configuration.TraceWallMessages = false;
                        }
                    }
                    #endregion
                }

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

                if (Configuration.BackgroundNotification != BackgroundNotificationTypes.Off)
                {
                    Globals.BaseLogic.IDataLogic.SetNtfAutorun();
                    //проверить изменился ли NotificationTimer, если да, то перезапустить нотификатор
                    string timer = Globals.BaseLogic.IDataLogic.GetNotificationTimer();
                    if ((Configuration.BackgroundNotification == BackgroundNotificationTypes.In5Min &&
                         timer != "300000") ||
                        (Configuration.BackgroundNotification == BackgroundNotificationTypes.In10Min &&
                         timer != "600000") ||
                        (Configuration.BackgroundNotification == BackgroundNotificationTypes.InHour &&
                         timer != "3600000"))
                    {
                        OnViewStateChanged("StopNotificator");
                    }

                    OnViewStateChanged("StartNotificator");
                }
                else
                {
                    OnViewStateChanged("StopNotificator");
                    Globals.BaseLogic.IDataLogic.DelNtfAutorun();
                }

                #endregion

                Configuration.SaveConfigSettings();
                NavigationService.GoBack();
            }
            #endregion

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

            #region StartNotificator
            if (key == "StartNotificator")
            {
                if (Globals.BaseLogic.IDataLogic.GetToken() != "")
                {
                    using (new WaitWrapper(false))
                    {
                        ////Запуск службы нотификатора
                        //try
                        //{
                        //    if (!Interprocess.IsServiceRunning) Interprocess.StartService();
                        //}
                        //catch (Exception ex)
                        //{
                        //    //Ошибка при запуске нотификатора
                        //    DebugHelper.WriteLogEntry(ex, "Notificator start error");
                        //}
                    }
                }
                else
                {
                    DialogControl.ShowQuery(Resources.MainView_Button_NotificatorCantStart, DialogButtons.OK);
                }
                //MessageBox.Show(Resources.MainView_Button_NotificatorCantStart);
            }
            #endregion

            #region StopNotificator
            if (key == "StopNotificator")
            {
                using (new WaitWrapper())
                {
                    try
                    {
                        //Interprocess.StopService();
                        //int cnt = 0;
                        //while (Interprocess.IsServiceRunning && cnt < 6)
                        //{
                        //    System.Threading.Thread.Sleep(500);
                        //    cnt++;
                        //}
                    }
                    catch (Exception ex)
                    {
                        //Ошибка при остановке нотификатора
                        DebugHelper.WriteLogEntry(ex, "Notificator stop error");
                    }
                }
            }
            #endregion
        }