private void DisplayResultsOfRating(FilmRating rating, string filmFan, List <Film> films, List <Screening> screenings) { // Display summary for this rating. int highRatedFilmCount = films.Count; int plannedFilmCount = films.Where(f => HasAttendedScreening(f, filmFan)).Count(); _builder.Append($"{LogTimeString()} {plannedFilmCount} out of {highRatedFilmCount} films with rating {rating} planned for {filmFan}."); // Display films with this rating that weren't planned. if (highRatedFilmCount - plannedFilmCount > 0) { _builder.AppendLine(); _builder.AppendLine($"Films with rating {rating} that could not be planned for {filmFan}:"); var unplannedFilms = films.Where(f => !HasAttendedScreening(f, filmFan)); _builder.AppendJoin(Environment.NewLine, unplannedFilms); } _builder.AppendLine(); // Display the considered screenings in order. _builder.AppendLine(); if (screenings.Count > 0) { _builder.AppendLine($"Considered screenings of films rated {rating} in order:"); _builder.AppendLine(); _builder.AppendJoin(Environment.NewLine, screenings.Select(s => s.ToConsideredScreeningString(filmFan))); _builder.AppendLine(); } else { _builder.AppendLine($"No screenings of films rated {rating} could be considered."); } _builder.AppendLine(); }
public decimal TimeWeightedMeanRating() { TimeSpan time = TimeSpan.Zero; decimal ratingMinutes = 0M; decimal minutesSum = 0M; bool fullyRated = true; foreach (var screenedFilm in ScreenedFilms) { Film film = ViewController.GetFilmById(screenedFilm.ScreenedFilmId); FilmRating rating = film.MaxRating; if (rating.IsUnrated) { fullyRated = false; break; } decimal decimalRating = decimal.Parse(rating.Value); decimal minutes = (decimal)film.Duration.TotalMinutes; ratingMinutes += decimalRating * minutes; minutesSum += minutes; } if (fullyRated && ScreenedFilms.Count > 0) { decimal meanRating = ratingMinutes / minutesSum; return(meanRating); } return(decimal.Zero); }
public FilmFanFilmRating(string filmFanFilmRatingText) { string[] fields = filmFanFilmRatingText.Split(';'); string filmId = fields[0]; FilmFan = fields[1]; string rating = fields[2]; FilmId = Int32.Parse(filmId); Rating = new FilmRating(rating); }
public bool IsGreaterOrEqual(FilmRating otherRating) { return(CompareTo(otherRating) >= 0); }
public bool Equals(FilmRating otherRating) { return(CompareTo(otherRating) == 0); }
public FilmFanFilmRating(int filmId, string filmFan, FilmRating rating) { FilmId = filmId; FilmFan = filmFan; Rating = rating; }