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); }
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); }