Exemple #1
0
        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();
        }
Exemple #2
0
        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();
        }