Example #1
0
        public async Task <IHttpActionResult> FindActivityReviewStatistics(int activityId)
        {
            try
            {
                Expression <Func <Review, bool> > Filter = x => !x.IsDeleted;
                Filter = Filter.And(x => x.ActivityId == activityId);
                var TotalReviews = await Mgr.Count_Async(Filter);

                if (TotalReviews == 0)
                {
                    return(Ok(false));
                }

                var TotalRate = Mgr.FindActivityTotalRate(Filter);


                var res = new
                {
                    TotalReviews = TotalReviews,
                    AvgRate      = Math.Round(TotalRate / TotalReviews, 2)
                };

                return(Ok(res));
            }
            catch (Exception ex)
            {
                Unit.LogError(ex, this.ToString(), this.ActionContext.ActionArguments.ToList());
                return(InternalServerError(ex));
            }
        }