public async Task UserLikeAsync(string episodeId, string userId)
        {
            var userLike = this.episodesLikesRepository.All().FirstOrDefault(e => e.EpisodeId == episodeId && e.ApplicationUserId == userId);

            if (userLike == null)
            {
                var like = new EpisodeLike
                {
                    EpisodeId         = episodeId,
                    ApplicationUserId = userId,
                    HasLiked          = true,
                };

                await this.episodesLikesRepository.AddAsync(like);
            }
            else
            {
                if (userLike.HasLiked == false)
                {
                    userLike.HasLiked = true;
                }
                else
                {
                    userLike.HasLiked = false;
                }
            }

            await this.episodesLikesRepository.SaveChangesAsync();
        }
Exemplo n.º 2
0
        public void GetEpisodeLikesWorksCorrectly()
        {
            var episodeLikes        = new List <EpisodeLike>();
            var mockEpisodeLikeRepo = new Mock <IEpisodesLikesRepository>();

            mockEpisodeLikeRepo.Setup(x => x.All()).Returns(episodeLikes.AsQueryable());

            var episode = new Episode()
            {
                Id = "test123",
            };

            var episodeLike = new EpisodeLike()
            {
                EpisodeId         = "test123",
                ApplicationUserId = "pesho",
                HasLiked          = true,
            };

            episode.EpisodeLikes.Add(episodeLike);
            episodeLikes.Add(episodeLike);

            var service = new EpisodesLikesService(mockEpisodeLikeRepo.Object);

            var result = service.GetEpisodeLikes("test123");

            Assert.Equal(1, result);
        }