Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static string ImportGames(VaporStoreDbContext context, string jsonString)
- {
- var sb = new StringBuilder();
- var games = new List<Game>();
- var gamesDto = JsonConvert.DeserializeObject<ImportGameDto[]>(jsonString);
- foreach (var gameDto in gamesDto)
- {
- if (!isValid(gameDto) || gameDto.Tags.Count == 0)
- {
- sb.AppendLine("Invalid Data");
- continue;
- }
- var game = new Game
- {
- Name = gameDto.Name,
- Price = gameDto.Price,
- ReleaseDate = DateTime.ParseExact(gameDto.ReleaseDate, "yyyy-MM-dd", CultureInfo.InvariantCulture)
- };
- var developer = GetDeveloper(context, gameDto.Developer);
- var genre = GetGenre(context, gameDto.Genre);
- game.Developer = developer;
- game.Genre = genre;
- foreach (var currentTag in gameDto.Tags)
- {
- var tag = GetTag(context, currentTag);
- game.GameTags.Add(new GameTag
- {
- Game = game,
- Tag = tag
- });
- }
- games.Add(game);
- sb.AppendLine($"Added {game.Name} ({game.Genre.Name}) with {game.GameTags.Count} tags");
- }
- context.Games.AddRange(games);
- context.SaveChanges();
- return sb.ToString().TrimEnd();
- }
- private static Developer GetDeveloper(VaporStoreDbContext context, string gameDtoDeveloper)
- {
- var developer = context.Developers.FirstOrDefault(x => x.Name == gameDtoDeveloper);
- if (developer == null)
- {
- developer = new Developer
- {
- Name = gameDtoDeveloper
- };
- context.Developers.Add(developer);
- context.SaveChanges();
- }
- return developer;
- }
- private static Genre GetGenre(VaporStoreDbContext context, string gameDtoGenre)
- {
- var genre = context.Genres.FirstOrDefault(x => x.Name == gameDtoGenre);
- if (genre == null)
- {
- genre = new Genre
- {
- Name = gameDtoGenre
- };
- context.Genres.Add(genre);
- context.SaveChanges();
- }
- return genre;
- }
- private static Tag GetTag(VaporStoreDbContext context, string gameDtoTag)
- {
- var tag = context.Tags.FirstOrDefault(x => x.Name == gameDtoTag);
- if (tag == null)
- {
- tag = new Tag
- {
- Name = gameDtoTag
- };
- context.Tags.Add(tag);
- context.SaveChanges();
- }
- return tag;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement