public static void TransferXMLToSQLServer(ComputersFactoryContext context, XmlNode rootNode)
        {
            foreach (XmlNode node in rootNode.ChildNodes)
            {
                context.Manufacturers.Add(new Manufacturer()
                {
                    Name = node["name"].InnerText
                });
            }

            context.SaveChanges();
        }
Example #2
0
        public static void TransferItems(Dictionary <string, List <string> > data, Type dataType)
        {
            using (var factoryContext = new ComputersFactoryContext())
            {
                var itemSet = factoryContext.Set(dataType);
                int count   = data[data.Keys.FirstOrDefault()].Count;
                for (int i = 0; i < count; i++)
                {
                    var item = Activator.CreateInstance(dataType);
                    foreach (var key in data.Keys)
                    {
                        var  itemProperty = item.GetType().GetProperty(key);
                        Type propertyType = itemProperty.PropertyType;
                        var  value        = Convert.ChangeType(data[key][i], propertyType);
                        itemProperty.SetValue(item, value);
                    }

                    itemSet.Add(item);
                }

                factoryContext.SaveChanges();
            }
        }
Example #3
0
        public async Task TransferToMSSQL()
        {
            var factoryContext = new ComputersFactoryContext();

            var manufacturers = (await this.GetData <Manufacturer>("Manufacturers")).ToList();
            var processors    = (await this.GetData <Processor>("Processors")).ToList();
            var memorycards   = (await this.GetData <Memorycard>("Memorycards")).ToList();
            var videocards    = (await this.GetData <Videocard>("Videocards")).ToList();
            var computerTypes = (await this.GetData <ComputerType>("ComputerTypes")).ToList();
            var computers     = (await this.GetData <Computer>("Computers")).ToList();

            try
            {
                using (factoryContext)
                {
                    foreach (var manufacturer in manufacturers)
                    {
                        factoryContext.Manufacturers.Add(manufacturer);
                    }

                    foreach (var processor in processors)
                    {
                        factoryContext.Processors.Add(processor);
                    }

                    foreach (var memorycard in memorycards)
                    {
                        factoryContext.Memorycards.Add(memorycard);
                    }

                    foreach (var videocard in videocards)
                    {
                        factoryContext.Videocards.Add(videocard);
                    }

                    foreach (var type in computerTypes)
                    {
                        factoryContext.ComputerTypes.Add(type);
                    }


                    factoryContext.SaveChanges();

                    foreach (var computer in computers)
                    {
                        factoryContext.Computers.Add(computer);
                    }

                    factoryContext.SaveChanges();
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }