/// <summary>
        ///
        /// </summary>
        /// <param name="like"></param>
        /// <returns></returns>
        public async Task <HttpStatusCode> UpdateArticleLike(UpdateLikeModel like)
        {
            try
            {
                LikeDbModel likeDbModel = new LikeDbModel()
                                          .SetArticleId(like.ArticleId)
                                          .SetTimeStamp(DateTimeOffset.UtcNow)
                                          .SetUserId(like.UserId)
                                          .SetCurrentState(like.CurrentState);
                likeDbModel.LikeId = like.LikeId;

                RequestValidator requestValidator = new RequestValidator()
                                                    .SetRequestValidator(likeDbModel)
                                                    .ValidateAnyNull();

                if (requestValidator.isValidRequest)
                {
                    likeDbModel = await articleDataService.UpdateArticleLikes(likeDbModel);
                }

                //Update the Redis
                articleDataService.UpdateRedis(likeDbModel.ArticleId, true);

                return(HttpStatusCode.Created);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <LikeDbModel> UpdateArticleLikes(LikeDbModel like)
        {
            try
            {
                var result = await genericRepository.UpdateAsync(like);

                return(result);
            }
            catch (NpgsqlException)
            {
                //Logging Mechanism
                throw;
            }
        }
예제 #3
0
 public RequestValidator SetRequestValidator(LikeDbModel likeDbModel)
 {
     this.isValidRequest = true;
     this.LikeDbModel    = likeDbModel;
     return(this);
 }