Ejemplo n.º 1
0
        public async Task <LikeItemResult> LikeItemAsync(LikeItemModel likeItemModel)
        {
            var validRes = await modelValidatorsStore.LikeItemModelValidator.ValidateAsync(likeItemModel);

            if (!validRes.Succeed)
            {
                return(new LikeItemResult(validRes));
            }
            var itemLike = (await itemLikeCrudService.GetAllAsync()).FirstOrDefault(il => il.ItemId == likeItemModel.ItemId && il.UserId == likeItemModel.UserId);
            var result   = new LikeItemResult();

            if (itemLike is null)
            {
                var newLike = mapper.Map <ItemLikeModel>(likeItemModel);
                await itemLikeCrudService.CreateAsync(newLike);

                result.Result = LikeResults.Liked;
            }
            else
            {
                await itemLikeCrudService.DeleteAsync(itemLike.Id);

                result.Result = LikeResults.Disliked;
            }
            return(result);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> LikeItem(int id)
        {
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            int.TryParse(userId, out int requesterId);
            var model = new LikeItemModel
            {
                ItemId = id,
                UserId = requesterId
            };
            var result = await likesManager.LikeItemAsync(model);

            return(Json(result));
        }
Ejemplo n.º 3
0
        public async Task SendLike(string itemId)
        {
            if (!int.TryParse(itemId, out int parsedId))
            {
                return;
            }
            var model = new LikeItemModel
            {
                UserId = sessionHelper.GetCurrentUserId(),
                ItemId = parsedId
            };
            var result = await likesManager.LikeItemAsync(model);

            await Clients.Group(itemId.ToString()).SendAsync("OnItemLiked", result, Context.ConnectionId);
        }