Advertisement
Guest User

Untitled

a guest
Apr 9th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.98 KB | None | 0 0
  1. using Microsoft.EntityFrameworkCore;
  2. using Newtonsoft.Json;
  3. using OnlineMoviesCatalog.Data;
  4. using OnlineMoviesCatalog.Models;
  5. using OnlineMoviesCatalog.Service.Providers.Contracts;
  6. using System.IO;
  7. using System.Text;
  8.  
  9. namespace OnlineMoviesCatalog.Service.Providers
  10. {
  11.     public class InputProvider : IInputProvider
  12.     {
  13.         private readonly MovieCatalogContext context;
  14.  
  15.         public InputProvider(MovieCatalogContext context)
  16.         {
  17.             this.context = context;
  18.         }
  19.  
  20.         public void LoadJsons()
  21.         {
  22.             LoadActors();
  23.  
  24.             LoadGenres();
  25.  
  26.             LoadUsers();
  27.  
  28.             LoadMovies();
  29.  
  30.             //LoadMovieActors();
  31.  
  32.             //LoadReviews();
  33.  
  34.             //LoadMovieGenres();
  35.         }
  36.  
  37.         public void LoadUsers()
  38.         {
  39.             var usersAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\users.json");
  40.  
  41.             var users = JsonConvert.DeserializeObject<User[]>(usersAsJson);
  42.  
  43.             var sql = new StringBuilder();
  44.  
  45.             foreach (var user in users)
  46.             {
  47.                 sql.AppendLine($@"
  48.                    IF NOT EXISTS (SELECT *
  49.                                    FROM dbo.Users u
  50.                                    WHERE u.Id = {user.Id})
  51.                        BEGIN
  52.                        INSERT INTO dbo.Users
  53.                             (UserName, Password, IsDeleted)
  54.                        VALUES ('{user.UserName}', '{user.Password}', '{user.IsDeleted}')
  55.                        END
  56.                    ELSE
  57.                        BEGIN
  58.                        UPDATE dbo.Users
  59.                        SET UserName = '{user.UserName}', Password = '{user.Password}', IsDeleted = '{user.IsDeleted}'
  60.                        WHERE dbo.Users.Id = {user.Id}
  61.                    END
  62.                    ");
  63.             }
  64.  
  65.             context.Database.ExecuteSqlCommand(sql.ToString());
  66.         }
  67.  
  68.         public void LoadMovies()
  69.         {
  70.             var moviesAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\movies.json");
  71.  
  72.             var movies = JsonConvert.DeserializeObject<Movie[]>(moviesAsJson);
  73.  
  74.             var sql = new StringBuilder();
  75.  
  76.             foreach (var movie in movies)
  77.             {
  78.                 sql.AppendLine($@"
  79.                    IF NOT EXISTS (SELECT *
  80.                                    FROM dbo.Movies m
  81.                                    WHERE m.Id = {movie.Id})
  82.                        BEGIN
  83.                        INSERT INTO dbo.Movies
  84.                             (Title, Trailer, ReleaseDate, Text, UserId, NumberOfVotes, TotalRating, AverageRating)
  85.                        VALUES ('{movie.Title}','{movie.Trailer}','{movie.ReleaseDate}','{movie.Text}','{movie.UserId}','{movie.NumberOfVotes}','{movie.TotalRating}','{movie.AverageRating}')                        
  86.                        END
  87.                    ELSE
  88.                        BEGIN
  89.                        UPDATE dbo.Movies
  90.                        SET Title = '{movie.Title}', Trailer = '{movie.Trailer}', ReleaseDate = '{movie.ReleaseDate}', Text = '{movie.Text}', UserId = '{movie.UserId}', NumberOfVotes = '{movie.NumberOfVotes}', TotalRating = '{movie.TotalRating}', AverageRating = '{movie.AverageRating}'
  91.                        WHERE dbo.Movies.Id = {movie.Id}
  92.                    END
  93.                    ");
  94.             }
  95.  
  96.             context.Database.ExecuteSqlCommand(sql.ToString());
  97.         }
  98.  
  99.         //public void LoadMovies()
  100.         //{
  101.         //    var movieAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\movies.json");
  102.  
  103.         //    var movies = JsonConvert.DeserializeObject<Movie[]>(movieAsJson);
  104.  
  105.         //    var sql = new StringBuilder();
  106.  
  107.         //    foreach (var movie in movies)
  108.         //    {
  109.         //        sql.AppendLine($@"
  110.  
  111.         //            IF NOT EXISTS (SELECT *
  112.         //                            FROM dbo.Movies m
  113.         //                            WHERE a.Id = {movie.Id})
  114.         //                BEGIN
  115.         //                INSERT INTO dbo.Actors
  116.         //                     (Title, Trailer, ReleaseDate, Text, UserId, NumberOfVotes, TotalRating, AverageRating)
  117.         //                VALUES ('{movie.Title}', '{movie.Trailer}', '{movie.Text}' , '{movie.UserId}', '{movie.NumberOfVotes}', '{movie.TotalRating}', '{movie.AverageRating}' )
  118.         //                END
  119.         //            ELSE
  120.         //                BEGIN
  121.         //                UPDATE dbo.Actors
  122.         //                SET Title = '{movie.Title}', Trailer = '{movie.Trailer}', ReleaseDate = '{movie.ReleaseDate}', Text = '{movie.Text}', UserId = '{movie.UserId}', NumberOfVotes = '{movie.NumberOfVotes}', TotalRating = '{movie.TotalRating}', AverageRating = '{movie.AverageRating}'
  123.         //                WHERE dbo.Movies.Id = {movie.Id}
  124.         //            END
  125.         //            ");
  126.         //    }
  127.  
  128.         //    context.Database.ExecuteSqlCommand(sql.ToString());
  129.         //}
  130.  
  131.  
  132.         public void LoadActors()
  133.         {
  134.             var actorAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\actors.json");
  135.  
  136.             var actors = JsonConvert.DeserializeObject<Actor[]>(actorAsJson);
  137.  
  138.             var sql = new StringBuilder();
  139.  
  140.             foreach (var actor in actors)
  141.             {
  142.                 sql.AppendLine($@"
  143.                    
  144.                    IF NOT EXISTS (SELECT *
  145.                                    FROM dbo.Actors a
  146.                                    WHERE a.Id = {actor.Id})
  147.                        BEGIN
  148.                        INSERT INTO dbo.Actors
  149.                             (FirstName, LastName)
  150.                        VALUES ('{actor.FirstName}', '{actor.LastName}')
  151.                        END
  152.                    ELSE
  153.                        BEGIN
  154.                        UPDATE dbo.Actors
  155.                        SET FirstName = '{actor.FirstName}', LastName = '{actor.LastName}'
  156.                        WHERE dbo.Actors.Id = {actor.Id}
  157.                    END
  158.                    ");
  159.             }
  160.  
  161.             context.Database.ExecuteSqlCommand(sql.ToString());
  162.         }
  163.  
  164.         public void LoadGenres()
  165.         {
  166.             var genresAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\genres.json");
  167.  
  168.             var genres = JsonConvert.DeserializeObject<Genre[]>(genresAsJson);
  169.  
  170.             var sql = new StringBuilder();
  171.  
  172.             foreach (var genre in genres)
  173.             {
  174.                 sql.AppendLine($@"
  175.                    
  176.                    IF NOT EXISTS (SELECT *
  177.                                    FROM dbo.Genres c
  178.                                    WHERE c.GenreId = {genre.GenreId})
  179.                        BEGIN
  180.                        INSERT INTO dbo.Genres
  181.                             (Name)
  182.                        VALUES ('{genre.Name}')
  183.                        END
  184.                    ELSE
  185.                        BEGIN
  186.                        UPDATE dbo.Genres
  187.                        SET Name = '{genre.Name}'
  188.                        WHERE dbo.Genres.GenreId = {genre.GenreId}
  189.                    END
  190.                    ");
  191.             }
  192.  
  193.             context.Database.ExecuteSqlCommand(sql.ToString());
  194.         }
  195.  
  196.    
  197.  
  198.         public void LoadReviews()
  199.         {
  200.             var reviewsAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\reviews.json");
  201.  
  202.             var reviews = JsonConvert.DeserializeObject<Review[]>(reviewsAsJson);
  203.  
  204.             var sql = new StringBuilder();
  205.  
  206.             foreach (var review in reviews)
  207.             {
  208.                 sql.AppendLine($@"
  209.                    
  210.                    IF NOT EXISTS (SELECT *
  211.                                    FROM dbo.Reviews r
  212.                                    WHERE r.Id = {review.Id})
  213.                        BEGIN
  214.                        INSERT INTO dbo.Reviews
  215.                             ( Description, Rating,  IsDeleted, CreatedOn, UserId, MovieId )
  216.                        VALUES ( '{review.Description}', '{review.Rating}',{review.IsDeleted}' ,'{review.CreatedOn}', '{review.UserId}','{review.MovieId}')
  217.                        END
  218.                    ELSE
  219.                        BEGIN
  220.                        UPDATE dbo.Reviews
  221.                        SET Description = '{review.Description}', Rating = '{review.Rating}', IsDeleted = '{review.IsDeleted}', CreatedOn = '{review.CreatedOn}', UserId = '{review.UserId}', MovieId = '{review.MovieId}'
  222.                        WHERE dbo.Reviews.Id = {review.Id}
  223.                    END
  224.                    ");
  225.             }
  226.  
  227.             context.Database.ExecuteSqlCommand(sql.ToString());
  228.         }
  229.  
  230.         public void LoadMovieGenres()
  231.         {
  232.             var movGenresAsJson = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\moviesGenres.json");
  233.  
  234.             var movieGenres = JsonConvert.DeserializeObject<MovieGenres[]>(movGenresAsJson);
  235.  
  236.             var sql = new StringBuilder();
  237.  
  238.             foreach (var movieGenre in movieGenres)
  239.             {
  240.                 sql.AppendLine($@"
  241.                    
  242.                    IF NOT EXISTS (SELECT *
  243.                                    FROM dbo.MovieGenres mc)
  244.                        BEGIN
  245.                        INSERT INTO dbo.MovieGenres
  246.                             (MovieId, GenreId)
  247.                        VALUES ('{movieGenre.MovieId}', '{movieGenre.GenreId}')
  248.                        END
  249.                    ELSE
  250.                        BEGIN
  251.                        UPDATE dbo.MovieGenres
  252.                        SET MovieId = '{movieGenre.MovieId}', GenreId = '{movieGenre.GenreId}'
  253.                    END
  254.                    ");
  255.             }
  256.  
  257.             context.Database.ExecuteSqlCommand(sql.ToString());
  258.         }
  259.  
  260.         public void LoadMovieActors()
  261.         {
  262.             var movieActorsAsString = File.ReadAllText(@"..\..\..\..\OnlineMoviesCatalog.Data\JsonRaw\moviesActors.json");
  263.  
  264.             var movieActors = JsonConvert.DeserializeObject<MovieActors[]>(movieActorsAsString);
  265.  
  266.             var sql = new StringBuilder();
  267.  
  268.             foreach (var movActor in movieActors)
  269.             {
  270.                 sql.AppendLine($@"
  271.                    
  272.                    IF NOT EXISTS (SELECT *
  273.                                    FROM dbo.MovieActors ma)
  274.                        BEGIN
  275.                        INSERT INTO dbo.MovieActors
  276.                             (MovieId, ActorId)
  277.                        VALUES ('{movActor.MovieId}', '{movActor.ActorId}')
  278.                        END
  279.                    ELSE
  280.                        BEGIN
  281.                        UPDATE dbo.MovieActors
  282.                        SET MovieId = '{movActor.MovieId}', ActorId = '{movActor.ActorId}'
  283.                    END
  284.                    ");
  285.             }
  286.  
  287.             context.Database.ExecuteSqlCommand(sql.ToString());
  288.         }
  289.     }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement