public async Task<ForumMessageDto> CreateAsync(ForumMessageDto dto)
 {
     var model = _mapper.Map<ForumMessage>(dto);
  //   model.AdditionTime = DateTime.Now;
  //   model.LastModifiedTime = DateTime.Now;
     model = await _forumMessageRepository.AddAsync(model);
     await _forumMessageRepository.SaveChangesAsync();
     return _mapper.Map<ForumMessageDto>(model);
 }
        public async Task <ForumMessageDto> UpdateAsync(ForumMessageDto dto)
        {
            var model = await _forumMessageRepository.GetFirstByPredicateAsync(x => x.Id == dto.Id);

            model.LastModifiedTime = DateTime.Now;
            model.Message          = dto.Message;
            await _forumMessageRepository.UpdateAsync(model);

            return(_mapper.Map <ForumMessageDto>(model));
        }
        public async Task <ForumMessageDto> CreateAsync(ForumMessageDto dto)
        {
            var model = _mapper.Map <ForumMessage>(dto);

            model = await _forumMessageRepository.CreateAsync(model);

            model.Author = await _userRepository.GetByIdAsync(model.AuthorId);

            return(_mapper.Map <ForumMessageDto>(model));
        }
        public async Task <IActionResult> CreateAsync([FromBody] ForumMessageDto dto)
        {
            dto.AuthorId         = User.GetUserId();
            dto.AdditionTime     = DateTime.Now;//maybe move dates to frontend?
            dto.LastModifiedTime = DateTime.Now;
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var result = await _forumMessageService.CreateAsync(dto);

            return(Ok(result));
        }
        public async Task <IActionResult> UpdateAsync(int id, [FromBody] ForumMessageDto dto)
        {
            if (id != dto.Id || !ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (!User.IsInRole(nameof(RolesEnum.UserStart)) && User.GetUserId() != dto.AuthorId)
            {
                return(StatusCode(StatusCodes.Status403Forbidden));
            }

            var result = await _forumMessageService.UpdateAsync(dto);

            return(Ok(result));
        }