/// <summary> /// Gửi Bản tin đăng bài cá nhân lên Server /// </summary> public async void SendContentPost() { // Kiểm tra xem có homepageInfo chưa? if (Services.Service.Instiance().NewsSiteVM.homePageInfo == null) { UserDialogs.Instance.Toast("Không xác định được trang cá nhân"); return; } var idhome = Services.Service.Instiance().NewsSiteVM.homePageInfo.homePageId; bool isPost = true; account = Helper.Instance().MyAccount; //thêm nội dung cho content var list = new List <string>(); // Lấy ảnh của bài đăng if (images.Count > 0) { isPost = await postMuiltiImage(); } QHVector Image_Id = new QHVector(); var imagesID = new List <long>(); if (!isPost) { for (int i = 0; i < images.Count; i++) { list.Add(images[i].UriImage); Image_Id.SetAt(i, new QHNumber(images[i].Image_Id)); imagesID.Add(images[i].Image_Id); } } QHMessage msg = new QHMessage((ushort)PingPongMsg.MSG_HOMEPAGE_ADD_CONTENT_REQ); json = new ContentFormat { Text = personalPost.content, Images_Id = list }; string output = JsonConvert.SerializeObject(json); //kiểm tra account if (Helper.Instance().CheckLogin()) { account = Helper.Instance().MyAccount; msg.SetAt((byte)MsgHomePageAddContentReq.SenderID, new QHNumber(account.Number_Id)); msg.SetAt((byte)MsgHomePageAddContentReq.HomePageID, new QHNumber(Services.Service.Instiance().NewsSiteVM.homePageInfo.homePageId)); msg.SetAt((byte)MsgHomePageAddContentReq.Content, new QHString(output)); msg.SetAt((byte)MsgHomePageAddContentReq.ImagesID, Image_Id); Services.Service.Instiance().SendMessage(msg); Debug.WriteLine("MSG_HOMEPAGE_ADD_CONTENT_REQ: " + msg.JSONString()); } }
/// <summary> /// Bản tin đăng bài từ Server trả về /// </summary> /// <param name="msg"></param> public void UpdateContent(QHMessage msg) { long errorCode = 0; long contentId = 0; long homePageId = 0; long CreateDate = 0; msg.TryGetAt((byte)MsgHomePageAddContentAck.Error, ref errorCode); if (errorCode == 0) { if (msg.TryGetAt((byte)MsgHomePageAddContentAck.ContentID, ref contentId)) { } if (msg.TryGetAt((byte)MsgHomePageAddContentAck.HomePageID, ref homePageId)) { } var contentInfo = new ContentInfo(); contentInfo.Accounts = Helper.Instance().MyAccount; if (msg.TryGetAt((byte)MsgHomePageAddContentAck.CreateDate, ref CreateDate)) { contentInfo.Detail.Created = CreateDate; } contentInfo.Detail.Id = contentId; contentInfo.Detail.Content = JsonConvert.SerializeObject(json); // Thêm vào cached content để lần sau lấy ra dùng if (!Helper.Instance().ListContent.ContainsKey(contentId)) { lock (Helper.Instance().ListContent) { Helper.Instance().ListContent.Add(contentId, contentInfo); } } else { Helper.Instance().ListContent[contentId] = contentInfo; } Device.BeginInvokeOnMainThread(() => { Services.Service.Instiance().NewsSiteVM.ListNews.Insert(0, Helper.Instance().ListContent[contentId]); }); } else { Debug.WriteLine("Error code: " + msg.JSONString()); } }
/// <summary> /// Xử lý bản tin login từ hệ thóng trả vế /// </summary> /// <param name="msg"></param> public void LoginAckProcess(QHMessage msg) { //try //{ Chat.LoginErrorCode login_error = (Chat.LoginErrorCode)(msg.GetAt((byte)Chat.MsgLoginAckArg.ErrorCode) as QHNumber).value; switch (login_error) { case Chat.LoginErrorCode.SUCCESS: if (!Helper.Instance().CheckLogin()) { Helper.Instance().MyAccount = new Accounts(); } long sessionId = 0; string phone = ""; string fullname = ""; string email = ""; long numberId = 0; string avarta = ""; string address = ""; long birthday = 0; if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.SessionID, ref sessionId)) { App.SessionID = sessionId; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.PhoneNumber, ref phone)) { Helper.Instance().MyAccount.Phone = phone; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.FullName, ref fullname)) { Helper.Instance().MyAccount.fullname = fullname; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.Email, ref email)) { Helper.Instance().MyAccount.Email = email; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.NumberID, ref numberId)) { Helper.Instance().MyAccount.Number_Id = (uint)numberId; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.AvatarURI, ref avarta)) { Helper.Instance().MyAccount.Avatar_Uri = avarta; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.Address, ref address)) { Helper.Instance().MyAccount.Address = address; } if (msg.TryGetAt((byte)Chat.MsgLoginAckArg.BirthDay, ref birthday)) { Helper.Instance().MyAccount.Birthday = birthday; } //Kiểm tra filename Helper.Instance().ConvertPingPongToChat(); Helper.Instance().MyAccount.Last_Time_Sync_Contact = 0; // Services.Service.Instiance().Namefile = Helper.Instance().MyAccount.Number_Id.ToString(); AppChat.Helpers.Helper.Instiance().nameDataBase = Helper.Instance().AccountChat.NumberId.ToString(); // AppChat.Helpers.Helper.Instiance().database.InsertOrReAccount(account); AppChat.Helpers.Helper.Instiance().database.InsertOrReAccount(Helper.Instance().AccountChat); // Thay layout ảnh đại diện HomePage.avartaChange(); if (AppChat.Helpers.Helper.Instiance().database != null) { if (Helper.Instance().MyAccount.Avatar_Uri.Equals("") || Helper.Instance().MyAccount.Avatar_Uri == null) { Helper.Instance().MyAccount.Avatar_Uri = "account.png"; } if (Page != null) { Device.BeginInvokeOnMainThread(async() => { Xamarin.Forms.DependencyService.Get <AppChat.Dependency.ILocalCache>().SetData(CrossDeviceInfo.Current.Id, Helper.Instance().AccountChat); // MessagingCenter.Send<App>((App)Xamarin.Forms.Application.Current, "Login"); Helper.Instance().GetContactGroupChat = true; MessagingCenter.Send <App>((App)Xamarin.Forms.Application.Current, "Login1"); await Page.Navigation.PopToRootAsync(); }); } } Debug.WriteLine("LoginJson: " + msg.JSONString()); break; case Chat.LoginErrorCode.ERR_PHONE_NOT_EXIST: { // Login in fale thì xoa file Xamarin.Forms.DependencyService.Get <ILocalCache>().RemoveData <Accounts>(CrossDeviceInfo.Current.Id); if (Page != null) { Device.BeginInvokeOnMainThread(() => { Page.DisplayAlert("Thông báo", "Số điện thoại không tồn tại", "Ok"); }); } break; } case Chat.LoginErrorCode.ERR_PASSWORD_MISMATCH: { Xamarin.Forms.DependencyService.Get <ILocalCache>().RemoveData <Accounts>(CrossDeviceInfo.Current.Id); if (Page != null) { Device.BeginInvokeOnMainThread(() => { Page.DisplayAlert("Thông báo", "Mật khẩu không đúng", "Ok"); }); } break; } case Chat.LoginErrorCode.ERR_USERNAME_NOT_EXIST: { Xamarin.Forms.DependencyService.Get <ILocalCache>().RemoveData <Accounts>(CrossDeviceInfo.Current.Id); if (Page != null) { Device.BeginInvokeOnMainThread(() => { Page.DisplayAlert("Thông báo", "Tài khoản đăng nhập không đúng", "Ok"); }); } break; } } //} //catch (Exception ex) //{ // if (Page != null) // { // Device.BeginInvokeOnMainThread(() => // { // Page.DisplayAlert("Lỗi Login", ex.Message, "Ok"); // }); // } //} }