SHARE
TWEET

Untitled

a guest Dec 6th, 2019 103 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public static string ImportGames(VaporStoreDbContext context, string jsonString)
  2.         {
  3.             var sb = new StringBuilder();
  4.             var games = new List<Game>();
  5.  
  6.             var gamesDto = JsonConvert.DeserializeObject<ImportGameDto[]>(jsonString);
  7.  
  8.             foreach (var gameDto in gamesDto)
  9.             {
  10.                 if (!isValid(gameDto) || gameDto.Tags.Count == 0)
  11.                 {
  12.                     sb.AppendLine("Invalid Data");
  13.                     continue;
  14.                 }
  15.  
  16.                 var game = new Game
  17.                 {
  18.                     Name = gameDto.Name,
  19.                     Price = gameDto.Price,
  20.                     ReleaseDate = DateTime.ParseExact(gameDto.ReleaseDate, "yyyy-MM-dd", CultureInfo.InvariantCulture)
  21.                 };
  22.  
  23.                 var developer = GetDeveloper(context, gameDto.Developer);
  24.                 var genre = GetGenre(context, gameDto.Genre);
  25.  
  26.                 game.Developer = developer;
  27.                 game.Genre = genre;
  28.  
  29.                 foreach (var currentTag in gameDto.Tags)
  30.                 {
  31.                     var tag = GetTag(context, currentTag);
  32.  
  33.                     game.GameTags.Add(new GameTag
  34.                     {
  35.                         Game = game,
  36.                         Tag = tag
  37.                     });
  38.                 }
  39.  
  40.                 games.Add(game);
  41.                 sb.AppendLine($"Added {game.Name} ({game.Genre.Name}) with {game.GameTags.Count} tags");
  42.             }
  43.  
  44.             context.Games.AddRange(games);
  45.             context.SaveChanges();
  46.  
  47.             return sb.ToString().TrimEnd();
  48.         }
  49.  
  50.  private static Developer GetDeveloper(VaporStoreDbContext context, string gameDtoDeveloper)
  51.         {
  52.             var developer = context.Developers.FirstOrDefault(x => x.Name == gameDtoDeveloper);
  53.  
  54.             if (developer == null)
  55.             {
  56.                 developer = new Developer
  57.                 {
  58.                     Name = gameDtoDeveloper
  59.                 };
  60.  
  61.                 context.Developers.Add(developer);
  62.                 context.SaveChanges();
  63.             }
  64.  
  65.             return developer;
  66.         }
  67.  
  68.         private static Genre GetGenre(VaporStoreDbContext context, string gameDtoGenre)
  69.         {
  70.             var genre = context.Genres.FirstOrDefault(x => x.Name == gameDtoGenre);
  71.  
  72.             if (genre == null)
  73.             {
  74.                 genre = new Genre
  75.                 {
  76.                     Name = gameDtoGenre
  77.                 };
  78.  
  79.                 context.Genres.Add(genre);
  80.                 context.SaveChanges();
  81.             }
  82.  
  83.             return genre;
  84.         }
  85.  
  86.         private static Tag GetTag(VaporStoreDbContext context, string gameDtoTag)
  87.         {
  88.             var tag = context.Tags.FirstOrDefault(x => x.Name == gameDtoTag);
  89.  
  90.             if (tag == null)
  91.             {
  92.                 tag = new Tag
  93.                 {
  94.                     Name = gameDtoTag
  95.                 };
  96.  
  97.                 context.Tags.Add(tag);
  98.                 context.SaveChanges();
  99.             }
  100.  
  101.             return tag;
  102.         }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top