private static Manufacturer CreateManufacturerIfNotExists(PhotographySystemEntities context, XElement xManufacturer)
        {
            Manufacturer manufacturer = null;
            var xManifName = xManufacturer.Element("manufacturer-name");

            if (xManifName != null)
            {
                var manifacName = xManifName.Value;

                manufacturer = context.Manufacturers.FirstOrDefault(m => m.Name == manifacName);
                if (manufacturer != null)
                {
                    Console.WriteLine("Existing manufacturer: {0}", manifacName);
                }
                else
                {
                    manufacturer = new Manufacturer
                    {
                        Name = manifacName
                    };

                    context.Manufacturers.Add(manufacturer);
                    context.SaveChanges();
                    Console.WriteLine("Created manufacturer: {0}", manifacName);
                }
            }
            return manufacturer;
        }
Example #2
0
        static void Main()
        {
            var context = new PhotographySystemEntities();
            var albums = context.Albums
                .Where(a => a.Photographs.Count >= 1)
                .OrderBy(a => a.Photographs.Count)
                .ThenBy(a => a.Id)
                .Select(a => new
                {
                    a.Id,
                    a.Name,
                    Owner = a.User.FullName,
                    PhotoCount = a.Photographs.Count
                });

            var json = JsonConvert.SerializeObject(
                albums,
                Formatting.Indented,
                new JsonSerializerSettings
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                });

            File.WriteAllText("../../albums.json", json);
        }
        private static void CreateLensesIfNotExist(PhotographySystemEntities context, IEnumerable<XElement> xLenses, Manufacturer manufacturer)
        {
            foreach (var xLense in xLenses)
            {
                var lensModel = xLense.Attribute("model").Value;
                var lensType = xLense.Attribute("type").Value;
                var lensPrice = xLense.Attribute("price");

                var lens = context.Lenses.FirstOrDefault(l => l.Model == lensModel);

                if (lens != null)
                {
                    Console.WriteLine("Existing lens: {0}", lensModel);
                }

                else
                {
                    lens = new Lens
                    {
                        Model = lensModel,
                        Type = lensType,
                        Price = lensPrice != null ? decimal.Parse(lensPrice.Value) : default(decimal?),
                        ManufacturerId = manufacturer.Id
                    };

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

            }
        }
        static void Main()
        {
            var context = new PhotographySystemEntities();
            var photographs = context.Photographs
                .Select(p => new
                {
                    p.Title,
                    p.Link
                });

            foreach (var photograph in photographs)
            {
                Console.WriteLine("{0} -- {1}", photograph.Title, photograph.Link);
            }
        }
Example #5
0
        static void Main()
        {
            var context = new PhotographySystemEntities();

            var cameras = context.Cameras
                          .OrderBy(c => c.Manufacturer.Name)
                          .ThenBy(c => c.Model)
                          .Select(c => new
            {
                c.Model,
                Manufacturer = c.Manufacturer.Name
            }).ToList();

            foreach (var camera in cameras)
            {
                Console.WriteLine(camera.Manufacturer + " " + camera.Model);
            }
        }
        static void Main()
        {
            var context = new PhotographySystemEntities();

            var cameras = context.Cameras
                .OrderBy(c => c.Manufacturer.Name)
                .ThenBy(c => c.Model)
                .Select(c => new
                {
                    c.Model,
                    Manufacturer = c.Manufacturer.Name
                }).ToList();

            foreach (var camera in cameras)
            {
                Console.WriteLine(camera.Manufacturer + " " + camera.Model);
            }
        }
        static void Main()
        {
            var context = new PhotographySystemEntities();
            XDocument xmlDoc = XDocument.Load("../../manufacturers-and-lenses.xml");

            var xManufacturers = xmlDoc.XPathSelectElements("/manufacturers-and-lenses/manufacturer");
            int manufacturerNumber = 1;

            foreach (var xManufacturer in xManufacturers)
            {
                Console.WriteLine("Processing manufacturer #{0} ...", manufacturerNumber++);
                Manufacturer manufacturer = CreateManufacturerIfNotExists(context, xManufacturer);

                var xLenses = xManufacturer.XPathSelectElements("lenses/lens");
                CreateLensesIfNotExist(context, xLenses, manufacturer);
                Console.WriteLine();
            }
        }
        static void Main()
        {
            var context = new PhotographySystemEntities();

            var manufacturers = context.Manufacturers
                .OrderBy(m => m.Name)
                .Select(m => new
                {
                    manufacturer = m.Name,
                    cameras = m.Cameras.OrderBy(c => c.Model).Select(c => new
                    {
                        model = c.Model,
                        price = c.Price
                    })
                }
                );

            var JSerializer = new JavaScriptSerializer();
            var manufacturersAndModels = JSerializer.Serialize(manufacturers);
            File.WriteAllText("../../manufactureres-and-cameras.json", manufacturersAndModels);
            Console.WriteLine("File manufacturers-and-cameras.json exported.");
        }
        static void Main()
        {
            var context = new PhotographySystemEntities();

            var photographsQ = context.Photographs
                .OrderBy(p => p.Title)
                .Select(p => new
                {
                    title = p.Title,
                    Category = p.Category.Name,
                    Link = p.Link,
                    Megapixels = p.Equipment.Camera.Megapixels,
                    CameraModel = p.Equipment.Camera.Manufacturer.Name + " " + p.Equipment.Camera.Model,
                    LensName = p.Equipment.Lens.Manufacturer.Name + " " + p.Equipment.Lens.Model,
                    LensPrice = p.Equipment.Lens.Price
                }).ToList();

            //foreach (var p in photographsQ)
            //{
            //    Console.WriteLine(p.title);
            //    Console.WriteLine(p.Category);
            //    Console.WriteLine(p.Link);
            //    Console.WriteLine(p.Megapixels);
            //    Console.WriteLine(p.CameraModel);
            //    Console.WriteLine(p.LensName);
            //    Console.WriteLine(p.LensPrice);
            //    Console.WriteLine();
            //}

            XElement xmlPhotographs = new XElement("photographs");

            foreach (var p in photographsQ)
            {
                XElement photograph = new XElement("photograph");

                photograph.Add(new XAttribute("title", p.title));
                var category = new XElement("category", p.Category);
                photograph.Add(category);

                photograph.Add(new XElement("link", p.Link));

                var eq = new XElement("equipment");

                eq.Add(new XElement("camera", new XAttribute("megapixels", p.Megapixels), p.CameraModel));

                if (p.LensPrice != null)
                {
                    var lens = new XElement("lens", new XAttribute("price", String.Format("{0:0.00}", p.LensPrice)), p.LensName);
                    eq.Add(lens);
                }
                else
                {
                    var lens = new XElement("lens", p.LensName);
                    eq.Add(lens);
                }

                photograph.Add(eq);

                xmlPhotographs.Add(photograph);
            }

            var xmlDoc = new XDocument(xmlPhotographs);
            xmlDoc.Save("../../photographs.xml");

            Console.WriteLine("Photographs exported to photographs.xml");
        }
        static void Main()
        {
            var context = new PhotographySystemEntities();
            var xmlDocument = XDocument.Load("../../manufacturers-and-goods.xml");
            var manufacturers =
                from manufacturer in xmlDocument.Descendants("manufacturer")
                select new
                {
                    Name = manufacturer.Attribute("name").Value,
                    Cameras =
                        from camera in xmlDocument.Descendants("camera")
                        select new
                        {
                            Model = 
                                camera.Attribute("model") == null ?
                                null : 
                                camera.Attribute("model").Value,
                            Year = 
                                camera.Attribute("year") == null ?
                                null :
                                camera.Attribute("year").Value,
                            Price = 
                                camera.Attribute("price") == null ?
                                (decimal?)null :
                                decimal.Parse(camera.Attribute("price").Value),
                            Megapixels =
                                camera.Attribute("megapixels") == null ?
                                (int?)null :
                                int.Parse(camera.Attribute("megapixels").Value)
                        },
                    Lenses =
                        from lens in xmlDocument.Descendants("lens")
                        select new
                        {
                            Model =
                                lens.Attribute("model") == null ?
                                null :
                                lens.Attribute("model").Value,
                            Type =
                                lens.Attribute("type") == null ?
                                null :
                                lens.Attribute("type").Value,
                            Price =
                                lens.Attribute("price") == null ?
                                (decimal?)null :
                                decimal.Parse(lens.Attribute("price").Value)
                        }
                };

            foreach (var manufacturer in manufacturers)
            {
                if (context.Manufacturers.Any(m => m.Name == manufacturer.Name))
                {
                    Console.WriteLine(
                        "Manufacturer {0} already exists.",
                        manufacturer.Name
                    );
                }
                else
                {
                    var newManufacturer = new Manufacturer()
                    {
                        Name = manufacturer.Name
                    };

                    context.Manufacturers.Add(newManufacturer);

                    context.SaveChanges();

                    Console.WriteLine(
                        "Successfully added manufacturer {0}.",
                        manufacturer.Name
                    );

                    using (var transaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            int cameraYear = 0;

                            foreach (var camera in manufacturer.Cameras)
                            {
                                if (camera.Year != null)
                                {
                                    cameraYear = int.Parse(camera.Year);
                                }

                                context.Cameras.Add(new Camera()
                                {
                                    Model = camera.Model,
                                    Year = cameraYear,
                                    Price = camera.Price,
                                    Megapixels = camera.Megapixels,
                                    ManufacturerId = newManufacturer.Id
                                });
                            }

                            foreach (var lens in manufacturer.Lenses)
                            {
                                context.Lenses.Add(new Lens()
                                {
                                    Model = lens.Model,
                                    Type = lens.Type,
                                    Price = lens.Price,
                                    ManufacturerId = newManufacturer.Id
                                });
                            }

                            context.SaveChanges();
                            transaction.Commit();
                        }
                        catch (DbEntityValidationException)
                        {
                            transaction.Rollback();
                        }
                    }
                }
            }
        }
Example #11
0
        static void Main()
        {
            var context = new PhotographySystemEntities();
            var users = context.Users
                .Where(u => u.Albums.Count >= 1)
                .OrderBy(u => u.FullName)
                .Select(u => new
                {
                    u.Id,
                    u.BirthDate,
                    Albums = u.Albums
                        .Select(a => new
                        {
                            a.Name,
                            a.Description,
                            Photographs = a.Photographs
                                .Select(p => p.Title)
                        }),
                    CameraModel = u.Equipment.Camera.Model,
                    CameraLens = u.Equipment.Lens.Model,
                    CameraMegapixels = u.Equipment.Camera.Megapixels
                });

            var xmlWriterSettings = new XmlWriterSettings()
            {
                Indent = true,
                NewLineChars = "\n"
            };

            using (XmlWriter writer = XmlWriter.Create("../../users-and-albums.xml", xmlWriterSettings))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("users");

                foreach (var user in users)
                {
                    writer.WriteStartElement("user");
                    writer.WriteAttributeString("id", user.Id.ToString());
                    writer.WriteAttributeString(
                        "birth-date", 
                        user.BirthDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"));

                    writer.WriteStartElement("albums");

                    foreach (var album in user.Albums)
                    {
                        writer.WriteStartElement("album");
                        writer.WriteAttributeString("name", album.Name);

                        if (album.Description != null)
                        {
                            writer.WriteAttributeString("description", album.Description);
                        }

                        writer.WriteStartElement("photographs");

                        foreach (var photograph in album.Photographs)
                        {
                            writer.WriteStartElement("photograph");
                            writer.WriteAttributeString("title", photograph);
                            writer.WriteEndElement();
                        }

                        writer.WriteEndElement();
                        writer.WriteEndElement();
                    }

                    writer.WriteEndElement();
                    writer.WriteStartElement("camera");
                    writer.WriteAttributeString("model", user.CameraModel);
                    writer.WriteAttributeString("lens", user.CameraLens);
                    writer.WriteAttributeString("megapixels", user.CameraMegapixels.ToString());
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
        }