Ejemplo n.º 1
0
        private static void CreateLensIfNotExists(
            PhotographyEntities context,
            IEnumerable <XElement> xLenses,
            Manufacturer manufacturer)
        {
            foreach (var xLense in xLenses)
            {
                // Find the lens by model and type (if exists)
                var lenseModel = xLense.Attribute("model").Value;
                var lenseType  = xLense.Attribute("type").Value;
                var lensePrice = xLense.Attribute("price");

                var lens = context.Lenses.FirstOrDefault(l => l.Model == lenseModel);
                if (lens != null)
                {
                    Console.WriteLine($"Existing lens: {lenseModel}");
                }
                else
                {
                    lens = new Lens
                    {
                        Model = lenseModel,
                        Type  = lenseType,
                        Price = lensePrice != null?decimal.Parse(lensePrice.Value) : default(decimal?),
                                    ManufacturerId = manufacturer.Id
                    };

                    context.Lenses.Add(lens);
                    context.SaveChanges();
                    Console.WriteLine("Created lens: {0}", lenseModel);
                }
            }
        }
Ejemplo n.º 2
0
        private static Manufacturer CreateManufacturerIfNotExist(PhotographyEntities context, XElement xManufacturer)
        {
            Manufacturer manufacturer             = null;
            var          xElementManufacturerName = xManufacturer.Element("manufacturer-name");

            if (xElementManufacturerName != null)
            {
                string manufacturerName = xElementManufacturerName.Value;
                manufacturer = context.Manufacturers.FirstOrDefault(m => m.Name == manufacturerName);
                if (manufacturer != null)
                {
                    Console.WriteLine($"Existing manufacturer: {manufacturerName}");
                }
                else
                {
                    // Create a new manufacturer in the database
                    manufacturer = new Manufacturer()
                    {
                        Name = manufacturerName
                    };
                    context.Manufacturers.Add(manufacturer);
                    context.SaveChanges();
                    Console.WriteLine($"Created manufacturer: {manufacturerName}");
                }
            }
            return(manufacturer);
        }
        public static void Main()
        {
            var context = new PhotographyEntities();

            var xDocument = XDocument.Load(@"..\..\manufacturers-and-lenses.xml");

            var manufacturersAndLenses = xDocument.XPathSelectElements("/manufacturers-and-lenses/manufacturer");

            int count = 1;
            foreach (var manufacturerNode in manufacturersAndLenses)
            {
                Console.WriteLine("Processing manufacturer #{0} ...", count);
                var manufactorer = ImportManufactorer(manufacturerNode, context);

                if (manufacturerNode.Element("lenses") != null)
                {
                    ImportLenses(manufacturerNode, context, manufactorer);
                }

                context.SaveChanges();

                count++;
            }
        }
Ejemplo n.º 4
0
        private static void ProcessRequest(Request request)
        {
            var context            = new PhotographyEntities();
            var manufacturersQuery = context.Manufacturers.AsQueryable();

            var manufacturer = context.Manufacturers.FirstOrDefault(m => m.Name == request.ManufacturerName);

            var cameraIds = context.Cameras
                            .Where(c => c.ManufacturerId == manufacturer.Id)
                            .Select(c => c.Id)
                            .ToList();

            var lensIds = context.Lenses
                          .Where(l => l.ManufacturerId == manufacturer.Id)
                          .Select(l => l.Id)
                          .ToList();

            var random = new Random();

            for (int i = 0; i < request.GenerateCount; i++)
            {
                var equipment = new Equipment();
                equipment.CameraId = cameraIds[random.Next(cameraIds.Count)];
                equipment.LensId   = lensIds[random.Next(lensIds.Count)];

                context.Equipments.Add(equipment);
                context.SaveChanges();

                var equipmentDb = context.Equipments
                                  .Include(x => x.Camera)
                                  .Include(x => x.Lens)
                                  .FirstOrDefault(x => x.Id == equipment.Id);

                Console.WriteLine($"Equipment added: {manufacturer.Name} (Camera: {equipmentDb.Camera.Model} - Lens: {equipmentDb.Lens.Model})");
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            var defaultGenerateCount = 10;
            var context             = new PhotographyEntities();
            var defaultManufacturer = context.Manufacturers.FirstOrDefault(m => m.Name == "Nikon");

            var xmlDoc = XDocument.Load("../../generate-equipments.xml");
            //var photographyElements = xmlDoc.Root.Elements();
            var generateElements = xmlDoc.XPathSelectElements("/generate-random-equipments/generate");

            var camerasIds = context.Cameras.Select(c => new { id = c.Id }).ToList();
            var lensesIds  = context.Lenses.Select(l => new { id = l.Id }).ToList();

            var count = 1;

            foreach (var element in generateElements)
            {
                Console.WriteLine("Processing request #{0} ...", count++);


                var currentManufacturer = defaultManufacturer;
                if (!string.IsNullOrEmpty(element.Value))
                {
                    currentManufacturer = context.Manufacturers.FirstOrDefault(m => m.Name == element.Value);
                }

                var currentGenerateCount = defaultGenerateCount;
                if (element.HasAttributes)
                {
                    currentGenerateCount = int.Parse(element.Attribute("generate-count").Value);
                }

                for (int i = 0; i < currentGenerateCount; i++)
                {
                    var random         = new Random();
                    var randomCameraId = camerasIds[random.Next(1, camerasIds.Count)];
                    var randomLensId   = lensesIds[random.Next(1, lensesIds.Count)];

                    var camera = context.Cameras.FirstOrDefault(c => c.Id == randomCameraId.id);
                    var lens   = context.Lenses.FirstOrDefault(c => c.Id == randomLensId.id);

                    Console.WriteLine(
                        "Equipment added: {0} (Camera: {1} - Lens: {2})",
                        currentManufacturer.Name,
                        camera.Model,
                        lens.Model);

                    if (!currentManufacturer.Cameras.Contains(camera))
                    {
                        currentManufacturer.Cameras.Add(camera);
                    }

                    if (!currentManufacturer.Lenses.Contains(lens))
                    {
                        currentManufacturer.Lenses.Add(lens);
                    }
                }

                context.SaveChanges();
                Console.WriteLine();
            }

            Console.ReadLine();
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            var context = new PhotographyEntities();
            var xmlDoc  = XDocument.Load("../../manufacturers-and-lenses.xml");
            //var photographyElements = xmlDoc.Root.Elements();
            var photographyElements = xmlDoc.XPathSelectElements("/manufacturers-and-lenses/manufacturer");

            var count = 1;

            foreach (var photographyElement in photographyElements)
            {
                Console.WriteLine("Processing manufacturer #{0} ...", count++);

                var manufacturerName = photographyElement.Element("manufacturer-name").Value;
                var manufacturer     = context.Manufacturers.FirstOrDefault(m => m.Name == manufacturerName);
                if (manufacturer == null)
                {
                    manufacturer      = new Manufacturer();
                    manufacturer.Name = manufacturerName;
                    context.Manufacturers.Add(manufacturer);
                    Console.WriteLine("Created manufacturer: {0}", manufacturerName);
                }
                else
                {
                    Console.WriteLine("Existing manufacturer: {0}", manufacturerName);
                }

                var lenses = photographyElement.XPathSelectElements("lenses/lens");
                foreach (var lens in lenses)
                {
                    var lensModel = lens.Attribute("model").Value;

                    var lensEntity = context.Lenses.FirstOrDefault(l => l.Model == lensModel);
                    if (lensEntity == null)
                    {
                        lensEntity       = new Lens();
                        lensEntity.Model = lensModel;

                        var lensType = lens.Attribute("type").Value;
                        lensEntity.Type = lensType;

                        if (lens.Attribute("price") != null)
                        {
                            var lensPrice = lens.Attribute("price").Value;
                            lensEntity.Price = decimal.Parse(lensPrice);
                        }

                        context.Lenses.Add(lensEntity);
                        Console.WriteLine("Created lens {0}", lensModel);
                    }
                    else
                    {
                        Console.WriteLine("Existing lens: {0}", lensModel);
                    }

                    manufacturer.Lenses.Add(lensEntity);
                }

                context.SaveChanges();
                Console.WriteLine();
            }
        }