public async void LoadItemById(Guid itemId) { this.IsBusy = true; try { PostDetailGetData post = await App.Client.PostGetAsync(itemId); this.Content = post.Content; this.AuthorName = post.AuthorName; this.Replys.Clear(); ObservableCollection <PostReplyGetData> replys = new ObservableCollection <PostReplyGetData>(post.Replys); foreach (PostReplyGetData reply in replys) { this.Replys.Add(reply); } } catch (ApiException exception) { this.Message = exception.ToString(); } finally { this.IsBusy = false; } }
public PostDetailGetData GetPost(Guid Id) { using SqlConnection connection = this.userService.Connection; using DatabaseContext context = new DatabaseContext(connection); DateTime now = DateTime.Now; PostDetailGetData result = (from p in context.Post join a in context.ShakeUser on p.AuthorId equals a.Id where p.Id == Id select new PostDetailGetData() { Id = p.Id, Author = a.Id, AuthorName = a.Nickname, Content = p.Content, Creationdate = p.Creationdate, TimeAgo = new SimpleTimeSpan(now - p.Creationdate), Avatar = FileTokenData.CreateUrl(a.Avatar), Image = FileTokenData.CreateUrl(p.Image), Groups = p.PostGroups.Select(o => new AssociatedGroupData(o.Group)).ToList() }).First(); List <PostReplyGetData> replys = (from r in context.Reply join a in context.ShakeUser on r.Author equals a.Id where r.Post == Id select new PostReplyGetData() { Id = r.Id, Author = a.Id, AuthorName = a.Nickname, Content = r.Content, Creationdate = r.Creationdate, TimeAgo = new SimpleTimeSpan(now - r.Creationdate), Avatar = FileTokenData.CreateUrl(a.Avatar), Image = FileTokenData.CreateUrl(r.Image) }).OrderBy(o => o.Creationdate).ToList(); result.Replys = replys; return(result); }