Exemple #1
0
        public async Task <IActionResult> PostLike(string postId)
        {
            var bp = await _blogDbService.GetBlogPostAsync(postId);

            if (bp != null)
            {
                //Check that this user has not already liked this post
                var userId = User.Claims.FirstOrDefault(p => p.Type == ClaimTypes.NameIdentifier).Value;
                var like   = await _blogDbService.GetBlogPostLikeForUserIdAsync(postId, userId);

                if (like == null)
                {
                    var blogPostLike = new BlogPostLike
                    {
                        LikeId = Guid.NewGuid().ToString(),
                        PostId = postId,

                        LikeAuthorId       = User.Claims.FirstOrDefault(p => p.Type == ClaimTypes.NameIdentifier).Value,
                        LikeAuthorUsername = User.Identity.Name,
                        LikeDateCreated    = DateTime.UtcNow
                    };

                    await _blogDbService.CreateBlogPostLikeAsync(blogPostLike);
                }
            }

            return(RedirectToAction("PostView", new { postId = postId }));
        }
Exemple #2
0
        public async Task CreateBlogPostLikeAsync(BlogPostLike like)
        {
            //string str = JsonConvert.SerializeObject(comment);
            //dynamic obj = JsonConvert.DeserializeObject(str);

            var obj = new dynamic[] { like.PostId, like };

            //var result = await _blogDbService.GetContainer("database", "container").Scripts.ExecuteStoredProcedureAsync<string>("spCreateToDoItem", new PartitionKey("Personal"), newItem);
            var result = await _postsContainer.Scripts.ExecuteStoredProcedureAsync <string>("createLike", new PartitionKey(like.PostId), obj);

            //await this._postsContainer.CreateItemAsync<BlogPostComment>(comment, new PartitionKey(comment.PostId));
        }
Exemple #3
0
        public async Task <BlogPostLike> GetBlogPostLikeForUserIdAsync(string postId, string userId)
        {
            var queryString = $"SELECT TOP 1 * FROM p WHERE p.type='like' AND p.postId = @PostId AND p.userId = @UserId ORDER BY p.dateCreated DESC";

            var queryDef = new QueryDefinition(queryString);

            queryDef.WithParameter("@PostId", postId);
            queryDef.WithParameter("@UserId", userId);
            var query = this._postsContainer.GetItemQueryIterator <BlogPostLike>(queryDef);

            BlogPostLike like = null;

            if (query.HasMoreResults)
            {
                var response = await query.ReadNextAsync();

                var ru = response.RequestCharge;
                like = response.FirstOrDefault();
            }

            return(like);
        }