示例#1
0
        public async Task <FeedDto> CreateFeedAsync(CreateFeedDto dto)
        {
            var entity = dto.ToEntity();

            _unitOfWork.FeedRepository.Add(entity);

            await _unitOfWork.CommitAsync();

            var result = entity.ToDto();

            var user = await _unitOfWork.UserRepository
                       .FindAll(x => x.Id.Equals(result.CreatedBy))
                       .Include(x => x.UserDetail)
                       .SingleOrDefaultAsync();

            result.FullName  = $"{user?.UserDetail?.FirstName} {user?.UserDetail?.LastName}";
            result.AvatarUrl = user?.UserDetail?.Avatar;

            return(result);
        }
示例#2
0
        public async Task <ActionResult> CreateAsync([FromBody] CreateFeedDto createFeedDto)
        {
            var authenticatedUser = await userManager.GetUserAsync(User);

            if (!(createFeedDto.UserId == authenticatedUser.Id || User.IsInRole("Admin")))
            {
                return(Forbid());
            }

            var token = Guid.NewGuid().ToString("N");
            var feed  = new UserFeed()
            {
                Created = DateTime.Now,
                UserId  = createFeedDto.UserId,
                URL     = Url.Action(nameof(Feed), new { Token = token }),
                Token   = token
            };

            context.Add(feed);
            await context.SaveChangesAsync();

            return(CreatedAtAction(feed.URL, new { Token = feed.Token }, feed));
        }
示例#3
0
        public async Task <IActionResult> Create([FromBody] CreateFeedDto dto)
        {
            var result = await _feedService.CreateFeedAsync(dto);

            return(Ok(result));
        }
示例#4
0
 public static Feed ToEntity(this CreateFeedDto dto)
 {
     return(Mapper.Map <Feed>(dto));
 }