public InternalDetailPage(InternalPostItem postItem) { InitializeComponent(); this.BindingContext = viewModel = new InternalDetailPageViewModel(); viewModel.PostItem = postItem; Init(); }
private async void FollowPost_Clicked(object sender, EventArgs e) { loadingPopup.IsVisible = true; if (UserLogged.IsLogged == false) { loadingPopup.IsVisible = false; await DisplayAlert("", Language.vui_long_dang_nhap, Language.dong); ((AppShell)Shell.Current).SetLoginPageActive(); return; } Grid grid = (sender as Grid); InternalPostItem post = (InternalPostItem)(grid.GestureRecognizers[0] as TapGestureRecognizer).CommandParameter; if (post.CreatedById == UserLogged.Id) { loadingPopup.IsVisible = false; await DisplayAlert("", Language.khong_the_thuc_hien_chuc_nang_nay, Language.dong); return; } bool isFollow = await viewModel.Follow(post.Id); grid.Children[2].IsVisible = isFollow; grid.Children[3].IsVisible = isFollow; loadingPopup.IsVisible = false; }
public void AddPostItem(InternalPostItem postItem) { postItem.UserComments = new List <string>() { postItem.CreatedById }; this._postItems.InsertOne(postItem); }
public async Task <string[]> GetReceiveNotificationUser(string PostId) { InternalPostItem post = await this.GetById(PostId); var followList = post.UserFollows ?? new List <string>(); var commentArray = post.UserComments.ToArray(); foreach (var item in commentArray) { if (!followList.Any(x => x == item)) { followList.Add(item); } } return(followList.ToArray()); }
public async Task <bool> Follow(string PostId, string UserId) { InternalPostItem post = _postItems.Find(x => x.Id == PostId).SingleOrDefault(); if (post.UserFollows != null && post.UserFollows.Any(x => x == UserId)) // dang follow { post.UserFollows.Remove(UserId); _postItems.ReplaceOne(p => p.Id == PostId, post); return(false); } else { if (post.UserFollows == null) { post.UserFollows = new List <string>(); } post.UserFollows.Add(UserId); _postItems.ReplaceOne(p => p.Id == PostId, post); // send notifiaction. INotificationService notificationService = DependencyService.Get <INotificationService>(); Guid ReceiverId = Guid.Parse(post.CreatedById); string NotificationImage = (post.Images != null && post.Images.Length > 0) ? AvatarHelper.GetPostAvatar(post.Images.FirstOrDefault()) : null; NotificationModel notification = new NotificationModel() { UserId = ReceiverId, CurrentBadgeCount = (int)notificationService.CountNotReadNotificationUser(ReceiverId) + 1, Title = UserLogged.FullName + " đã theo dõi bài viết của bạn", NotificationType = NotificationType.ViewInternalPostItem, PostItemId = PostId, CreatedDate = DateTime.Now, IsRead = false, Thumbnail = NotificationImage }; await notificationService.AddNotification(notification, Language.theo_doi); return(true); } }
private async void Save_Clicked(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(EntryTitle.Text)) { await DisplayAlert("", Language.vui_long_nhap_tieu_de, Language.dong); return; } else if (string.IsNullOrWhiteSpace(editor.Text)) { await DisplayAlert("", Language.vui_long_nhap_noi_dung, Language.dong); return; } loadingPopup.IsVisible = true; // kiem tra co hinh thi upload. if (viewModel.Media.Count > 0) { if (viewModel.Media.Count > 9) { loadingPopup.IsVisible = false; await DisplayAlert("", Language.vui_long_chon_toi_da_9_anh, Language.dong); return; } List <MediaFile> listUploadMedia = viewModel.Media.Where(x => x.Path != null).ToList(); if (listUploadMedia.Any()) { MultipartFormDataContent form = new MultipartFormDataContent(); for (int i = 0; i < listUploadMedia.Count; i++) { string imageName = $"postitem_{Guid.NewGuid().ToString()}.jpg"; ImageList.Add(imageName); var media = listUploadMedia[i]; var stream = new MemoryStream(File.ReadAllBytes(media.Path)); var content = new StreamContent(stream); content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "files" + i, FileName = imageName }; form.Add(content); } var uploadResonse = await UploadImage(form); if (!uploadResonse.IsSuccess) { loadingPopup.IsVisible = false; await DisplayAlert("", uploadResonse.Message, Language.dong); return; } } } InternalPostItem item = new InternalPostItem(); item.CompanyId = UserLogged.CompanyId.ToLower(); item.Title = EntryTitle.Text.Trim(); item.Description = editor.Text.Trim(); item.Images = ImageList.Any() ? ImageList.ToArray() : null; item.CreatedById = UserLogged.Id; item.CreatedBy = new PostItemUser() { UserId = UserLogged.Id, FullName = UserLogged.FullName, Avatar = UserLogged.AvatarUrl.Replace(ApiConfig.IP2, "") }; item.CreatedDate = DateTime.Now; item.HasImage = ImageList != null && ImageList.Count() > 0; if (viewModel.InternalPost != null) { item.HasPost = true; item.Post = viewModel.InternalPost; } if (viewModel.Province != null) { item.ProvinceId = viewModel.Province.Id; if (viewModel.District != null) { item.DistrictId = viewModel.District.Id; if (viewModel.Ward != null) { item.WardId = viewModel.Ward.Id; } } } item.Address = viewModel.Address; postItemService.AddPostItem(item); MessagingCenter.Send <InternalAddPage, InternalPostItem>(this, "AddPostItemSuccess", item); loadingPopup.IsVisible = false; await Navigation.PopAsync(); ToastMessageHelper.ShortMessage(Language.dang_thanh_cong); } catch (Exception ex) { } }