private void ShowForm(MasterForm newForm) { newForm.WindowState = this.ParentForm.WindowState; newForm.Size = this.ParentForm.Size; newForm.Show(); this.ParentForm.Hide(); }
/// <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 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") { //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 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>(); } }
/// <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") { 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>(); } }