Esempio n. 1
0
        /// <summary>
        /// ViewModel 資料初始化
        /// </summary>
        /// <returns></returns>
        private async Task ViewModelInit()
        {
            ChatContentCollection.Clear();
            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Girl,
                話內容   = "我最近手機掉了,更換了電話號碼",
                話類型   = 話類型.他人,
                話文字顏色 = Color.Green
            });

            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Girl,
                話內容   = "這是我的新電話號碼 0987654321",
                話類型   = 話類型.他人,
                話文字顏色 = Color.Green
            });
            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Boy,
                話內容   = "妳現在在哪裡呀?",
                話類型   = 話類型.自己,
                話文字顏色 = Color.Purple
            });


            await Task.Delay(100);
        }
Esempio n. 2
0
        /// <summary>
        /// ViewModel 資料初始化
        /// </summary>
        /// <returns></returns>
        private async Task ViewModelInit()
        {
            ChatContentCollection.Clear();
            //ChatContentCollection.Add(new ChatContent
            //{
            //    對話人圖片 = Girl,
            //    對話內容 = "我最近手機掉了,更換了電話號碼",
            //    對話類型 = 對話類型.他人,
            //    對話文字顏色 = Color.Green
            //});

            //ChatContentCollection.Add(new ChatContent
            //{
            //    對話人圖片 = Girl,
            //    對話內容 = "這是我的新電話號碼 0987654321",
            //    對話類型 = 對話類型.他人,
            //    對話文字顏色 = Color.Green
            //});
            //ChatContentCollection.Add(new ChatContent
            //{
            //    對話人圖片 = Boy,
            //    對話內容 = "妳現在在哪裡呀?",
            //    對話類型 = 對話類型.自己,
            //    對話文字顏色 = Color.Purple
            //});
            var fooMyUser = new LoginRepository();
            await fooMyUser.ReadAsync();

            UserName = fooMyUser.Item.MyUser.UserName;
            await Task.Delay(100);
        }
Esempio n. 3
0
        public void OnNavigatedTo(NavigationParameters parameters)
        {
            if (parameters.ContainsKey("title"))
            {
                Title = (string)parameters["title"] + " and Prism";
            }

            ChatContentCollection.Clear();
            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Girl,
                話內容   = "我最近手機掉了,更換了電話號碼",
                話類型   = 話類型.他人,
                話文字顏色 = Color.Green
            });

            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Girl,
                話內容   = "這是我的新電話號碼 0987654321",
                話類型   = 話類型.他人,
                話文字顏色 = Color.Green
            });
            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Boy,
                話內容   = "妳現在在哪裡呀?",
                話類型   = 話類型.自己,
                話文字顏色 = Color.Purple
            });
        }
Esempio n. 4
0
        public void OnNavigatedTo(INavigationParameters parameters)
        {
            ChatContentCollection.Clear();
            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Girl,
                話內容   = "我最近手機掉了,更換了電話號碼",
                話類型   = 話類型.他人,
                話文字顏色 = Color.Green
            });

            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Girl,
                話內容   = "這是我的新電話號碼 0987654321",
                話類型   = 話類型.他人,
                話文字顏色 = Color.Green
            });
            ChatContentCollection.Add(new ChatContent
            {
                話人圖片  = Boy,
                話內容   = "妳現在在哪裡呀?",
                話類型   = 話類型.自己,
                話文字顏色 = Color.Purple
            });
        }
Esempio n. 5
0
        /// <summary>
        /// ViewModel 資料初始化
        /// </summary>
        /// <returns></returns>
        private async Task ViewModelInit()
        {
            ChatContentCollection.Clear();
            var fooMyUser = new LoginRepository();
            await fooMyUser.ReadAsync();

            UserName = fooMyUser.Item.MyUser.UserName;
            UserID   = fooMyUser.Item.MyUser.UserID;
            await Task.Delay(100);
        }
Esempio n. 6
0
        public MainPageViewModel()
        {
            送出Command = new DelegateCommand(() =>
            {
                if (送出對話內容 == "1")
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Boy,
                        話內容   = "妳是小蕙嗎? 好久不見了",
                        話類型   = 話類型.自己,
                        話文字顏色 = Color.Purple
                    });
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Girl,
                        話內容   = "沒想到你還記得我",
                        話類型   = 話類型.他人,
                        話文字顏色 = Color.Green
                    });
                }
                else if (送出對話內容 == "2")
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Boy,
                        話內容   = "明天出來喝咖啡吧",
                        話類型   = 話類型.自己,
                        話文字顏色 = Color.Purple
                    });
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Girl,
                        話內容   = "好呀 ~~",
                        話類型   = 話類型.他人,
                        話文字顏色 = Color.Green
                    });
                }
                else
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Boy,
                        話內容   = 送出對話內容,
                        話類型   = 話類型.自己,
                        話文字顏色 = Color.Purple
                    });
                }

                送出對話內容 = "";
            });
        }
Esempio n. 7
0
        public MainPageViewModel(INavigationService navigationService, IEventAggregator eventAggregator,
                                 IPageDialogService dialogService)
        {
            #region 相依性服務注入的物件

            _dialogService     = dialogService;
            _eventAggregator   = eventAggregator;
            _navigationService = navigationService;
            #endregion

            #region 頁面中綁定的命令
            送出Command = new DelegateCommand(() =>
            {
                if (送出對話內容 == "1")
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Boy,
                        話內容   = "妳是小蕙嗎? 好久不見了",
                        話類型   = 話類型.自己,
                        話文字顏色 = Color.Purple
                    });
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Girl,
                        話內容   = "沒想到你還記得我",
                        話類型   = 話類型.他人,
                        話文字顏色 = Color.Green
                    });
                }
                else if (送出對話內容 == "2")
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Boy,
                        話內容   = "明天出來喝咖啡吧",
                        話類型   = 話類型.自己,
                        話文字顏色 = Color.Purple
                    });
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Girl,
                        話內容   = "好呀 ~~",
                        話類型   = 話類型.他人,
                        話文字顏色 = Color.Green
                    });
                }
                else
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        話人圖片  = Boy,
                        話內容   = 送出對話內容,
                        話類型   = 話類型.自己,
                        話文字顏色 = Color.Purple
                    });
                }

                送出對話內容 = "";
            });
            #endregion

            #region 事件聚合器訂閱

            #endregion
        }
Esempio n. 8
0
        public ChatPageViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IPageDialogService dialogService)
        {
            #region 相依性服務注入的物件
            _dialogService     = dialogService;
            _eventAggregator   = eventAggregator;
            _navigationService = navigationService;
            #endregion

            #region 頁面中綁定的命令
            //SignalRClient.OnMessageReceived += _OnMessageReceived;
            //void _OnMessageReceived(object sender,Message e)
            //{
            //    ChatContentCollection.Add(new ChatContent
            //    {
            //        姓名 = e.UserName,
            //        姓名文字顏色 = Color.Blue,
            //        對話人圖片 = Girl,
            //        對話內容 = e.MessageText,
            //        對話類型 = 對話類型.他人,
            //        對話文字顏色 = Color.Green
            //    });
            //}
            //SignalRClient.OnMessageReceived += (Message message) => {
            //    if (message.UserName != UserName)//MainHelper.UserLoginService.Item.MyUser.UserName)
            //        ChatContentCollection.Add(new ChatContent
            //        {
            //            姓名= message.UserName,
            //            姓名文字顏色 = Color.Blue,
            //            對話人圖片 = Girl,
            //            對話內容 = message.MessageText,
            //            對話類型 = 對話類型.他人,
            //            對話文字顏色 = Color.Green
            //        });
            //};

            SignalRClient.OnMessageReceived += (username, message) =>
            {
                if (username != UserName)//MainHelper.UserLoginService.Item.MyUser.UserName)
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        姓名     = username,
                        姓名文字顏色 = Color.Blue,
                        話人圖片   = Girl,
                        話內容    = message,
                        話類型    = 話類型.他人,
                        話文字顏色  = Color.Green
                    });
                }
            };

            送出Command = new DelegateCommand(() =>
            {
                ChatContentCollection.Add(new ChatContent
                {
                    話人圖片  = Boy,
                    話內容   = 送出對話內容,
                    話類型   = 話類型.自己,
                    話文字顏色 = Color.Purple
                });
                //SignalRClient.SendMessage(UserName, 送出對話內容);//MainHelper.UserLoginService.Item.MyUser.UserName
                SignalRClient.SendMessage(new Message {
                    UserName = UserName, MessageText = 送出對話內容
                });
                //if (送出對話內容 == "1")
                //{
                //    ChatContentCollection.Add(new ChatContent
                //    {
                //        對話人圖片 = Boy,
                //        對話內容 = "妳是小蕙嗎? 好久不見了",
                //        對話類型 = 對話類型.自己,
                //        對話文字顏色 = Color.Purple
                //    });
                //    ChatContentCollection.Add(new ChatContent
                //    {
                //        對話人圖片 = Girl,
                //        對話內容 = "沒想到你還記得我",
                //        對話類型 = 對話類型.他人,
                //        對話文字顏色 = Color.Green
                //    });
                //}
                //else if (送出對話內容 == "2")
                //{
                //    ChatContentCollection.Add(new ChatContent
                //    {
                //        對話人圖片 = Boy,
                //        對話內容 = "明天出來喝咖啡吧",
                //        對話類型 = 對話類型.自己,
                //        對話文字顏色 = Color.Purple
                //    });
                //    ChatContentCollection.Add(new ChatContent
                //    {
                //        對話人圖片 = Girl,
                //        對話內容 = "好呀 ~~",
                //        對話類型 = 對話類型.他人,
                //        對話文字顏色 = Color.Green
                //    });
                //}
                //else
                //{
                //    ChatContentCollection.Add(new ChatContent
                //    {
                //        對話人圖片 = Boy,
                //        對話內容 = 送出對話內容,
                //        對話類型 = 對話類型.自己,
                //        對話文字顏色 = Color.Purple
                //    });

                //}


                送出對話內容 = "";
            });
            #endregion

            #region 事件聚合器訂閱

            #endregion


            //show an error if the connection doesn't succeed for some reason
            SignalRClient.Start().ContinueWith(task => {
                if (task.IsFaulted)
                {
                    //MainPage.DisplayAlert("Error", "An error occurred when trying to connect to SignalR: " + task.Exception.InnerExceptions[0].Message, "OK");
                    Acr.UserDialogs.UserDialogs.Instance.Alert(task.Exception.InnerExceptions[0].Message, "警告", "確定");
                }
            });


            //try to reconnect every 10 seconds, just in case
            Device.StartTimer(TimeSpan.FromSeconds(10), () => {
                if (!SignalRClient.IsConnectedOrConnecting)
                {
                    SignalRClient.Start();
                }

                return(true);
            });
        }
Esempio n. 9
0
        public ChatGroupPageViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IPageDialogService dialogService)
        {
            #region 相依性服務注入的物件
            _dialogService     = dialogService;
            _eventAggregator   = eventAggregator;
            _navigationService = navigationService;
            #endregion

            #region 頁面中綁定的命令
            SignalRGroupClient.OnMessageReceived += (message) => {
                if (message.UserID != UserID)//MainHelper.UserLoginService.Item.MyUser.UserName)
                {
                    ChatContentCollection.Add(new ChatContent
                    {
                        姓名     = message.UserName,
                        姓名文字顏色 = Color.Blue,
                        話人圖片   = Girl,
                        話內容    = message.MessageText,
                        話類型    = 話類型.他人,
                        話文字顏色  = Color.Green
                    });
                }
            };

            /*
             * SignalRGroupClient.OnMessageReceived += (username, message) => {
             *  if (username != UserName)//MainHelper.UserLoginService.Item.MyUser.UserName)
             *      ChatContentCollection.Add(new ChatContent
             *      {
             *          姓名 = username,
             *          姓名文字顏色 = Color.Blue,
             *          對話人圖片 = Girl,
             *          對話內容 = message,
             *          對話類型 = 對話類型.他人,
             *          對話文字顏色 = Color.Green
             *      });
             * };
             */
            送出Command = new DelegateCommand(() =>
            {
                ChatContentCollection.Add(new ChatContent
                {
                    話人圖片  = Boy,
                    話內容   = 送出對話內容,
                    話類型   = 話類型.自己,
                    話文字顏色 = Color.Purple
                });
                SignalRGroupClient.SendMessage(1004, UserID, 送出對話內容);//MainHelper.UserLoginService.Item.MyUser.UserName
                送出對話內容 = "";
            });
            #endregion

            #region 事件聚合器訂閱

            #endregion

            //show an error if the connection doesn't succeed for some reason
            SignalRGroupClient.Start().ContinueWith(task => {
                if (task.IsFaulted)
                {
                    //MainPage.DisplayAlert("Error", "An error occurred when trying to connect to SignalR: " + task.Exception.InnerExceptions[0].Message, "OK");
                    Acr.UserDialogs.UserDialogs.Instance.Alert(task.Exception.InnerExceptions[0].Message, "警告", "確定");
                }
                SignalRGroupClient.CreateRoom(1004, "聊天室1");
            });


            //try to reconnect every 10 seconds, just in case
            Device.StartTimer(TimeSpan.FromSeconds(10), () => {
                if (!SignalRGroupClient.IsConnectedOrConnecting)
                {
                    SignalRGroupClient.Start();
                }
                return(true);
            });
        }