Пример #1
0
        public Response <List <UserRatings> > GetCourtRatings([FromHeader] GetCourtByIdRequest request)
        {
            _logger.LogInfo("request for court ratings arrived");
            var result = _courtsManager.GetCourtRatings(request);

            return(result);
        }
Пример #2
0
        public Response <CourtDetails> GetCourt([FromHeader] GetCourtByIdRequest request)
        {
            _logger.LogInfo("request for court details arrived");
            var result = _courtsManager.GetCourt(request);

            return(result);
        }
Пример #3
0
        public Response <CourtDetails> GetCourt(GetCourtByIdRequest request)
        {
            var response = new Response <CourtDetails>();

            var sumRates     = 0;
            var getCourt     = _repository.Get <Courts>(includeProperties: $"{nameof(Ratings)}").Where(x => x.Id == request.CourtId).SingleOrDefault();
            var courtDetails = new CourtDetails()
            {
                Id    = getCourt.Id,
                Lat   = getCourt.Lat,
                Lng   = getCourt.Lng,
                Name  = getCourt.Name,
                Sport = getCourt.Sport
            };

            getCourt.Ratings.ToList().ForEach(x =>
            {
                sumRates += x.Rate;
            });

            if (sumRates == 0)
            {
                courtDetails.AverageRating = 0;
            }
            else
            {
                courtDetails.AverageRating = sumRates / getCourt.Ratings.Count();
            }
            _logger.LogInfo("court details returned");
            response.Payload = courtDetails;
            return(response);
        }
Пример #4
0
        public Response <List <UserRatings> > GetCourtRatings(GetCourtByIdRequest request)
        {
            var response      = new Response <List <UserRatings> >();
            var pagedResponse = new List <UserRatings>();
            var getRatings    = _ratingRepository.GetAll <Ratings>(includeProperties: $"{nameof(Ratings.User)}").Where(x => x.CourtId == request.CourtId).ToList();

            if (getRatings == null)
            {
                _logger.LogError("no ratings found");
                response.Messages.Add(new ResponseMessage
                {
                    Type    = Contracts.Enums.ResponseMessageEnum.Exception,
                    Message = "the court does not exist",
                });
                response.Status = System.Net.HttpStatusCode.NotFound;
            }
            getRatings.ForEach(x =>
            {
                var userRating = new UserRatings()
                {
                    Email     = x.User.Email,
                    UserName  = x.User.UserName,
                    FirstName = x.User.FirstName,
                    LastName  = x.User.LastName,
                    Id        = x.User.Id,
                    Comment   = x.Comment,
                    Rate      = x.Rate
                };
                pagedResponse.Add(userRating);
            });

            _logger.LogInfo("user ratings returned");
            response.Payload = pagedResponse;
            response.Status  = System.Net.HttpStatusCode.OK;
            return(response);
        }