using Netina.Common.Extensions; using Netina.Domain.CommandQueries.Commands; using Netina.Domain.Dtos.RequestDtos.SeedDtos; using Netina.Domain.Dtos.SmallDtos; using Netina.WordPressDBConverter.Models; using Netina.WordPressDBConverter.Services.RestServices; using Newtonsoft.Json; var termReader = new StreamReader("F:\\wp_terms.json"); var termJson = termReader.ReadToEnd(); Console.WriteLine("Terms File Read Success !"); var terms = JsonConvert.DeserializeObject>(termJson); if (terms == null) throw new Exception("Terms is null"); var termTaxonomyReader = new StreamReader("F:\\wp_term_taxonomy.json"); var termTaxonomyJson = termTaxonomyReader.ReadToEnd(); Console.WriteLine("Term Taxonomy File Read Success !"); var termTaxonomies = JsonConvert.DeserializeObject>(termTaxonomyJson); if (termTaxonomies == null) throw new Exception("Term Taxonomies is null"); var termRelationshipsReader = new StreamReader("F:\\wp_term_relationships.json"); var termRelationshipsJson = termRelationshipsReader.ReadToEnd(); Console.WriteLine("Term Relationships File Read Success !"); var termRelationships = JsonConvert.DeserializeObject>(termRelationshipsJson); if (termRelationships == null) throw new Exception("Term Relationships is null"); var postReader = new StreamReader("F:\\wp_posts.json"); var json = postReader.ReadToEnd(); Console.WriteLine("Post File Read Success !"); var posts = JsonConvert.DeserializeObject>(json); if (posts == null) throw new Exception("Posts is null"); //CREATE CATEGORY PART List categories = new List(); List tags = new List(); foreach (var taxonomy in termTaxonomies) { if (taxonomy.taxonomy == "category") { var term = terms.FirstOrDefault(t => t.term_id == taxonomy.term_id); if (term != null) categories.Add(new SeedBlogCategoryRequestDto { BaseCategoryId = term.term_id.ToInt(), Description = taxonomy.description, Name = term.name }); } if (taxonomy.taxonomy == "post_tag") { var term = terms.FirstOrDefault(t => t.term_id == taxonomy.term_id); if (term != null) tags.Add(new WordPressPostTagDto { TermId = term.term_id.ToInt(), Tag = term.name }); } } var categoriesRest = await RestWrapper.Instance.SeedRestApi.SeedBlogCategoriesAsync(categories, "kKAYskyG8xPxKnJrHkuYxub4Ao2bnz7AOmNtwDT0RaqzaG7ZvbvaP29tCrC8wJ823RczJFXOIQT2bDOec4F38A=="); Console.WriteLine($"{categories.Count} ProductCategory Added Success !"); //CREATE BLOG PART List blogs = new List(); var random = new Random(1532); foreach (var wordPressPostDto in posts.Where(p => p.post_type == "post")) { SeedBlogRequestDto blog; Guid categoryId = default; string postTags = string.Empty; var postTermRelations = termRelationships.Where(p => p.object_id == wordPressPostDto.ID); foreach (var postTermRelation in postTermRelations) { var taxanomy = termTaxonomies.FirstOrDefault(f => f.term_taxonomy_id == postTermRelation.term_taxonomy_id); if (taxanomy != null) { if (taxanomy.taxonomy == "category") categoryId = categoriesRest.FirstOrDefault(c => c.Key == taxanomy.term_id.ToInt()).Value; if (taxanomy.taxonomy == "post_tag") postTags += tags.FirstOrDefault(t => t.TermId == taxanomy.term_id.ToInt())?.Tag + " , "; } } if (categoryId == default) categoryId = categoriesRest.FirstOrDefault(c => c.Key == 0).Value; blog = new SeedBlogRequestDto { CategoryId = categoryId, Content = wordPressPostDto.post_content, IsSuggested = false, ReadingTime = random.Next(1, 15), Title = wordPressPostDto.post_title, }; blogs.Add(blog); } for (int i = 0; i < blogs.Count / 50; i++) { await RestWrapper.Instance.SeedRestApi.SeedBlogsAsync(blogs.Skip(i * 50).Take(50).ToList(), "kKAYskyG8xPxKnJrHkuYxub4Ao2bnz7AOmNtwDT0RaqzaG7ZvbvaP29tCrC8wJ823RczJFXOIQT2bDOec4F38A=="); Console.WriteLine($"{i * 50} / {blogs.Count} Product Added Success !"); } Console.ReadKey(); //try //{ // var termReader = new StreamReader("F:\\wp_terms.json"); // var termJson = termReader.ReadToEnd(); // Console.WriteLine("Terms File Read Success !"); // var terms = JsonConvert.DeserializeObject>(termJson); // if (terms == null) // throw new Exception("Terms is null"); // var termTaxonomyReader = new StreamReader("F:\\wp_term_taxonomy.json"); // var termTaxonomyJson = termTaxonomyReader.ReadToEnd(); // Console.WriteLine("Term Taxonomy File Read Success !"); // var termTaxonomies = JsonConvert.DeserializeObject>(termTaxonomyJson); // if (termTaxonomies == null) // throw new Exception("Term Taxonomies is null"); // var termRelationshipsReader = new StreamReader("F:\\wp_term_relationships.json"); // var termRelationshipsJson = termRelationshipsReader.ReadToEnd(); // Console.WriteLine("Term Relationships File Read Success !"); // var termRelationships = JsonConvert.DeserializeObject>(termRelationshipsJson); // if (termRelationships == null) // throw new Exception("Term Relationships is null"); // var postReader = new StreamReader("F:\\wp_posts.json"); // var json = postReader.ReadToEnd(); // Console.WriteLine("Post File Read Success !"); // var posts = JsonConvert.DeserializeObject>(json); // if (posts == null) // throw new Exception("Posts is null"); // var metaReader = new StreamReader("F:\\wp_postmeta.json"); // var metaJson = metaReader.ReadToEnd(); // Console.WriteLine("Post Metas File Read Success !"); // var postMetas = JsonConvert.DeserializeObject>(metaJson); // if (postMetas == null) // throw new Exception("Post Metas is null"); ////CREATE CATEGORY PART // List categories = new List(); // foreach (var taxonomy in termTaxonomies) // { // if (taxonomy.taxonomy == "product_cat") // { // var term = terms.FirstOrDefault(t => t.term_id == taxonomy.term_id); // if (term != null) // categories.Add(new SeedCategoryRequestDto // { BaseCategoryId = term.term_id.ToInt(), Description = taxonomy.description, Name = term.name }); // } // } // var categoriesRest = await RestWrapper.Instance.SeedRestApi.SeedCategoriesAsync(categories,"kKAYskyG8xPxKnJrHkuYxub4Ao2bnz7AOmNtwDT0RaqzaG7ZvbvaP29tCrC8wJ823RczJFXOIQT2bDOec4F38A=="); // Console.WriteLine($"{categories.Count} ProductCategory Added Success !"); // //CREATE BRAND PART // List brands = new List(); // foreach (var taxonomy in termTaxonomies) // { // if (taxonomy.taxonomy == "pa_brand") // { // var term = terms.FirstOrDefault(t => t.term_id == taxonomy.term_id); // if (term != null) // brands.Add(new SeedBrandRequestDto{BaseBrandId = term.term_id.ToInt(),Description = taxonomy.description,Name = term.name}); // } // } // var brandsRest = await RestWrapper.Instance.SeedRestApi.SeedBrandsAsync(brands, "kKAYskyG8xPxKnJrHkuYxub4Ao2bnz7AOmNtwDT0RaqzaG7ZvbvaP29tCrC8wJ823RczJFXOIQT2bDOec4F38A=="); // Console.WriteLine($"{brands.Count} Brand Added Success !"); // //CREATE PRODUCT PART // List products = new List(); // foreach (var wordPressPostDto in posts.Where(p => p.post_type == "product")) // { // CreateProductCommand product; // Guid brandId = default; // Guid categoryId = default; // var postTermRelations = termRelationships.Where(p => p.object_id == wordPressPostDto.ID); // foreach (var postTermRelation in postTermRelations) // { // var taxanomy = termTaxonomies.FirstOrDefault(f => f.term_taxonomy_id == postTermRelation.term_taxonomy_id); // if (taxanomy != null) // { // if (taxanomy.taxonomy == "pa_brand") // brandId = brandsRest.FirstOrDefault(f => f.Key == taxanomy.term_id.ToInt()).Value; // if (taxanomy.taxonomy == "product_cat") // categoryId = categoriesRest.FirstOrDefault(c => c.Key == taxanomy.term_id.ToInt()).Value; // } // } // if (brandId == default) // brandId = brandsRest.FirstOrDefault(f => f.Key == 0).Value; // if (categoryId == default) // categoryId = categoriesRest.FirstOrDefault(c => c.Key == 0).Value; // var price = postMetas.FirstOrDefault(pm => pm.post_id == wordPressPostDto.ID && pm.meta_key == "_price"); // if (price != null && double.TryParse(price.meta_value, out double dPrice)) // product = new CreateProductCommand(wordPressPostDto.post_title, string.Empty, wordPressPostDto.post_content, // wordPressPostDto.post_excerpt, string.Empty, string.Empty, true, dPrice, 0,10, // false,10,false,brandId, categoryId, // new DiscountSDto(),new List(), new List()); // else // product = new CreateProductCommand(wordPressPostDto.post_title, string.Empty, wordPressPostDto.post_content, // wordPressPostDto.post_excerpt, string.Empty, string.Empty, true, 0, 0,10,false,10, // false,brandId,categoryId, // new DiscountSDto(),new List(), new List()); // products.Add(product); // } // for (int i = 0; i < products.Count / 50 ; i++) // { // await RestWrapper.Instance.SeedRestApi.SeedProductsAsync(products.Skip(i * 50).Take(50).ToList(), // "kKAYskyG8xPxKnJrHkuYxub4Ao2bnz7AOmNtwDT0RaqzaG7ZvbvaP29tCrC8wJ823RczJFXOIQT2bDOec4F38A=="); // Console.WriteLine($"{i*50} / {products.Count} Product Added Success !"); // } //} //catch (Exception e) //{ // Console.WriteLine(e); // throw; //}