Advertisement
Guest User

Untitled

a guest
Apr 30th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.97 KB | None | 0 0
  1. using Newtonsoft.Json;
  2. using OnlineMoviesCatalog.Data;
  3. using OnlineMoviesCatalog.Models;
  4. using OnlineMoviesCatalog.Service.Providers.Contracts;
  5. using System.IO;
  6. using System.Linq;
  7.  
  8. namespace OnlineMoviesCatalog.Service.Providers
  9. {
  10.     public class InputProvider : IInputProvider
  11.     {
  12.         private readonly MovieCatalogContext context;
  13.  
  14.         public InputProvider(MovieCatalogContext movieCatalogContext)
  15.         {
  16.             this.context = movieCatalogContext;
  17.         }
  18.  
  19.         public void LoadJsons()
  20.         {
  21.             LoadActors();
  22.  
  23.             LoadGenres();
  24.  
  25.             LoadUsers();
  26.  
  27.             LoadMovies();
  28.  
  29.             LoadReviews();
  30.  
  31.             LoadMovieActors();
  32.  
  33.             LoadMovieGenres();
  34.         }
  35.  
  36.         public void LoadUsers()
  37.         {
  38.             if (context.Users.Any())
  39.             {
  40.                 return;
  41.             }
  42.             var usersAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\users.json");
  43.  
  44.             var users = JsonConvert.DeserializeObject<User[]>(usersAsJson);
  45.  
  46.             foreach (var user in users)
  47.             {
  48.                 context.Users.Add(new User { UserName = user.UserName, Password = user.Password });
  49.             }
  50.             context.SaveChanges();
  51.         }
  52.  
  53.         public void LoadMovies()
  54.         {
  55.             if (context.Movies.Any())
  56.             {
  57.                 return;
  58.             }
  59.             var moviesAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\movies.json");
  60.  
  61.             var movies = JsonConvert.DeserializeObject<Movie[]>(moviesAsJson);
  62.  
  63.             foreach (var movie in movies)
  64.             {
  65.                 context.Movies.Add(new Movie { Title = movie.Title, Trailer = movie.Trailer, ReleaseDate = movie.ReleaseDate, Description = movie.Description, UserId = movie.UserId, AverageRating = movie.AverageRating, TotalRating = movie.TotalRating, NumberOfVotes = movie.NumberOfVotes });
  66.             }
  67.             context.SaveChanges();
  68.         }
  69.  
  70.         public void LoadActors()
  71.         {
  72.             if (context.Actors.Any())
  73.             {
  74.                 return;
  75.             }
  76.             var actorAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\actors.json");
  77.  
  78.             var actors = JsonConvert.DeserializeObject<Actor[]>(actorAsJson);
  79.  
  80.             foreach (var actor in actors)
  81.             {
  82.                 context.Actors.Add(new Actor { FirstName = actor.FirstName, LastName = actor.LastName });
  83.             }
  84.             context.SaveChanges();
  85.         }
  86.  
  87.         public void LoadGenres()
  88.         {
  89.             if (context.Genres.Any())
  90.             {
  91.                 return;
  92.             }
  93.             var genresAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\genres.json");
  94.  
  95.             var genres = JsonConvert.DeserializeObject<Genre[]>(genresAsJson);
  96.  
  97.             foreach (var genre in genres)
  98.             {
  99.                 context.Genres.Add(new Genre { Name = genre.Name });
  100.             }
  101.             context.SaveChanges();
  102.         }
  103.  
  104.         public void LoadReviews()
  105.         {
  106.             if (context.Reviews.Any())
  107.             {
  108.                 return;
  109.             }
  110.             var reviewsAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\reviews.json");
  111.  
  112.             var reviews = JsonConvert.DeserializeObject<Review[]>(reviewsAsJson);
  113.  
  114.             foreach (var review in reviews)
  115.             {
  116.                 context.Reviews.Add(new Review { Description = review.Description, IsDeleted = review.IsDeleted, Rating = review.Rating, UserId = review.UserId, CreatedOn = review.CreatedOn, MovieId = review.MovieId });
  117.             }
  118.             context.SaveChanges();
  119.         }
  120.  
  121.         public void LoadMovieGenres()
  122.         {
  123.             if (context.MovieGenres.Any())
  124.             {
  125.                 return;
  126.             }
  127.             var movGenresAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\moviesGenres.json");
  128.  
  129.             var movieGenres = JsonConvert.DeserializeObject<MovieGenres[]>(movGenresAsJson);
  130.  
  131.             foreach (var movieGenre in movieGenres)
  132.             {
  133.                 context.MovieGenres.Add(new MovieGenres { GenreId = movieGenre.GenreId, MovieId = movieGenre.MovieId });
  134.             }
  135.             context.SaveChanges();
  136.         }
  137.  
  138.         public void LoadMovieActors()
  139.         {
  140.             if (context.MovieActors.Any())
  141.             {
  142.                 return;
  143.             }
  144.             var movieActorsAsString = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\moviesActors.json");
  145.  
  146.             var movieActors = JsonConvert.DeserializeObject<MovieActors[]>(movieActorsAsString);
  147.  
  148.             foreach (var movActor in movieActors)
  149.             {
  150.                 context.MovieActors.Add(new MovieActors { ActorId = movActor.ActorId, MovieId = movActor.ActorId });
  151.             }
  152.             context.SaveChanges();
  153.         }
  154.     }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement