public Response <List <UserRatings> > GetCourtRatings([FromHeader] GetCourtByIdRequest request) { _logger.LogInfo("request for court ratings arrived"); var result = _courtsManager.GetCourtRatings(request); return(result); }
public Response <CourtDetails> GetCourt([FromHeader] GetCourtByIdRequest request) { _logger.LogInfo("request for court details arrived"); var result = _courtsManager.GetCourt(request); return(result); }
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); }
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); }