//Api sent Comment private async void ImgSentOnClick(object sender, EventArgs e) { try { IsRecording = false; if (BtnVoice.Tag?.ToString() == "Audio") { var interTortola = new FastOutSlowInInterpolator(); TopFragment.Animate().SetInterpolator(interTortola).TranslationY(1200).SetDuration(300); SupportFragmentManager.BeginTransaction().Remove(RecordSoundFragment).Commit(); PathVoice = RecorderService.GetRecorded_Sound_Path(); } if (string.IsNullOrEmpty(TxtComment.Text) && string.IsNullOrEmpty(PathImage) && string.IsNullOrEmpty(PathVoice)) { return; } if (Methods.CheckConnectivity()) { var dataUser = ListUtils.MyProfileList.FirstOrDefault(); //Comment Code var unixTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); string time2 = unixTimestamp.ToString(CultureInfo.InvariantCulture); CommentObjectExtra comment = new CommentObjectExtra { Id = unixTimestamp.ToString(), PostId = PostObject.Id, UserId = UserDetails.UserId, Text = TxtComment.Text, Time = time2, CFile = PathImage, Record = PathVoice, Publisher = dataUser, Url = dataUser?.Url, Fullurl = PostObject?.PostUrl, Orginaltext = TxtComment.Text, Owner = true, CommentLikes = "0", CommentWonders = "0", IsCommentLiked = false, Replies = "0" }; MAdapter.CommentList.Add(comment); var index = MAdapter.CommentList.IndexOf(comment); if (index > -1) { MAdapter.NotifyItemInserted(index); } MRecycler.Visibility = ViewStates.Visible; var dd = MAdapter.CommentList.FirstOrDefault(); if (dd?.Text == MAdapter.EmptyState) { MAdapter.CommentList.Remove(dd); MAdapter.NotifyItemRemoved(MAdapter.CommentList.IndexOf(dd)); } ImgGallery.SetImageDrawable(AppSettings.SetTabDarkTheme ? GetDrawable(Resource.Drawable.ic_action_addpost_Ligth) : GetDrawable(Resource.Drawable.ic_action_AddPost)); var text = TxtComment.Text; //Hide keyboard TxtComment.Text = ""; (int apiStatus, var respond) = await RequestsAsync.Comment.CreatePostComments(PostObject.PostId, text, PathImage, PathVoice); if (apiStatus == 200) { if (respond is CreateComments result) { var date = MAdapter.CommentList.FirstOrDefault(a => a.Id == comment.Id) ?? MAdapter.CommentList.FirstOrDefault(x => x.Id == result.Data.Id); if (date != null) { var db = Mapper.Map <CommentObjectExtra>(result.Data); date = db; date.Id = result.Data.Id; index = MAdapter.CommentList.IndexOf(MAdapter.CommentList.FirstOrDefault(a => a.Id == unixTimestamp.ToString())); if (index > -1) { MAdapter.CommentList[index] = db; //MAdapter.NotifyItemChanged(index); //MRecycler.ScrollToPosition(index); } var postFeedAdapter = TabbedMainActivity.GetInstance()?.NewsFeedTab?.PostFeedAdapter; var dataGlobal = postFeedAdapter?.ListDiffer?.Where(a => a.PostData?.Id == PostObject?.PostId).ToList(); if (dataGlobal?.Count > 0) { foreach (var dataClass in from dataClass in dataGlobal let indexCom = postFeedAdapter.ListDiffer.IndexOf(dataClass) where indexCom > -1 select dataClass) { dataClass.PostData.PostComments = MAdapter.CommentList.Count.ToString(); if (dataClass.PostData.GetPostComments?.Count > 0) { var dataComment = dataClass.PostData.GetPostComments.FirstOrDefault(a => a.Id == date.Id); if (dataComment == null) { dataClass.PostData.GetPostComments.Add(date); } } else { dataClass.PostData.GetPostComments = new List <GetCommentObject>() { date }; } postFeedAdapter.NotifyItemChanged(postFeedAdapter.ListDiffer.IndexOf(dataClass), "commentReplies"); } } var postFeedAdapter2 = WRecyclerView.GetInstance()?.NativeFeedAdapter; var dataGlobal2 = postFeedAdapter2?.ListDiffer?.Where(a => a.PostData?.Id == PostObject?.PostId).ToList(); if (dataGlobal2?.Count > 0) { foreach (var dataClass in from dataClass in dataGlobal2 let indexCom = postFeedAdapter2.ListDiffer.IndexOf(dataClass) where indexCom > -1 select dataClass) { dataClass.PostData.PostComments = MAdapter.CommentList.Count.ToString(); if (dataClass.PostData.GetPostComments?.Count > 0) { var dataComment = dataClass.PostData.GetPostComments.FirstOrDefault(a => a.Id == date.Id); if (dataComment == null) { dataClass.PostData.GetPostComments.Add(date); } } else { dataClass.PostData.GetPostComments = new List <GetCommentObject>() { date }; } postFeedAdapter2.NotifyItemChanged(postFeedAdapter2.ListDiffer.IndexOf(dataClass), "commentReplies"); } } } } } //else Methods.DisplayReportResult(this, respond); //Hide keyboard TxtComment.Text = ""; PathImage = ""; PathVoice = ""; BtnVoice.Tag = "Free"; BtnVoice.SetImageResource(Resource.Drawable.microphone); BtnVoice.ClearColorFilter(); } else { Toast.MakeText(this, GetText(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short).Show(); } } catch (Exception exception) { Console.WriteLine(exception); } }
//Api sent Comment private async void ImgSentOnClick(object sender, EventArgs e) { try { IsRecording = false; switch (BtnVoice.Tag?.ToString()) { case "Audio": { var interTortola = new FastOutSlowInInterpolator(); TopFragment.Animate()?.SetInterpolator(interTortola)?.TranslationY(1200)?.SetDuration(300); SupportFragmentManager.BeginTransaction().Remove(RecordSoundFragment)?.Commit(); PathVoice = RecorderService.GetRecorded_Sound_Path(); break; } } if (string.IsNullOrEmpty(TxtComment.Text) && string.IsNullOrWhiteSpace(TxtComment.Text) && string.IsNullOrEmpty(PathImage) && string.IsNullOrEmpty(PathVoice)) { return; } if (Methods.CheckConnectivity()) { var dataUser = ListUtils.MyProfileList?.FirstOrDefault(); //Comment Code var unixTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); string time2 = unixTimestamp.ToString(CultureInfo.InvariantCulture); CommentObjectExtra comment = new CommentObjectExtra { Id = unixTimestamp.ToString(), PostId = PostObject.Id, UserId = UserDetails.UserId, Text = TxtComment.Text, Time = time2, CFile = PathImage, Record = PathVoice, Publisher = dataUser, Url = dataUser?.Url, Fullurl = PostObject?.PostUrl, Orginaltext = TxtComment.Text, Owner = true, CommentLikes = "0", CommentWonders = "0", IsCommentLiked = false, Replies = "0", RepliesCount = "0" }; MAdapter.CommentList.Add(comment); var index = MAdapter.CommentList.IndexOf(comment); switch (index) { case > -1: MAdapter.NotifyItemInserted(index); break; } MRecycler.Visibility = ViewStates.Visible; var dd = MAdapter.CommentList.FirstOrDefault(); if (dd?.Text == MAdapter.EmptyState) { MAdapter.CommentList.Remove(dd); MAdapter.NotifyItemRemoved(MAdapter.CommentList.IndexOf(dd)); } ImgGallery.SetImageDrawable(AppSettings.SetTabDarkTheme ? GetDrawable(Resource.Drawable.ic_action_addpost_Ligth) : GetDrawable(Resource.Drawable.ic_action_AddPost)); var text = TxtComment.Text; //Hide keyboard TxtComment.Text = ""; var(apiStatus, respond) = await RequestsAsync.Comment.CreatePostCommentsAsync(PostObject.PostId, text, PathImage, PathVoice); switch (apiStatus) { case 200: { switch (respond) { case CreateComments result: { var date = MAdapter.CommentList.FirstOrDefault(a => a.Id == comment.Id) ?? MAdapter.CommentList.FirstOrDefault(x => x.Id == result.Data.Id); if (date != null) { var db = ClassMapper.Mapper?.Map <CommentObjectExtra>(result.Data); date = db; date.Id = result.Data.Id; index = MAdapter.CommentList.IndexOf(MAdapter.CommentList.FirstOrDefault(a => a.Id == unixTimestamp.ToString())); MAdapter.CommentList[index] = index switch { > -1 => db, _ => MAdapter.CommentList[index] }; var postFeedAdapter = TabbedMainActivity.GetInstance()?.NewsFeedTab?.PostFeedAdapter; var dataGlobal = postFeedAdapter?.ListDiffer?.Where(a => a.PostData?.Id == PostObject?.PostId).ToList(); switch (dataGlobal?.Count) { case > 0: { foreach (var dataClass in from dataClass in dataGlobal let indexCom = postFeedAdapter.ListDiffer.IndexOf(dataClass) where indexCom > -1 select dataClass) { dataClass.PostData.PostComments = MAdapter.CommentList.Count.ToString(); switch (dataClass.PostData.GetPostComments?.Count) { case > 0: { var dataComment = dataClass.PostData.GetPostComments.FirstOrDefault(a => a.Id == date.Id); switch (dataComment) { case null: dataClass.PostData.GetPostComments.Add(date); break; } break; } default: dataClass.PostData.GetPostComments = new List <GetCommentObject> { date }; break; } postFeedAdapter.NotifyItemChanged(postFeedAdapter.ListDiffer.IndexOf(dataClass), "commentReplies"); } break; } } var postFeedAdapter2 = WRecyclerView.GetInstance()?.NativeFeedAdapter; var dataGlobal2 = postFeedAdapter2?.ListDiffer?.Where(a => a.PostData?.Id == PostObject?.PostId).ToList(); switch (dataGlobal2?.Count) { case > 0: { foreach (var dataClass in from dataClass in dataGlobal2 let indexCom = postFeedAdapter2.ListDiffer.IndexOf(dataClass) where indexCom > -1 select dataClass) { dataClass.PostData.PostComments = MAdapter.CommentList.Count.ToString(); switch (dataClass.PostData.GetPostComments?.Count) { case > 0: { var dataComment = dataClass.PostData.GetPostComments.FirstOrDefault(a => a.Id == date.Id); switch (dataComment) { case null: dataClass.PostData.GetPostComments.Add(date); break; } break; } default: dataClass.PostData.GetPostComments = new List <GetCommentObject> { date }; break; } postFeedAdapter2.NotifyItemChanged(postFeedAdapter2.ListDiffer.IndexOf(dataClass), "commentReplies"); } break; } } } break; } } break; } }