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

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

            MessUserCorrespondence newMessUserCorrespondence = null;

            try
            {
                lc.Current = 5;

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

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

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

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

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

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

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

            view.UpdateView("LoadListResponse");

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

            t.Start();

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

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

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

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

                    lc.ShowLoading(true);

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

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

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

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

            #endregion

            #region ReloadList

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

            #endregion

            #region RefreshList

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

            #endregion

            #region SentMessage

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

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

            #endregion

            #region Back

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

                //DraftMessagesDataIO.SetDraftMessage(text, uid);

                MasterForm.Navigate <MessagesChainsListController>();
            }

            #endregion

            if (key == "GoGoToLogin")
            {
                MasterForm.Navigate <LoginController>();
            }
        }
Esempio n. 3
0
        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();
        }