Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement