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;
            }
        }
Exemple #2
0
        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);
        }