Пример #1
0
        public async Task <IResult> GetProductRatingById(int productId)
        {
            var result = new Result()
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var userDetail = _specificClaim.GetSpecificClaim("Id");
                var rating     = await _productRepository.GetProductRatingById(userDetail, productId);

                if (rating.Status != Status.Success)
                {
                    return(rating);
                }
                ProductRatingReviewViewModel viewModel     = new ProductRatingReviewViewModel();
                ProductRatingReviewModel     productRating = rating.Body;
                viewModel.MapFromModel(productRating);
                viewModel.UserName = _specificClaim.GetSpecificClaim("userName");

                result.Body       = viewModel;
                result.StatusCode = HttpStatusCode.OK;
                return(result);
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.StatusCode = HttpStatusCode.InternalServerError;
                result.Body       = e;
                result.Message    = e.Message;
                return(result);
            }
        }
Пример #2
0
        public async Task <IResult> RateProduct(ProductRatingReviewViewModel productRatingReview)
        {
            var result = new Result()
            {
                Operation = Operation.Create,
                Status    = Status.Success
            };

            try
            {
                ProductRatingReviewModel reviewModel = new ProductRatingReviewModel();
                reviewModel.MapFromViewModel(productRatingReview);
                reviewModel.UserId     = _specificClaim.GetSpecificClaim("Id");
                reviewModel.RatingDate = DateTime.Now;
                var rating = await _productRepository.RateProduct(reviewModel);

                return(rating);
            }
            catch (Exception e)
            {
                result.Body       = e;
                result.Message    = e.Message;
                result.Status     = Status.Error;
                result.StatusCode = HttpStatusCode.InternalServerError;
                return(result);
            }
        }
Пример #3
0
        public async Task <IResult> GetProductReviewList(int id, DataHelperModel dataHelper)
        {
            var result = new Result()
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var rating = _productRepository.GetReviewList(id);
                if (rating.Count() == 0)
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    result.Message    = "Ratings do not exist for the product.";
                    return(result);
                }
                var list = rating;
                list = DataSortExtention.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                var resultCount = list.Count();
                var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                var resultList  = await pagedList.ToListAsync();

                var ratingViewModel = new List <ProductRatingReviewViewModel>();
                ratingViewModel = resultList.Select(r =>
                {
                    var ratingViewObj = new ProductRatingReviewViewModel();
                    ratingViewObj.MapFromModel(r);
                    return(ratingViewObj);
                }).ToList();
                ResultModel resultModel = new ResultModel();
                resultModel.ProductRatingReviewResult = ratingViewModel;
                resultModel.TotalCount = resultCount;

                result.Status     = Status.Success;
                result.StatusCode = HttpStatusCode.OK;
                result.Body       = resultModel;
                return(result);
            }
            catch (Exception e)
            {
                result.Status     = Status.Success;
                result.StatusCode = HttpStatusCode.InternalServerError;
                result.Body       = e;
                result.Message    = e.Message;
                return(result);
            }
        }
Пример #4
0
        public async Task <IResult> UpdateRating(ProductRatingReviewViewModel productRatingReview)
        {
            var result = new Result()
            {
                Operation = Operation.Update,
                Status    = Status.Success
            };

            try
            {
                int userDetail = _specificClaim.GetSpecificClaim("Id");
                var rating     = await _productRepository.GetProductRatingById(userDetail, productRatingReview.ProductId);

                if (rating.Status != Status.Success)
                {
                    result.Message    = "Rating by this user does not exist.";
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    return(result);
                }
                ProductRatingReviewModel productRatingModel = new ProductRatingReviewModel();
                productRatingModel.MapFromViewModel(productRatingReview);
                productRatingModel.RatingDate = DateTime.Now;
                productRatingModel.UserId     = rating.Body.UserId;
                var updateRating = await _productRepository.UpdateRating(productRatingModel);

                return(updateRating);
            }
            catch (Exception e)
            {
                result.Body       = e;
                result.Message    = e.Message;
                result.Status     = Status.Error;
                result.StatusCode = HttpStatusCode.InternalServerError;
                return(result);
            }
        }
Пример #5
0
        public async Task <IResult> UpdateRating(ProductRatingReviewViewModel productRatingReview)
        {
            var ratingUpdate = await _productService.UpdateRating(productRatingReview);

            return(ratingUpdate);
        }
Пример #6
0
        public async Task <IResult> RateProduct(ProductRatingReviewViewModel productRatingReview)
        {
            var rating = await _productService.RateProduct(productRatingReview);

            return(rating);
        }