static void Main(string[] args) { Console.WriteLine("==Model translations start=="); ResourceCategory[] outputCategories = null; using (var context = new dco_resourcesContext()) { Console.WriteLine("Translating Categories"); outputCategories = ModelTranslator.GetAllResourceCategory(context); foreach (var item in outputCategories) { Console.WriteLine($"{item.ID} | {item.CategoryName} | {item.ParentCategoryID} | {item.Depth}"); } } Console.ReadLine(); Resource[] outputResources = null; using (var context = new dco_resourcesContext()) { Console.WriteLine("Translating listings"); outputResources = ModelTranslator.GetAllResources(context); foreach (var outputResource in outputResources.Take(10)) { Console.WriteLine(JsonConvert.SerializeObject(outputResource, Formatting.Indented, new StringEnumConverter())); } } Console.ReadLine(); WriteToNewDatabase("new_dco_resources", outputCategories, outputResources); }
public static Resource[] GetAllResources(dco_resourcesContext context) { var allListings = context.Listings.AsNoTracking().ToList(); var allCategoryListingBindings = context.CategoryListingBindings.AsNoTracking().ToList(); var result = (from listing in allListings join binding in allCategoryListingBindings on listing.Id equals binding.ListId select new Resource { ID = listing.Id, CategoryID = binding.CategoryId, Link = listing.Website, Description = listing.Description, Subject = listing.Name, CreateDate = listing.CreatedAt, BadlinkVotes = 0, Contact = new ContactInfo { IsContactInfoPublic = true, FirstName = listing.ContactFirstName, LastName = listing.ContactLastName, Title = listing.ContactTitle, Email = listing.Email, PhoneNumber = listing.Phone, Organization = listing.Department, Address = new Address() { Line1 = listing.Address1, Line2 = listing.Address2, City = listing.City, Country = "USA", State = listing.State, Zipcode = listing.Zipcode } } }).GroupBy(r => r.ID).Select(g => g.First()); return(result.ToArray()); }
public static ResourceCategory[] GetAllResourceCategory(dco_resourcesContext context) { var oldCategories = context.Categories.AsNoTracking().ToList(); var newCategories = from oldCategory in oldCategories select new ResourceCategory { CategoryName = oldCategory.Name, ID = oldCategory.Id, ParentCategoryID = oldCategory.ParentId }; var resourceCategoryArray = newCategories as ResourceCategory[] ?? newCategories.ToArray(); var rootCategories = from category in resourceCategoryArray where category.ParentCategoryID == null select category; foreach (var rootCategory in rootCategories) { BFSTranversal(rootCategory, 0, resourceCategoryArray); } return(resourceCategoryArray); }