Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ProductShop
- {
- using System.IO;
- using Newtonsoft.Json;
- using ProductShop.Data;
- using ProductShop.Models;
- using System.Collections.Generic;
- using System.Linq;
- using System;
- using ProductShop.Dtos.Export;
- using Newtonsoft.Json.Serialization;
- public class StartUp
- {
- private const string ImportMessage = "Successfully imported {0}";
- public static void Main(string[] args)
- {
- var context = new ProductShopContext();
- // 04. Import Categories and Products
- var categoriesProductsJason = File.ReadAllText(@"C:\Users\Nik\Desktop\Product Shop\ProductShop\Datasets\categories-products.json");
- Console.WriteLine(ImportCategoryProducts(context, categoriesProductsJason));
- }
- // 04. Import Categories and Products
- public static string ImportCategoryProducts(ProductShopContext context, string inputJson)
- {
- //var validCategoruIds = context
- // .Categories
- // .Select(c => c.Id)
- // .ToHashSet();
- var validCategoryIds = new HashSet<int>(
- context
- .Categories
- .Select(c => c.Id));
- var validProductIds = new HashSet<int>(
- context
- .Products
- .Select(p => p.Id));
- var categoriesProducts = JsonConvert.DeserializeObject<CategoryProduct[]>(inputJson);
- var validEntities = new List<CategoryProduct>();
- foreach (var categoryProduct in categoriesProducts)
- {
- bool isValid = validCategoryIds.Contains(categoryProduct.CategoryId) &&
- validProductIds.Contains(categoryProduct.ProductId);
- if (isValid)
- {
- validEntities.Add(categoryProduct);
- }
- }
- context.CategoryProducts.AddRange(validEntities);
- context.SaveChanges();
- return string.Format(ImportMessage, validEntities.Count);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement