public void AddVisit(DateTime startTime, DateTime endTime)
    {
        PlaceVisit tempVisit = new PlaceVisit(startTime, endTime);

        foreach (var item in visits)
        {
            if (item.startTime == startTime)
            {
                return;
            }
        }
        visits.Add(tempVisit);
    }
Exemplo n.º 2
0
        private double SetRating(PlaceVisit placeVisit, IEnumerable <Review> placeReview)
        {
            var allVotes          = _unitOfWork.VoteRepository.Get();
            var votesCount        = placeVisit.UserVotes.Count + placeReview.Count();
            var votesSum          = placeVisit.UserVotes.Sum(v => v.UserRate) + placeReview.Sum(r => r.Rating);
            var allVotesCount     = allVotes.Count();
            var middleRate        = votesSum / votesCount;
            var middleRateGeneral = allVotes.Sum(v => v.UserRate) / allVotesCount;

            var sumOfRates     = allVotesCount * middleRateGeneral + votesCount * middleRate;
            var sumOfRateCount = allVotesCount + votesCount;
            var bayes          = sumOfRates / sumOfRateCount;
            var numberInRating = bayes / MaxAvailablePoint;
            var rate           = Math.Round(numberInRating, 2);

            return(rate);
        }