public Task <Movie> CreateAsync(Movie movie) { _movies.Add(movie); var movieEvent = new MovieEvent { Name = $"Add Movie", MovieId = movie.Id, TimeStamp = DateTime.Now, MovieRating = movie.MovieRating }; movieEventService.AddEvent(movieEvent); return(Task.FromResult(movie)); }
public Task <Movie> CreateAsync(Movie movie) { if (movie == null) { throw new ArgumentNullException("Create movie is null."); } movie.Id = _movies.Max(a => a.Id) + 1; _movies.Add(movie); var movieEvent = new MovieEvent { Name = $"Add Movie", MovieId = movie.Id, TimeStamp = DateTime.Now, MovieRating = movie.MovieRating }; _movieEventService.AddEvent(movieEvent); return(Task.FromResult(movie));; }
public Task <Movie> Add(Movie movie) { if (movie?.Id == null || _movies.Any(x => x.Id == movie.Id)) { throw new ArgumentException($"提供的 {nameof(movie)} 无效。"); } _movies.Add(movie); var movieEvent = new MovieEvent { Name = "Add Movie", MovieId = movie.Id, TimeStamp = DateTimeOffset.Now, MovieRating = movie.MovieRating }; _eventService.AddEvent(movieEvent); return(Task.FromResult(movie)); }
public void Record2(MovieEvent @event) { }
public void Handles(MovieEvent @event) { }
public MovieEvent AddEvent(MovieEvent newEvent) { AllEvents.Push(newEvent); _eventStream.OnNext(newEvent); return(newEvent); }
public MovieEvent AddEvent(MovieEvent e) { AllEvents.Push(e); _eventStream.OnNext(e); return(e); }
public void OnGet(int?m = null, int?typeMask = null, decimal?minrating = null, bool?notyetrated = null, Cert cert = Cert.all, int?movieeventid = null, string setimdbid = null, int?maxdays = null) { string userId = ClaimChecker.UserId(User.Identity); var now = DateTime.Now; // Get the connection string string connectionString = configuration.GetConnectionString("FxMoviesDb"); string connectionStringImdb = configuration.GetConnectionString("ImdbDb"); AdsInterval = configuration.GetValue("AdsInterval", AdsInterval); FilterMaxDaysDefault = configuration.GetValue("DefaultMaxDays", FilterMaxDaysDefault); FilterMaxDays = FilterMaxDaysDefault; FilterTypeMask = FilterTypeMaskDefault; EditImdbLinks = ClaimChecker.Has(User.Identity, ClaimEditImdbLinks); if (typeMask.HasValue) { FilterTypeMask = typeMask.Value; } if (minrating.HasValue) { FilterMinRating = minrating.Value; } // Only allow setting more days when authenticated if (maxdays.HasValue && User.Identity.IsAuthenticated) { FilterMaxDays = maxdays.Value; } FilterNotYetRated = notyetrated; FilterCert = cert & Cert.all2; if (FilterCert == Cert.all2) { FilterCert = Cert.all; } using (var db = FxMoviesDbContextFactory.Create(connectionString)) { if (EditImdbLinks && movieeventid.HasValue && !string.IsNullOrEmpty(setimdbid)) { bool overwrite = false; var match = Regex.Match(setimdbid, @"(tt\d+)"); if (match.Success) { setimdbid = match.Groups[0].Value; overwrite = true; } else if (setimdbid.Equals("remove", StringComparison.InvariantCultureIgnoreCase)) { setimdbid = null; overwrite = true; } if (overwrite) { var movieEvent = db.MovieEvents.Find(movieeventid.Value); if (movieEvent != null) { if (setimdbid != null) { using (var dbImdb = ImdbDbContextFactory.Create(connectionStringImdb)) { var imdbMovie = dbImdb.Movies.Find(setimdbid); if (imdbMovie != null) { movieEvent.ImdbRating = imdbMovie.Rating; movieEvent.ImdbVotes = imdbMovie.Votes; } } } movieEvent.ImdbId = setimdbid; db.SaveChanges(); } } } if (userId != null) { var user = db.Users.Find(userId); if (user != null) { RefreshRequestTime = user.RefreshRequestTime; LastRefreshRatingsTime = user.LastRefreshRatingsTime; LastRefreshSuccess = user.LastRefreshSuccess; user.Usages++; user.LastUsageTime = DateTime.UtcNow; ImdbUserId = user.ImdbUserId; db.SaveChanges(); } } if (m.HasValue) { if (m.Value == -2) { throw new Exception("Sentry test exception"); } else { MovieEvent = db.MovieEvents.Find(m.Value); if (MovieEvent != null) { int days = (int)(MovieEvent.StartTime.Date - DateTime.Now.Date).TotalDays; if (FilterMaxDays < days) { FilterMaxDays = days; } } } } Count = db.MovieEvents.Count(); CountTypeFilm = db.MovieEvents.Where(me => me.Type == 1).Count(); CountTypeShort = db.MovieEvents.Where(me => me.Type == 2).Count(); CountTypeSerie = db.MovieEvents.Where(me => me.Type == 3).Count(); CountMinRating5 = db.MovieEvents.Where(me => me.ImdbRating >= 50).Count(); CountMinRating6 = db.MovieEvents.Where(me => me.ImdbRating >= 60).Count(); CountMinRating7 = db.MovieEvents.Where(me => me.ImdbRating >= 70).Count(); CountMinRating8 = db.MovieEvents.Where(me => me.ImdbRating >= 80).Count(); CountMinRating9 = db.MovieEvents.Where(me => me.ImdbRating >= 90).Count(); CountNotOnImdb = db.MovieEvents.Where(me => string.IsNullOrEmpty(me.ImdbId)).Count(); CountNotRatedOnImdb = db.MovieEvents.Where(me => me.ImdbRating == null).Count(); CountCertNone = db.MovieEvents.Where(me => string.IsNullOrEmpty(me.Certification)).Count(); CountCertG = db.MovieEvents.Where(me => me.Certification == "US:G").Count(); CountCertPG = db.MovieEvents.Where(me => me.Certification == "US:PG").Count(); CountCertPG13 = db.MovieEvents.Where(me => me.Certification == "US:PG-13").Count(); CountCertR = db.MovieEvents.Where(me => me.Certification == "US:R").Count(); CountCertNC17 = db.MovieEvents.Where(me => me.Certification == "US:NC-17").Count(); CountCertOther = Count - CountCertNone - CountCertG - CountCertPG - CountCertPG13 - CountCertR - CountCertNC17; CountRated = db.MovieEvents.Where( me => db.UserRatings.Where(ur => ur.UserId == userId).Any(ur => ur.ImdbMovieId == me.ImdbId)).Count(); CountNotYetRated = Count - CountRated; Count3days = db.MovieEvents.Where(me => me.StartTime.Date <= now.Date.AddDays(3)).Count(); Count5days = db.MovieEvents.Where(me => me.StartTime.Date <= now.Date.AddDays(5)).Count(); Count8days = db.MovieEvents.Where(me => me.StartTime.Date <= now.Date.AddDays(8)).Count(); Records = ( from me in db.MovieEvents.Include(me => me.Channel) join ur in db.UserRatings.Where(ur => ur.UserId == userId) on me.ImdbId equals ur.ImdbMovieId into urGroup from ur in urGroup.DefaultIfEmpty(null) join uw in db.UserWatchLists.Where(ur => ur.UserId == userId) on me.ImdbId equals uw.ImdbMovieId into uwGroup from uw in uwGroup.DefaultIfEmpty(null) where (FilterMaxDays == 0 || me.StartTime.Date <= now.Date.AddDays(FilterMaxDays)) && (me.EndTime >= now && me.StartTime >= now.AddMinutes(-30)) && ( ((FilterTypeMask & 1) == 1 && me.Type == 1) || ((FilterTypeMask & 2) == 2 && me.Type == 2) || ((FilterTypeMask & 4) == 4 && me.Type == 3) ) && (!FilterMinRating.HasValue || (FilterMinRating.Value == NO_IMDB_ID && string.IsNullOrEmpty(me.ImdbId)) || (FilterMinRating.Value == NO_IMDB_RATING && me.ImdbRating == null) || (FilterMinRating.Value >= 0.0m && (me.ImdbRating >= FilterMinRating.Value * 10))) && (!FilterNotYetRated.HasValue || FilterNotYetRated.Value == (ur == null)) && (FilterCert == Cert.all || (ParseCertification(me.Certification) & FilterCert) != 0) select new Record() { MovieEvent = me, UserRating = ur, UserWatchListItem = uw } ).ToList(); // MovieEvents = db.MovieEvents.Include(m => m.Channel) // .Where(m => !MinRating.HasValue || m.ImdbRating >= MinRating.Value * 10) // .ToList(); } }
private void handler(object sender, MovieEvent e) { switch (e.EventState) { case MovieEvent.State.NewMovie: btnStart.Enabled = true; btnStop.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; btnStart.Text = "暂停"; break; case MovieEvent.State.Paused: btnStart.Enabled = true; btnStop.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; btnStart.Text = "开始"; break; case MovieEvent.State.Playing: btnStart.Enabled = true; btnStop.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; btnStart.Text = "暂停"; trackBar.Value = movieInfo.currentFrame; break; case MovieEvent.State.PrevNext: btnStart.Enabled = true; btnStop.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; trackBar.Value = movieInfo.currentFrame; break; case MovieEvent.State.Started: btnStart.Enabled = true; btnStop.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; btnStart.Text = "暂停"; break; case MovieEvent.State.Stopped: btnStart.Enabled = true; btnStop.Enabled = false; btnPrev.Enabled = false; btnNext.Enabled = false; btnStart.Text = "开始"; trackBar.Value = 0; break; case MovieEvent.State.Scroll: btnStart.Enabled = true; btnStop.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; break; default: break; } }
public MovieEvent AddEvent(MovieEvent movieEvent) { AllEvents.Push(movieEvent); _eventStream.OnNext(movieEvent); return(movieEvent); }
private static IList<MovieEvent> MovieAdapter(Humo humo) { if (humo == null || humo.channels == null) { return new List<MovieEvent>(); } var movies = new List<MovieEvent>(); foreach (var humoChannel in humo.channels) { var channel = new Channel() { Code = humoChannel.seoKey, Name = humoChannel.name, LogoS = humoChannel.channelLogoUrl, }; foreach (var broadcast in humoChannel.broadcasts) { string description = broadcast.synopsis; int? year = null; // int year = broadcast.program.year; // description = description.Replace($" ({year})", ""); // if (broadcast.program.episodenumber != 0 && broadcast.program.episodeseason != 0) // { // description += $" (SERIE: begin van seizoen {broadcast.program.episodeseason})"; // } string genre = broadcast.genre?.Trim() ?? ""; if (genre != "") genre += " - "; genre += string.Join(' ', broadcast.subGenres); int type; if (broadcast.IsMovie()) { if (broadcast.IsShort()) type = 2; // short else type = 1; // movie } else { type = 3; // serie } string opinion = null; // string opinion = broadcast.program.opinion; // if (!string.IsNullOrEmpty(broadcast.program.appreciation) // && int.TryParse(broadcast.program.appreciation, out int appreciation) // && appreciation > 0 && appreciation <= 50) // { // string stars = new string('★', appreciation / 10); // if (appreciation % 10 > 0) // stars += '½'; // if (string.IsNullOrEmpty(opinion)) // opinion = stars; // else // opinion = stars + " " + opinion; // } if (broadcast.rating.HasValue) { int rating = broadcast.rating.Value; if (rating > 0 && rating <= 100) { string stars = new string('★', rating / 20); if (rating % 20 > 0) stars += '½'; opinion = stars; } } var movie = new MovieEvent() { Id = broadcast.uuid.GetHashCode(), Channel = channel, Title = broadcast.title, Year = year, StartTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(broadcast.from / 1000).ToLocalTime(), EndTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(broadcast.to / 1000).ToLocalTime(), Duration = broadcast.duration / 60, PosterS = broadcast.imageUrl, PosterM = broadcast.imageUrl, Content = broadcast.synopsis, Opinion = opinion, Genre = genre, Type = type, }; movies.Add(movie); } } return movies; }