public async Task RemoveLikeFromMessage(Guid messageId) { User user = await _userManager.FindByEmailAsync(_contextAccessor.HttpContext.User.Identity.Name); _logger.LogError(_contextAccessor.HttpContext.User.Identity.Name); if (user.UserLikedMessages.All(x => x.MessageId != messageId)) { throw new BadRequestException("The message has not been liked"); } Message message = _dbContext.Messages .Include(x => x.UserLikedMessages) .FirstOrDefault(x => x.Id == messageId); if (message == null) { throw new BadRequestException("There is no message with this id"); } UserLikedMessage userLikedMessage = _dbContext.UserLikedMessages .Where(x => x.MessageId == messageId).First(x => x.UserId == user.Id); _dbContext.Remove(userLikedMessage); await _dbContext.SaveChangesAsync(); }
public async Task LikeMessage(Guid messageId) { User user = await _userManager.FindByEmailAsync(_contextAccessor.HttpContext.User.Identity.Name); if (user.UserLikedMessages.Any(x => x.MessageId == messageId)) { throw new BadRequestException("The message has already been liked"); } Message message = _dbContext.Messages.FirstOrDefault(x => x.Id == messageId); if (message == null) { throw new BadRequestException("There is no message with this id"); } UserLikedMessage userLikedMessage = new UserLikedMessage() { User = user, Message = message }; await _dbContext.UserLikedMessages.AddAsync(userLikedMessage); await _dbContext.SaveChangesAsync(); }