private void AsyncGetViewData(LoadingControlInterface lc) { lc.Current = 0; // приходит через initialize int uid = Convert.ToInt32((string)ViewData["UserID"]); //ViewData["UserName"] = Globals.BaseLogic.GetFriendName(uid.ToString()); MessUserCorrespondence newMessUserCorrespondence = null; try { lc.Current = 5; newMessUserCorrespondence = Globals.BaseLogic.RefreshUserCorrespondence(uid, true, false, null); lc.Current = 95; } catch (VKException ex) { //timerKeepAwake.Enabled = false; string error = ExceptionTranslation.TranslateException(ex); if (!string.IsNullOrEmpty(error)) { //newMessUserCorrespondence = LoadDataFromCache(uid); ViewData["LoadListResponseMessage"] = error; view.UpdateView("LoadListResponseNegative"); if (ex.LocalizedMessage.Equals(ExceptionMessage.IncorrectLoginOrPassword)) { Globals.BaseLogic.IDataLogic.SetToken(string.Empty); view.UpdateView("GoToLogin");; } } } catch (OutOfMemoryException) { ViewData["LoadListResponseMessage"] = Resources.OutOfMemory; view.UpdateView("LoadListResponseNegative"); } if (newMessUserCorrespondence != null) { FillListModel(newMessUserCorrespondence); } else { //view.Model.Clear(); } //ViewData["MessageDraftInput"] = DraftMessagesDataIO.GetDraftMessage(uid); view.UpdateView("LoadListResponse"); // запускаем поток || прогрузки фотографий var t = new Thread(delegate { Globals.BaseLogic.ICommunicationLogic.LoadImagesInDictionary(); }) { IsBackground = true }; t.Start(); lc.Current = 100; }
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>(); } }
private void FillListModel(MessUserCorrespondence newMessUserCorrespondence) { view.Model.Clear(); foreach (MessageCover newMessageCover in newMessUserCorrespondence.mMessages) { MessagesListViewItem newMessagesListViewItem = new MessagesListViewItem(); newMessagesListViewItem.Uid = newMessageCover.mID.ToString(); newMessagesListViewItem.UserName = newMessageCover.mMesSender.mUserName; newMessagesListViewItem.MessageText = newMessageCover.mData.mText; newMessagesListViewItem.MessageWroteDate = newMessageCover.mTime; #region текстовое представление даты string datatimeText = string.Empty; if (newMessageCover.mTime.Date == DateTime.Now.Date) { datatimeText += Resources.Today + " "; } else if (newMessageCover.mTime.Date == DateTime.Now.AddDays(-1).Date) { datatimeText += Resources.Yesterday + " "; } else { datatimeText += newMessageCover.mTime.ToString("dd.MM.yyyy "); } datatimeText += newMessageCover.mTime.ToString("HH:mm"); newMessagesListViewItem.MessageWroteDateString = datatimeText; #endregion // выделение входящего if (newMessageCover.mIOType == MessageIOType.Inbox) { newMessagesListViewItem.IsMessageInbox = true; } else { newMessagesListViewItem.IsMessageInbox = false; } #region аватар //newMessagesListViewItem.UserPhoto = SystemConfiguration.AppInstallPath + @"\Cache\Files\Thumb\" + HttpUtility.GetMd5Hash(newMessageCover.mMesSender.mUserPhotoURL); //bool result = Globals.BaseLogic.ICommunicationLogic.LoadImage(newMessageCover.mMesSender.mUserPhotoURL, @"Thumb\" + HttpUtility.GetMd5Hash(newMessageCover.mMesSender.mUserPhotoURL), false, _afterLoadImageEventHandler, UISettings.CalcPix(50), newMessageCover.mTime, "DateTime"); //newMessagesListViewItem.IsUserPhotoLoaded = result; #endregion view.Model.Add(newMessagesListViewItem); } view.Model.Sort(); }