Example #1
0
        /// <summary>
        /// Get star ratings master data
        /// </summary>
        /// <returns>Star rating master data</returns>
        public async Task <IActionResult> GetStarRating()
        {
            BaseResult <List <StarRatingViewModel> > starRatingResultFromCache = new BaseResult <List <StarRatingViewModel> >
            {
                Result = RedisCacheHelper.Instance.Get <List <StarRatingViewModel> >(Constants.CacheKeys.StarRatingList)
            };

            if (starRatingResultFromCache.Result == null || starRatingResultFromCache.Result.Count == 0)
            {
                BaseResult <List <StarRating> > starRatingResult = await iMasterData.GetStarRating().ConfigureAwait(false);

                if (starRatingResult.IsError && starRatingResult.ExceptionMessage != null)
                {
                    return(new StatusCodeResult(500));
                }
                else if (starRatingResult.Result == null || starRatingResult.Result.Count == 0)
                {
                    return(NoContent());
                }
                else
                {
                    var result = DbMapperMasterdata.MapStarRating(starRatingResult);
                    RedisCacheHelper.Instance.Set <List <StarRatingViewModel> >(Constants.CacheKeys.StarRatingList, result.Result);
                    return(Ok(result));
                }
            }

            return(Ok(starRatingResultFromCache));
        }