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; }
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); } }
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(); } } } } }
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(); } }