Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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);
        }