Advertisement
Niicksana

JavaScript Object Notation - JSON

Apr 2nd, 2019
438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.14 KB | None | 0 0
  1. namespace ProductShop
  2. {
  3.     using System.IO;
  4.     using Newtonsoft.Json;
  5.     using ProductShop.Data;
  6.     using ProductShop.Models;
  7.     using System.Collections.Generic;
  8.     using System.Linq;
  9.     using System;
  10.     using ProductShop.Dtos.Export;
  11.     using Newtonsoft.Json.Serialization;
  12.  
  13.     public class StartUp
  14.     {
  15.         private const string ImportMessage = "Successfully imported {0}";
  16.  
  17.         public static void Main(string[] args)
  18.         {
  19.             var context = new ProductShopContext();
  20.  
  21.             // 04. Import Categories and Products
  22.             var categoriesProductsJason = File.ReadAllText(@"C:\Users\Nik\Desktop\Product Shop\ProductShop\Datasets\categories-products.json");
  23.             Console.WriteLine(ImportCategoryProducts(context, categoriesProductsJason));
  24.         }
  25.  
  26.         // 04. Import Categories and Products
  27.         public static string ImportCategoryProducts(ProductShopContext context, string inputJson)
  28.         {
  29.             //var validCategoruIds = context
  30.             //    .Categories
  31.             //    .Select(c => c.Id)
  32.             //    .ToHashSet();
  33.  
  34.             var validCategoryIds = new HashSet<int>(
  35.                 context
  36.                     .Categories
  37.                     .Select(c => c.Id));
  38.  
  39.             var validProductIds = new HashSet<int>(
  40.                 context
  41.                     .Products
  42.                     .Select(p => p.Id));
  43.  
  44.             var categoriesProducts = JsonConvert.DeserializeObject<CategoryProduct[]>(inputJson);
  45.             var validEntities = new List<CategoryProduct>();
  46.  
  47.             foreach (var categoryProduct in categoriesProducts)
  48.             {
  49.                 bool isValid = validCategoryIds.Contains(categoryProduct.CategoryId) &&
  50.                                validProductIds.Contains(categoryProduct.ProductId);
  51.  
  52.                 if (isValid)
  53.                 {
  54.                     validEntities.Add(categoryProduct);
  55.                 }
  56.             }
  57.  
  58.             context.CategoryProducts.AddRange(validEntities);
  59.             context.SaveChanges();
  60.  
  61.             return string.Format(ImportMessage, validEntities.Count);
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement