Example #1
0
        public bool IsSingleChatPresentInDB()
        {
            SingleChatDBModel model = liteDBService.ReadAllItems <SingleChatDBModel>().FirstOrDefault(t => t.ID != 0);

            if (model == null)
            {
                return(false);
            }
            return(true);
        }
        private async void UpdateChatFromFirebase()
        {
            try
            {
                try
                {
                    supportchatlistdetail = await FirebaseChatHelper.GetChatForUserID(user_id, recieverUserId : RecieverId);
                }
                catch (Exception ex)
                {
                    supportchatlistdetail = new List <SingleChatListModel>();
                }
                //var _sortedlist = supportchatlistdetail.OrderBy(x => x.TimeStamp).ToList();
                //supportchatlistdetail = _sortedlist;
                if (supportchatlistdetail.Count > SupportChatList.Count)
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        MakeChatRead();
                    });
                    updatesupportchatlistdetail = supportchatlistdetail.Skip(SupportChatList.Count).ToList();
                    try
                    {
                        foreach (var item in updatesupportchatlistdetail)
                        {
                            //if (!string.IsNullOrEmpty(item.image_url) && !string.IsNullOrWhiteSpace(item.image_url))
                            //{
                            //    item.displayimage_url = new UriImageSource()
                            //    {
                            //        Uri = new Uri(item.image_url),
                            //        CachingEnabled = true,
                            //        CacheValidity = new TimeSpan(5, 0, 0, 0)
                            //    };
                            //}
                            AllSupportChatList.Add(item);
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    SupportChatList = AllSupportChatList;
                    COUNT           = SupportChatList.Count;
                    MessagingCenter.Send("", "ScrollToEnd");


                    var msgItem = new SingleChatDBModel()
                    {
                        SingleMessageName = ChatDetailTitle,
                        UserMessagesList  = SupportChatList,
                        RecieverId        = RecieverId
                    };
                    if (singleChatMessagesDbService.IsSingleChatPresentInDB())
                    {
                        var newmsgItem = singleChatMessagesDbService.ReadAllItems().Where(x => x.RecieverId == RecieverId).ToList();
                        if (newmsgItem != null && newmsgItem.Count > 0)
                        {
                            var msgID = newmsgItem.FirstOrDefault().ID;
                            msgItem.ID = msgID;
                            BsonValue id = new BsonValue(msgID);
                            singleChatMessagesDbService.UpdateSingleChatDataInDb(id, msgItem);
                        }
                        else
                        {
                            singleChatMessagesDbService.CreateSingleChatDataInDB(msgItem);
                        }
                    }
                    else
                    {
                        singleChatMessagesDbService.CreateSingleChatDataInDB(msgItem);
                    }
                }


                if (SupportChatList != null && SupportChatList.Count > 0)
                {
                    DeleteChatIcon = "resource://Khadamat_CustomerApp.SvgImages.delete.svg";
                }
                else
                {
                    DeleteChatIcon = string.Empty;
                }
            }
            catch (Exception ex)
            {
            }
        }
        public async void AddMessageFirebase(SingleChatListModel item)
        {
            try
            {
                if (Common.CheckConnection())
                {
                    var request = new ChatDetailModelApi()
                    {
                        from_user_id = user_id,
                        to_user_id   = RecieverId
                    };
                    Chatdetailresponse response;
                    try
                    {
                        response = await _webApiRestClient.PostAsync <ChatDetailModelApi, Chatdetailresponse>(ApiUrl.AddChatRequest, request);
                    }
                    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.AddChatMessage(item);
                        }
                        else if (response.message == null)
                        {
                            MessagingCenter.Send("", "ScrollToEnd");
                            MessageEntry = string.Empty;
                            var data = await FirebaseChatHelper.AddChatMessage(item);
                        }
                        else
                        {
                            await MaterialDialog.Instance.SnackbarAsync(message : response.message,
                                                                        msDuration : 3000);
                        }

                        var msgItem = new SingleChatDBModel()
                        {
                            SingleMessageName = ChatDetailTitle,
                            UserMessagesList  = SupportChatList,
                            RecieverId        = RecieverId
                        };
                        if (singleChatMessagesDbService.IsSingleChatPresentInDB())
                        {
                            var newmsgItem = singleChatMessagesDbService.ReadAllItems().Where(x => x.RecieverId == RecieverId).ToList();
                            if (newmsgItem != null && newmsgItem.Count > 0)
                            {
                                var msgID = newmsgItem.FirstOrDefault().ID;
                                msgItem.ID = msgID;
                                BsonValue id = new BsonValue(msgID);
                                singleChatMessagesDbService.UpdateSingleChatDataInDb(id, msgItem);
                            }
                            else
                            {
                                singleChatMessagesDbService.CreateSingleChatDataInDB(msgItem);
                            }
                        }
                        else
                        {
                            singleChatMessagesDbService.CreateSingleChatDataInDB(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);
            }
        }
Example #4
0
 public SingleChatDBModel UpdateSingleChatDataInDb(BsonValue bsonid, SingleChatDBModel item)
 {
     return(liteDBService.UpdateItem(bsonid, item));
 }
Example #5
0
 public SingleChatDBModel DeleteSingleChatItemFromDB(BsonValue id, SingleChatDBModel item)
 {
     return(liteDBService.DeleteItem(id, item));
 }
Example #6
0
 public SingleChatDBModel CreateSingleChatDataInDB(SingleChatDBModel item)
 {
     return(liteDBService.CreateItem(item));
 }