public SubscriptionView Map(Subscription source) { return(new SubscriptionView( source.Id, userViewMapper.Map(source.User), spaceViewMapper.Map(source.Space) )); }
public PostView Map(Post post) { UserView userView = userMapper.Map(post.User); SpaceView spaceView = spaceMapper.Map(post.Space); VoteView? voteView = post.Vote != null?voteMapper.Map(post.Vote) : null; return(new PostView(post.Id, post.Type, post.Title, post.Body, userView, spaceView, post.CreationDate, post.CommentCount, post.WasUpdated, post.WasDeleted, post.Upvotes, post.Downvotes, voteView)); }
protected override async Task <SpaceView?> HandleInput(FindByValueParams <string> input) { using (var connection = database.GetConnection()) { ISpaceRepo spaceRepo = database.GetRepo <ISpaceRepo>(connection); Space?s = await spaceRepo.FindByName(input.Value); return(s != null?spaceMapper.Map(s) : null); } }
protected override async Task <PagedResultSet <SpaceView> > HandleInput(FindParams input) { using (var connection = database.GetConnection()) { ISpaceRepo spaceRepo = database.GetRepo <ISpaceRepo>(connection); PagedResultSet <Space> spaces = await spaceRepo.Find(input.Pagination?.PageNumber ?? 0, input.Pagination?.PageSize ?? Post.PageSize); return(new PagedResultSet <SpaceView>(spaces.Select(s => mapper.Map(s)), spaces.Pagination)); } }
protected override async Task <IEnumerable <SpaceView> > HandleInput(FindByValueParams <string> input) { using (var connection = database.GetConnection()) { ISubscriptionRepo subRepo = database.GetRepo <ISubscriptionRepo>(connection); IEnumerable <Subscription> subs = await subRepo.FindByUser(input.Value); return(subs.Select(s => spaceMapper.Map(s.Space))); } }
protected override async Task <IEnumerable <SpaceView> > HandleInput(FindParams input) { using (var connection = database.GetConnection()) { ISpaceRepo spaceRepo = database.GetRepo <ISpaceRepo>(connection); IEnumerable <Space> spaces = await spaceRepo.FindDefault(); return(spaces.Select(s => spaceMapper.Map(s))); } }
protected override async Task <SpaceView> HandleInput(SpaceUpdateParams input) { using (var connection = database.GetConnection()) { ISpaceRepo spaceRepo = database.GetRepo <ISpaceRepo>(connection); Space?s = await spaceRepo.FindByName(input.Name); if (s == null) { throw new InvalidOperationException(); } if (!(await this.spacePermissionHandler.HasPermission(input.User, PermissionAction.UpdateSpace, s))) { throw new AuthorizationException(); } s.Description = input.Description; await spaceRepo.Update(s); return(spaceMapper.Map(s)); } }
protected override async Task <SpaceView> HandleInput(SpaceCreateParams input) { using (var connection = database.GetConnection()) { ISpaceRepo spaceRepo = database.GetRepo <ISpaceRepo>(connection); Space? existing = await spaceRepo.FindByName(input.Name); if (existing != null) { throw new InvalidOperationException($"Space name {input.Name} is already taken."); } Space s = new Space() { Name = input.Name, Description = input.Description, User = input.User, CreationDate = DateTime.UtcNow }; await spaceRepo.Add(s); return(spaceMapper.Map(s)); } }