Exemplo n.º 1
0
        private async Task <string> LoadMoreMessagesApi()
        {
            try
            {
                if (!Methods.CheckConnectivity())
                {
                    SwipeRefreshLayout.Refreshing = false;
                    Toast.MakeText(this, GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short);
                }
                else
                {
                    var(apiStatus, respond) = await RequestsAsync.Chat.GetChatConversationsAsync(Userid.ToString(), "30", "0", FirstMessageId.ToString()).ConfigureAwait(false);

                    if (apiStatus == 200)
                    {
                        if (respond is GetChatConversationsObject result)
                        {
                            if (result.Data.Count > 0)
                            {
                                var listApi = new ObservableCollection <ChatMessagesDataObject>();

                                foreach (var messages in result.Data.OrderBy(a => a.Time))
                                {
                                    MAdapter.MessageList.Insert(0, messages);
                                    MAdapter.NotifyItemInserted(MAdapter.MessageList.IndexOf(MAdapter.MessageList.FirstOrDefault()));

                                    var index = MAdapter.MessageList.FirstOrDefault(a => a.Id == FirstMessageId);
                                    if (index != null)
                                    {
                                        MAdapter.NotifyItemChanged(MAdapter.MessageList.IndexOf(index));
                                        //Scroll Down >>
                                        ChatBoxRecyclerView.ScrollToPosition(MAdapter.MessageList.IndexOf(index));
                                    }

                                    listApi.Insert(0, messages);

                                    SqLiteDatabase dbDatabase = new SqLiteDatabase();
                                    // Insert data user in database
                                    dbDatabase.InsertOrReplaceMessages(listApi);
                                    dbDatabase.Dispose();
                                }
                                return("1");
                            }
                            return("0");
                        }
                    }
                    else
                    {
                        Methods.DisplayReportResult(this, respond);
                    }
                }
                return("0");
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
                return("0");
            }
        }
Exemplo n.º 2
0
        private async Task <string> LoadMoreMessagesApi()
        {
            try
            {
                if (!Methods.CheckConnectivity())
                {
                    SwipeRefreshLayout.Refreshing = false;
                    ToastUtils.ShowToast(GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short);
                }
                else
                {
                    var(apiStatus, respond) = await RequestsAsync.Messages.GetUserMessages(Userid.ToString(), "30", FirstMessageId.ToString()).ConfigureAwait(false);

                    if (apiStatus == 200)
                    {
                        if (respond is GetUserMessagesObject result)
                        {
                            if (result.data.Messages.Count > 0)
                            {
                                var listApi = new ObservableCollection <GetUserMessagesObject.Message>();

                                foreach (var messages in result.data.Messages.OrderBy(a => a.Time))
                                {
                                    GetUserMessagesObject.Message message = new GetUserMessagesObject.Message
                                    {
                                        Id         = messages.Id,
                                        FromId     = messages.FromId,
                                        ToId       = messages.ToId,
                                        Text       = messages.Text,
                                        MediaFile  = messages.MediaFile,
                                        MediaType  = messages.MediaType,
                                        DeletedFs1 = messages.DeletedFs1,
                                        DeletedFs2 = messages.DeletedFs2,
                                        Seen       = messages.Seen,
                                        Time       = messages.Time,
                                        Extra      = messages.Extra,
                                        TimeText   = messages.TimeText,
                                        Position   = messages.Position,
                                    };

                                    MAdapter.Insert(message, FirstMessageId);

                                    listApi.Insert(0, message);

                                    SqLiteDatabase dbDatabase = new SqLiteDatabase();
                                    // Insert data user in database
                                    dbDatabase.InsertOrReplaceMessages(listApi);
                                    dbDatabase.Dispose();
                                }
                                return("1");
                            }
                            return("0");
                        }
                    }
                    else
                    {
                        Methods.DisplayReportResult(this, respond);
                    }
                }
                return("0");
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
                return("0");
            }
        }