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