// GET api/movies/5 public Movie Get(int ID) { using (var db = new MoviesDB()) { return(db.Movies.FirstOrDefault(m => m.ID == ID)); } }
// GET api/movies public IEnumerable <Movie> Get() { using (var db = new MoviesDB()) { return(db.Movies.ToList()); } }
public void Setup() { var options = new DbContextOptionsBuilder <MoviesDB>() .UseInMemoryDatabase(databaseName: "Movies Test").Options; context = new MoviesDB(options); }
public ActionResult AllMovies(string sortRadioButton) { int radioButtonPressed = Convert.ToInt32(Request.Form["sortRadioButton"]); var movieEntities = new MoviesDB(); return(View(movieEntities.GetMovie(radioButtonPressed))); }
static void ReadMoviesDirectors(MoviesDB moviesDB, string path, bool printSep, int width) { byte[] content = File.ReadAllBytes(path + "/movies_directors.csv"); long msecs1 = Environment.TickCount; bool indexCreationTriggered = false; CsvReader reader = new CsvReader(content); reader.SkipLine(); while (!reader.Eof()) { int directorId = (int)reader.ReadLong(); reader.Skip(';'); int movieId = (int)reader.ReadLong(); reader.SkipLine(); moviesDB.AddMovieDirector(movieId, directorId); if (!indexCreationTriggered) { moviesDB.DirectorsOf(0); indexCreationTriggered = true; } } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
////////////////////////////////////////////////////////////////////////////// static void ReadMovies(MoviesDB moviesDB, string path, bool printSep, int width) { byte[] content = File.ReadAllBytes(path + "/movies.csv"); long msecs1 = Environment.TickCount; string[] empty = new string[0]; CsvReader reader = new CsvReader(content); reader.SkipLine(); while (!reader.Eof()) { int id = (int)reader.ReadLong(); reader.Skip(';'); string name = reader.ReadString(); reader.Skip(';'); int year = (int)reader.ReadLong(); reader.Skip(';'); double rank = reader.ReadDouble(); reader.SkipLine(); moviesDB.AddMovie(id, name, year, rank, empty); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// static void MoviesWithActorsInCommon(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; int maxId = (int)moviesDB.MaxMovieId(); int numOfIds = (int)moviesDB.NumOfMovies() / 6; int[] randomIds = RandomInts(maxId, numOfIds, 64798); long count = 0; int misses = 0; foreach (int id in randomIds) { if (moviesDB.MovieExists(id)) { long[] movies = moviesDB.MoviesWithActorsInCommon(id); count += movies.Length; } else { misses++; } } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void RunStoringTest(string inputPath, string outputFile, bool runUpdates, int repetitions) { MoviesDB moviesDB = new MoviesDB(); ReadCsvFiles(moviesDB, inputPath, false); if (runUpdates) { RunUpdates(moviesDB, false); } for (int i = 0; i < repetitions; i++) { long msecs1 = Environment.TickCount; string file = outputFile; if (repetitions > 1 && file.EndsWith(".txt")) { file = file.Substring(0, file.Length - 4) + string.Format("-{0:D2}", i) + ".txt"; } using (Stream stream = new FileStream(file, FileMode.Create)) { moviesDB.Save(stream); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, false, 6); Console.WriteLine(); } }
// GET: api/Movie/Get/5 public MovieData Get(Guid id) { MovieData movie = new MovieData(); using (MoviesDB db = new MoviesDB()) { Movies movieFromDb = db.Movies.Where(x => x.Id == id).FirstOrDefault(); List <Genres> genres = db.Genres1.Where(x => x.MovieId == id).ToList(); List <StreamSources> streamSources = db.StreamSources1.Where(x => x.MovieId == id).ToList(); movie.Id = movieFromDb.Id; movie.Title = movieFromDb.Title; movie.Cast = movieFromDb.Cast; movie.Country = movieFromDb.Country; movie.CoverPath = movieFromDb.CoverPath; movie.Dabing = movieFromDb.Dabing; movie.Description = movieFromDb.Description; movie.Director = movieFromDb.Director; movie.Lenght = movieFromDb.Lenght; movie.OriginalTitle = movieFromDb.OriginalTitle != null ? movieFromDb.OriginalTitle : movieFromDb.Title; movie.ReleaseDate = movieFromDb.ReleaseDate; foreach (var genre in genres.Where(n => n.MovieId == movieFromDb.Id)) { movie.Genres.Add(genre.GenreType); } foreach (var source in streamSources.Where(n => n.MovieId == movieFromDb.Id)) { movie.StreamSources.Add(source.Source); } } return(movie); }
public async Task <IActionResult> Added(MoviesDB movie) { if (ModelState.IsValid) { var files = HttpContext.Request.Form.Files; if (files.Count() > 0) { byte[] p1 = null; using (var fs1 = files[0].OpenReadStream()) { using (var ms1 = new MemoryStream()) { fs1.CopyTo(ms1); p1 = ms1.ToArray(); } } movie.Banner = p1; } _db.MoviesDb.Add(movie); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(movie)); }
static void BumpUpRankOfMovieAndAllItsActorsAndDirectors(MoviesDB moviesDB, double factor, bool printSep, int width) { long msecs1 = Environment.TickCount; int maxId = 0; foreach (Movie m in moviesDB.movies.Values) { if (m.id > maxId) { maxId = m.id; } } int numOfIds = moviesDB.movies.Count / 4; int[] randomIds = RandomInts(maxId, numOfIds, 735025); foreach (int id in randomIds) { Movie movie; if (moviesDB.movies.TryGetValue(id, out movie)) { moviesDB.BumpUpRankOfMovieAndAllItsActorsAndDirectors(movie, factor); } } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void ReadRoles(MoviesDB moviesDB, String path, bool printSep, int width) { byte[] content = File.ReadAllBytes(path + "/roles.csv"); long msecs1 = Environment.TickCount; CsvReader reader = new CsvReader(content); reader.SkipLine(); while (!reader.Eof()) { int actorId = (int)reader.ReadLong(); reader.Skip(';'); int movieId = (int)reader.ReadLong(); reader.Skip(';'); String role = reader.ReadString(); reader.SkipLine(); moviesDB.AddRole(actorId, movieId, role); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void ReadDirectors(MoviesDB moviesDB, string path, bool printSep, int width) { byte[] content = File.ReadAllBytes(path + "/directors.csv"); long msecs1 = Environment.TickCount; CsvReader reader = new CsvReader(content); reader.SkipLine(); while (!reader.Eof()) { int id = (int)reader.ReadLong(); reader.Skip(';'); string firstName = reader.ReadString(); reader.Skip(';'); string lastName = reader.ReadString(); reader.SkipLine(); moviesDB.AddDirector(id, firstName, lastName); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
public ActionResult Edit(Movie movie) { var moviesDB = new MoviesDB(); moviesDB.UpdateMovie(movie); return(RedirectToAction("AllMovies")); }
static void DeleteDirectorsWithNoMovies(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; moviesDB.DeleteDirectorsWithNoMovies(); long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// static void DeleteMoviesWithRankBelow(MoviesDB moviesDB, double minRank, bool printSep, int width) { long msecs1 = Environment.TickCount; moviesDB.DeleteMoviesWithRankBelow(minRank); long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void CalcDirectorsAvgsMoviesRanks(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; moviesDB.CalcDirectorsAvgsMoviesRanks(); long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
public async Task <IActionResult> Create([Bind("Id,Title,Producer,Year,Rating")] MovieModel movieModel) { if (ModelState.IsValid) { MoviesDB.Create(movieModel); return(RedirectToAction(nameof(Index))); } return(View(movieModel)); }
static void ReadCsvFiles(MoviesDB moviesDB, string path, bool printTimes) { ReadMovies(moviesDB, path, false, printTimes ? 5 : 0); ReadActors(moviesDB, path, true, printTimes ? 5 : 0); ReadDirectors(moviesDB, path, true, printTimes ? 5 : 0); ReadMoviesDirectors(moviesDB, path, true, printTimes ? 5 : 0); ReadMoviesGenres(moviesDB, path, true, printTimes ? 5 : 0); ReadRoles(moviesDB, path, true, printTimes ? 6 : 0); }
// POST api/movies public Movie Post(Movie movie) { using (var db = new MoviesDB()) { db.Movies.Add(movie); db.SaveChanges(); } return(movie); }
static void RunTests(String path, int numOfQueryRuns, bool runUpdates) { MoviesDB moviesDB = new MoviesDB(); bool noQueries = numOfQueryRuns == 0; ReadMovies(moviesDB, path, false, noQueries ? 5 : 0); ReadActors(moviesDB, path, true, noQueries ? 5 : 0); ReadDirectors(moviesDB, path, true, noQueries ? 5 : 0); ReadMoviesDirectors(moviesDB, path, true, noQueries ? 5 : 0); ReadMoviesGenres(moviesDB, path, true, noQueries ? 5 : 0); ReadRoles(moviesDB, path, true, noQueries ? 6 : 0); if (!runUpdates) { for (int i = 0; i < numOfQueryRuns; i++) { if (i > 0) { Console.Write("\n"); } RunQueries(moviesDB); } } if (runUpdates) { BumpUpRankOfMoviesMadeInOrBefore(moviesDB, new int[] { 1970, 1989, 2000 }, new double[] { 0.2, 0.05, 0.05 }, true, noQueries ? 6 : 0); CalcActorsAvgsMoviesRanks(moviesDB, true, noQueries ? 4 : 0); CalcDirectorsAvgsMoviesRanks(moviesDB, true, noQueries ? 4 : 0); BumpUpRankOfMovieAndAllItsActorsAndDirectors(moviesDB, 0.1, true, noQueries ? 5 : 0); DeleteMoviesWithRankBelow(moviesDB, 4.0, true, noQueries ? 5 : 0); DeleteActorsWithNoRoles(moviesDB, true, noQueries ? 4 : 0); DeleteDirectorsWithNoMovies(moviesDB, true, noQueries ? 4 : 0); } if (runUpdates) { for (int i = 0; i < numOfQueryRuns; i++) { if (i > 0) { Console.Write("\n"); } RunQueries(moviesDB); } } Console.WriteLine(); }
//detail view public async Task <IActionResult> Movie(int?id, MoviesDB cat) { if (id == null) { return(NotFound()); } var movie = await _db.MoviesDb.FindAsync(id); return(View(movie)); }
public async Task <IActionResult> Delete(MoviesDB mov) { if (mov.Id == null) { return(NotFound()); } _db.MoviesDb.Remove(mov); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// static void BumpUpRankOfMoviesMadeInOrBefore(MoviesDB moviesDB, int[] years, double[] factors, bool printSep, int width) { long msecs1 = Environment.TickCount; for (int i = 0; i < years.Length; i++) { moviesDB.BumpUpRankOfMoviesMadeInOrBefore(years[i], factors[i]); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
private Movie Map(MoviesDB moviesDB) { if (moviesDB == null) { return(null); } return(new Movie() { Id = moviesDB.Id, Title = moviesDB.Title, ReleaseYear = moviesDB.ReleaseYear }); }
// Configure is called after ConfigureServices is called. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory) { // Configure the HTTP request pipeline. // Add the console logger. loggerfactory.AddConsole(); // Add the following to the request pipeline only in development environment. if (string.Equals(env.EnvironmentName, "Development", StringComparison.OrdinalIgnoreCase)) { app.UseBrowserLink(); app.UseErrorPage(ErrorPageOptions.ShowAll); app.UseDatabaseErrorPage(DatabaseErrorPageOptions.ShowAll); } else { // Add Error handling middleware which catches all application specific errors and // send the request to the following path or controller action. app.UseErrorHandler("/Home/Error"); } // Add static files to the request pipeline. app.UseStaticFiles(); // Add cookie-based authentication to the request pipeline. app.UseIdentity(); // Add MVC to the request pipeline. app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action}/{id?}", defaults: new { controller = "Movies", action = "Index" }); // Uncomment the following line to add a route for porting Web API 2 controllers. // routes.MapWebApiRoute("DefaultApi", "api/{controller}/{id?}"); }); // Seed database var db = new MoviesDB(); db.Database.EnsureCreated(); if (db.Movies.Count() == 0) { db.Movies.Add(new Movie { Title = "Memento", Director = "Nolan" }); db.SaveChanges(); } }
static void NumOfActorsWhoPlayedInAMovieWithRankAbove(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; int[] counts = new int[50]; for (int i = 0; i < 50; i++) { counts[i] = (int)moviesDB.NumOfActorsWhoPlayedInAMovieWithRankAbove((i + 1) * 0.2); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void NumOfMoviesWithRankAbove(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; int[] counts = new int[100]; for (int i = 0; i < 100; i++) { counts[i] = (int)moviesDB.NumOfMoviesWithRankAbove((i + 1) * 0.1); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void DirectorsWhoAreAlsoActors(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; long[] directorsActors = moviesDB.DirectorsWhoAreAlsoActors(); if (directorsActors.Length == 0) { throw new Exception(); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
static void MoviesAgeHistogram(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; long[] histogram; for (int i = 0; i < 50; i++) { histogram = moviesDB.MovieAgeHistogram(1900, 5.0 + i * 0.1); } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }
public MovieRepository() { _context = new MoviesDB(); }