Example #1
0
        public async Task <PostReadView?> FindById(int id, User?user = null)
        {
            var post = await Connection.QueryFirstOrDefaultAsync <PostRecord>(
                @"SELECT * FROM post
                WHERE was_deleted = FALSE
                ORDER BY post.creation_date DESC
                LIMIT @Limit
                OFFSET @Offset",
                new {
                Id = id
            }
                );

            //Get total count
            int totalCount = await Connection.ExecuteScalarAsync <int>(
                "SELECT COUNT(*) FROM post;"
                );

            IUserReader  userReader  = GetReader <IUserReader>();
            ISpaceReader spaceReader = GetReader <ISpaceReader>();

            PostReadView view = Map(post);

            view.User  = (await userReader.FindById(post.UserId)) !;
            view.Space = (await spaceReader.FindById(post.SpaceId)) !;

            return(view);
        }
Example #2
0
        public async Task <PagedResultSet <PostReadView> > FindByUser(string username, PaginationInfo paging, User?user = null)
        {
            var posts = await Connection.QueryAsync <PostRecord>(
                @"SELECT post.* FROM post
                    LEFT JOIN ""user"" u1 ON u1.id = post.user_id
                    WHERE u1.username = @Username AND post.was_deleted = FALSE
                    ORDER BY post.creation_date DESC
                    LIMIT @Limit
                    OFFSET @Offset",
                new {
                Username = username,
                Limit    = paging.PageSize,
                Offset   = paging.Offset
            }
                );

            //Get total count
            int totalCount = await Connection.ExecuteScalarAsync <int>(
                @"SELECT COUNT(*) FROM post 
                    LEFT JOIN ""user"" ON post.user_id = ""user"".id 
                    WHERE ""user"".username = @Username AND post.was_deleted = FALSE",
                new { Username = username }
                );

            IUserReader  userReader  = GetReader <IUserReader>();
            ISpaceReader spaceReader = GetReader <ISpaceReader>();


            List <PostReadView> views = new List <PostReadView>();

            foreach (PostRecord post in posts)
            {
                PostReadView view = Map(post);

                view.User  = (await userReader.FindById(post.UserId)) !;
                view.Space = (await spaceReader.FindById(post.SpaceId)) !;

                views.Add(view);
            }

            return(new PagedResultSet <PostReadView>(views, new PaginationInfo(paging.PageNumber, paging.PageSize, totalCount)));
        }
Example #3
0
        public async Task <PagedResultSet <PostReadView> > FindByNew(PaginationInfo paging, User?user = null)
        {
            var posts = await Connection.QueryAsync <PostRecord>(
                @"SELECT * FROM post
                WHERE was_deleted = FALSE
                ORDER BY post.creation_date DESC
                LIMIT @Limit
                OFFSET @Offset",
                new {
                Limit  = paging.PageSize,
                Offset = paging.Offset
            }
                );

            //Get total count
            int totalCount = await Connection.ExecuteScalarAsync <int>(
                "SELECT COUNT(*) FROM post;"
                );

            IUserReader  userReader  = GetReader <IUserReader>();
            ISpaceReader spaceReader = GetReader <ISpaceReader>();


            List <PostReadView> views = new List <PostReadView>();

            foreach (PostRecord post in posts)
            {
                PostReadView view = Map(post);

                view.User  = (await userReader.FindById(post.UserId)) !;
                view.Space = (await spaceReader.FindById(post.SpaceId)) !;

                views.Add(view);
            }

            return(new PagedResultSet <PostReadView>(views, new PaginationInfo(paging.PageNumber, paging.PageSize, totalCount)));
        }
 public DefaultSpaceQueryHandler(ISpaceReader spaceReader)
 {
     this.spaceReader = spaceReader;
 }
 public SpaceFindByNameQueryHandler(ISpaceReader spaceReader)
 {
     this.spaceReader = spaceReader;
 }
Example #6
0
 public FindSpacesUserModeratesQueryHandler(ISpaceReader spaceReader)
 {
     this.roleReader = spaceReader;
 }
Example #7
0
 public SubscribedSpaceQueryHandler(ISpaceReader spaceReader)
 {
     this.spaceReader = spaceReader;
 }