private async void GetChatList() { try { chatlistdetail = await FirebaseChatHelper.GetChatForGroup("GroupChat", user_id, JobData.job_id); } catch (Exception ex) { chatlistdetail = new List <ChatDetailListModel>(); //await MaterialDialog.Instance.SnackbarAsync(AppResource.error_ServerError, 3000); } if (AllChatDetailList != null && AllChatDetailList.Count == chatlistdetail.Count) { } else { AllChatDetailList = new ObservableCollection <ChatDetailListModel>(chatlistdetail); ChatDetailList = AllChatDetailList; COUNT = ChatDetailList.Count; MessagingCenter.Send("", "ScrollToEnd"); MessagingCenter.Unsubscribe <string, int>(this, "ChatDetailTitle"); var msgItem = new GroupChatDBModel() { GroupJobId = JobData.job_id, UserMessagesList = ChatDetailList }; if (groupChatMessagesDbService.IsGroupChatPresentInDB()) { var newmsgItem = groupChatMessagesDbService.ReadAllItems().Where(x => x.GroupJobId == JobData.job_id).ToList(); if (newmsgItem != null && newmsgItem.Count > 0) { var msgID = newmsgItem.FirstOrDefault().ID; BsonValue bsonid = msgID; groupChatMessagesDbService.UpdateGroupChatDataInDb(bsonid, msgItem); } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } if (ChatDetailList != null && ChatDetailList.Count > 0) { ToolbarIcon = "resource://Khadamat_CustomerApp.SvgImages.toolbar.svg"; } else { ToolbarIcon = string.Empty; } chatTimer = new Timer(_ => UpdateChatFromFirebase(), null, 0, 1000); }
public bool IsGroupChatPresentInDB() { GroupChatDBModel model = liteDBService.ReadAllItems <GroupChatDBModel>().FirstOrDefault(t => t.ID != 0); if (model == null) { return(false); } return(true); }
public async void AddMessagetoFirebase() { try { if (Common.CheckConnection()) { var item = new ChatDetailListModel() { sender_user_id = user_id, job_id = JobData.job_id, coordinator_id = JobData.coordinator_id, worker_id = JobData.worker_id, customer_id = null, sender_user_Name = user_name, coordinator_Name = !string.IsNullOrEmpty(JobData.coordinator_Name) ? AppResource.coordinator_Name : JobData.coordinator_Name, job_Name = ChatDetailTitle, receiver_user_Name = null, worker_Name = JobData.worker_Name, customer_Name = null, image_url = null, file_url = null, is_file = false, is_image = false, is_loading = false, IsViewBtnVisible = false, is_message = true, msg_datetime = DateTime.Now, user_message = MessageEntry, user_message_time = DateTime.Now.ToString("dd/MM/yyyy, hh:mm:ss tt"), is_sender = true, time_stamp = DependencyService.Get <IGetTimeStamp>().TimeStamp() }; //var request = new ChatDetailModelApi() //{ // from_user_id = user_id, // to_user_id = JobData.job_id //}; Chatdetailresponse response; try { MessageEntry = string.Empty; response = await _webApiRestClient.GetAsync <Chatdetailresponse>(string.Format(ApiUrl.AddGroupChatRequest, JobData.job_id, Convert.ToInt32(Enums.UserTypeEnum.Customer))); } catch (Exception ex) { Console.WriteLine("SendMsgApi_Exception:- " + ex.Message); response = null; await MaterialDialog.Instance.SnackbarAsync(message : AppResource.error_ServerError, msDuration : 3000); return; } if (response != null) { if (response.status) { try { AllChatDetailList.Add(item); } catch (Exception ex) { } ChatDetailList = AllChatDetailList; MessagingCenter.Send("", "ScrollToEnd"); MessageEntry = string.Empty; var data = await FirebaseChatHelper.AddChatMessageForGroup(item, "GroupChat"); } else if (response.message == null) { try { AllChatDetailList.Add(item); } catch (Exception ex) { } ChatDetailList = AllChatDetailList; MessagingCenter.Send("", "ScrollToEnd"); MessageEntry = string.Empty; var data = await FirebaseChatHelper.AddChatMessageForGroup(item, "GroupChat"); } else { await MaterialDialog.Instance.SnackbarAsync(message : response.message, msDuration : 3000); } var msgItem = new GroupChatDBModel() { GroupJobId = JobData.job_id, UserMessagesList = ChatDetailList }; if (groupChatMessagesDbService.IsGroupChatPresentInDB()) { var newmsgItem = groupChatMessagesDbService.ReadAllItems().Where(x => x.GroupJobId == JobData.job_id).ToList(); if (newmsgItem != null && newmsgItem.Count > 0) { var msgID = newmsgItem.FirstOrDefault().ID; msgItem.ID = msgID; BsonValue bsonid = msgID; groupChatMessagesDbService.UpdateGroupChatDataInDb(bsonid, msgItem); } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } } else { await MaterialDialog.Instance.SnackbarAsync(message : AppResource.error_InternetError, msDuration : 3000); } } catch (Exception ex) { //await MaterialDialog.Instance.SnackbarAsync(message: ex.Message, // msDuration: 3000); Console.WriteLine("SendMsgCommand_Exception:- " + ex.Message); } }
public async void AddMessageFirebase(ChatDetailListModel item) { try { if (Common.CheckConnection()) { Chatdetailresponse response; try { response = await _webApiRestClient.GetAsync <Chatdetailresponse>(string.Format(ApiUrl.AddGroupChatRequest, JobData.job_id, Convert.ToInt32(Enums.UserTypeEnum.Customer))); } catch (Exception ex) { Console.WriteLine("SendMsgApi_Exception:- " + ex.Message); response = null; IsBackPress = true; await MaterialDialog.Instance.SnackbarAsync(message : AppResource.error_ServerError, msDuration : 3000); return; } if (response != null) { if (response.status) { MessagingCenter.Send("", "ScrollToEnd"); MessageEntry = string.Empty; var data = await FirebaseChatHelper.AddChatMessageForGroup(item, "GroupChat"); } else if (response.message == null) { MessagingCenter.Send("", "ScrollToEnd"); MessageEntry = string.Empty; var data = await FirebaseChatHelper.AddChatMessageForGroup(item, "GroupChat"); } else { await MaterialDialog.Instance.SnackbarAsync(message : response.message, msDuration : 3000); } var msgItem = new GroupChatDBModel() { GroupJobId = JobData.job_id, UserMessagesList = ChatDetailList }; if (groupChatMessagesDbService.IsGroupChatPresentInDB()) { var newmsgItem = groupChatMessagesDbService.ReadAllItems().Where(x => x.GroupJobId == JobData.job_id).ToList(); if (newmsgItem != null && newmsgItem.Count > 0) { var msgID = newmsgItem.FirstOrDefault().ID; msgItem.ID = msgID; BsonValue bsonid = msgID; groupChatMessagesDbService.UpdateGroupChatDataInDb(bsonid, msgItem); } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } IsBackPress = true; } else { await MaterialDialog.Instance.SnackbarAsync(message : AppResource.error_InternetError, msDuration : 3000); } } catch (Exception ex) { //await MaterialDialog.Instance.SnackbarAsync(message: ex.Message, // msDuration: 3000); IsBackPress = true; Console.WriteLine("SendMsgCommand_Exception:- " + ex.Message); } }
private async void UpdateChatFromFirebase() { try { try { chatlistdetail = await FirebaseChatHelper.GetChatForGroup("GroupChat", user_id, JobData.job_id); } catch (Exception ex) { chatlistdetail = new List <ChatDetailListModel>(); } if (chatlistdetail.Count > ChatDetailList.Count) { Device.BeginInvokeOnMainThread(() => { MakeGroupChatRead(); }); updatechatlistdetail = chatlistdetail.Skip(ChatDetailList.Count).ToList(); try { foreach (var item in updatechatlistdetail) { AllChatDetailList.Add(item); } } catch (Exception ex) { } ChatDetailList = AllChatDetailList; COUNT = ChatDetailList.Count; MessagingCenter.Send("", "ScrollToEnd"); var msgItem = new GroupChatDBModel() { GroupJobId = JobData.job_id, UserMessagesList = ChatDetailList }; if (groupChatMessagesDbService.IsGroupChatPresentInDB()) { var newmsgItem = groupChatMessagesDbService.ReadAllItems().Where(x => x.GroupJobId == JobData.job_id).ToList(); if (newmsgItem != newmsgItem) { var msgID = newmsgItem.FirstOrDefault().ID; BsonValue bsonid = msgID; groupChatMessagesDbService.UpdateGroupChatDataInDb(bsonid, msgItem); } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } else { groupChatMessagesDbService.CreateGroupChatDataInDB(msgItem); } } if (ChatDetailList != null && ChatDetailList.Count > 0) { ToolbarIcon = "resource://Khadamat_CustomerApp.SvgImages.toolbar.svg"; } else { ToolbarIcon = string.Empty; } } catch (Exception ex) { } }
public GroupChatDBModel UpdateGroupChatDataInDb(BsonValue bsonid, GroupChatDBModel item) { return(liteDBService.UpdateItem(bsonid, item)); }
public GroupChatDBModel DeleteGroupChatItemFromDB(BsonValue id, GroupChatDBModel item) { return(liteDBService.DeleteItem(id, item)); }
public GroupChatDBModel CreateGroupChatDataInDB(GroupChatDBModel item) { return(liteDBService.CreateItem(item)); }