Example #1
0
        private static void SeedCategoryProducts()
        {
            using (var db = new ProductsShopDb())
            {
                var products   = db.Products.ToArray();
                var categories = db.Categories.ToArray();

                var catecoryProducts = new List <CategoryProduct>();

                var rnd = new Random();

                foreach (var c in categories)
                {
                    for (int i = 0; i < 3; i++)
                    {
                        var cat = new CategoryProduct();
                        cat.Product  = products[rnd.Next(0, products.Length - 1)];
                        cat.Category = c;
                        catecoryProducts.Add(cat);
                    }
                }

                db.CategoryProducts.AddRange(catecoryProducts);
                db.SaveChanges();
            }
        }
Example #2
0
        private static void SeedUsersXml()
        {
            var read = File.ReadAllText("JsonAndXmlData/users.xml");

            var xml = XDocument.Parse(read);

            var users = new List <User>();

            foreach (var x in xml.Root.Elements())
            {
                var firstname = x.Attribute("firstName")?.Value;
                var lastname  = x.Attribute("lastName").Value;

                int?age = null;

                if (x.Attribute("age") != null)
                {
                    age = int.Parse(x.Attribute("age").Value);
                }

                var user = new User()
                {
                    FirstName = firstname,
                    LastName  = lastname,
                    Age       = age
                };

                users.Add(user);
            }

            var db = new ProductsShopDb();

            db.Users.AddRange(users);
            db.SaveChanges();
        }
Example #3
0
        private static void SeedProductsXml()
        {
            var read     = File.ReadAllText("JsonAndXmlData/products.xml");
            var products = XDocument.Parse(read);

            var result = new List <Product>();

            var rnd = new Random();

            using (var db = new ProductsShopDb())
            {
                var usersId = db.Users.Select(x => x.Id).ToArray();

                var count = 1;
                foreach (var x in products.Root.Elements())
                {
                    var p = new Product();
                    p.Name     = x.Element("name").Value;
                    p.Price    = decimal.Parse(x.Element("price").Value);
                    p.SellerId = rnd.Next(1, usersId.Length);

                    if (count % 2 == 0)
                    {
                        p.BuyerId = rnd.Next(1, usersId.Length);
                    }

                    result.Add(p);

                    count++;
                }

                db.Products.AddRange(result);
                db.SaveChanges();
            }
        }
Example #4
0
        private static void SeedCategoryProductsXml()
        {
            using (var db = new ProductsShopDb())
            {
                var products   = db.Products.Select(x => x.Id).ToArray();
                var categories = db.Categories.Select(x => x.Id).ToArray();

                var result = new List <CategoryProduct>();

                var rnd = new Random();

                foreach (var c in categories)
                {
                    for (int i = 0; i < 3; i++)
                    {
                        var cat = new CategoryProduct()
                        {
                            CategoryId = c,
                            ProductId  = rnd.Next(1, products.Length)
                        };

                        result.Add(cat);
                    }
                }

                db.CategoryProducts.AddRange(result);
                db.SaveChanges();
            }
        }
Example #5
0
        private static void ProductsInRangeXml()
        {
            using (var db = new ProductsShopDb())
            {
                var products = db.Products
                               .Include(x => x.Buyer)
                               .Where(p => p.Price >= 1000 && p.Price <= 2000)
                               .Where(b => b.BuyerId != null)
                               .OrderBy(p => p.Price)
                               .Select(x => new
                {
                    name  = x.Name,
                    price = x.Price,
                    buyer = $"{x.Buyer.FirstName} {x.Buyer.LastName}"
                }).ToArray();

                XDocument xml = new XDocument(new XElement("products"));

                foreach (var p in products)
                {
                    xml.Root.Add(new XElement("product", new XAttribute("name", p.name), new XAttribute("price", p.price), new XAttribute("buyer", p.buyer)));
                }

                File.WriteAllText("ProductsInRange.xml", xml.ToString());
            }
        }
Example #6
0
        private static void SoldProducts()
        {
            using (var db = new ProductsShopDb())
            {
                var users = db.Users.Include(x => x.ProductsSold)
                            .ThenInclude(x => x.Buyer)
                            .Where(x => x.ProductsSold.Any(e => e.BuyerId != null))
                            .OrderBy(x => x.LastName)
                            .ThenBy(x => x.FirstName)
                            .Select(x => new
                {
                    x.FirstName,
                    x.LastName,
                    SoldProducts = x.ProductsSold.Select(a => new
                    {
                        a.Name,
                        a.Price,
                        BuyerFirstName = a.Buyer.FirstName,
                        buyerLastName  = a.Buyer.LastName
                    })
                }).ToArray();

                var parsedJson = JsonConvert.SerializeObject(users, Formatting.Indented, new JsonSerializerSettings
                {
                    DefaultValueHandling = DefaultValueHandling.Ignore
                });

                File.WriteAllText("SoldProducts.json", parsedJson);
            }
        }
Example #7
0
        private static void CategoriesByProductCountXml()
        {
            using (var db = new ProductsShopDb())
            {
                var categories = db.Categories
                                 .Include(x => x.CategoryProducts)
                                 .ThenInclude(x => x.Product)
                                 .OrderBy(x => x.CategoryProducts.Count)
                                 .Select(a => new
                {
                    name          = a.Name,
                    productsCount = a.CategoryProducts.Count,
                    avarage       = a.CategoryProducts.Average(x => x.Product.Price),
                    sum           = a.CategoryProducts.Sum(x => x.Product.Price)
                }).ToArray();

                var xml = new XDocument(new XElement("catecories"));

                foreach (var c in categories)
                {
                    xml.Root.Add(new XElement("category", new XAttribute("name", c.name),
                                              new XElement("products-count", c.productsCount),
                                              new XElement("average-price", c.avarage),
                                              new XElement("total-revenue", c.sum)));
                }
                xml.Save("CategoriesByProduct.xml");
            }
        }
Example #8
0
 private static void ResetDatabase()
 {
     using (var db = new ProductsShopDb())
     {
         db.Database.EnsureDeleted();
         db.Database.EnsureCreated();
     }
 }
Example #9
0
        private static void UsersAndProductsXml()
        {
            using (var db = new ProductsShopDb())
            {
                var users = db.Users
                            .Include(x => x.ProductsSold)
                            .Where(x => x.ProductsSold.Count > 0)
                            .OrderByDescending(x => x.ProductsSold.Count)
                            .ThenBy(x => x.LastName)
                            .Select(x => new
                {
                    firstName = x.FirstName,
                    lastName  = x.LastName,
                    age       = x.Age,
                    proucts   = x.ProductsSold.Select(a => new
                    {
                        a.Name,
                        a.Price
                    })
                }).ToArray();

                var xml = new XDocument(new XElement("users"));

                foreach (var u in users)
                {
                    var user = new XElement("user",
                                            new XElement("sold-products", new XAttribute("coute", u.proucts.Count())));

                    if (u.firstName != null)
                    {
                        user.Add(new XAttribute("first-name", u.firstName));
                    }

                    if (u.lastName != null)
                    {
                        user.Add(new XAttribute("last-name", u.lastName));
                    }

                    if (u.age != null)
                    {
                        user.Add(new XAttribute("age", u.age));
                    }

                    foreach (var p in u.proucts)
                    {
                        var product = new XElement("product",
                                                   new XAttribute("name", p.Name),
                                                   new XAttribute("price", p.Price));

                        user.Element("sold-products").Add(product);
                    }

                    xml.Root.Add(user);
                }

                xml.Save("UserProducts.xml");
            }
        }
Example #10
0
        private static void SeedUsers()
        {
            var users = JsonConvert.DeserializeObject <User[]>(File.ReadAllText(@"JsonAndXmlData\users.json"));

            using (var db = new ProductsShopDb())
            {
                db.Users.AddRange(users);
                db.SaveChanges();
            }
        }
Example #11
0
        private static void SeedCategories()
        {
            var categories = JsonConvert.DeserializeObject <Category[]>(File.ReadAllText(@"JsonAndXmlData\categories.json"));

            using (var db = new ProductsShopDb())
            {
                db.Categories.AddRange(categories);
                db.SaveChanges();
            }
        }
Example #12
0
        private static void SoldProductsXml()
        {
            using (var db = new ProductsShopDb())
            {
                var users = db.Users
                            .Include(x => x.ProductsSold)
                            .Where(x => x.ProductsSold.Count > 0)
                            .OrderBy(x => x.LastName)
                            .ThenBy(x => x.FirstName)
                            .Select(x => new
                {
                    firstname    = x.FirstName,
                    lastname     = x.LastName,
                    soldProducts = x.ProductsSold.Select(e => new
                    {
                        name  = e.Name,
                        price = e.Price
                    })
                }).ToArray();

                var xml = new XDocument(new XElement("users"));

                foreach (var u in users)
                {
                    var usersToAdd =
                        new XElement("user",
                                     new XAttribute("first-name", u.firstname ?? "No Name"),
                                     new XAttribute("last-name", u.lastname),
                                     new XElement("sold-products"));

                    foreach (var p in u.soldProducts)
                    {
                        var child = new XElement("product",
                                                 new XElement("name", p.name),
                                                 new XElement("price", p.price));

                        usersToAdd.Element("sold-products").Add(child);
                    }

                    xml.Root.Add(usersToAdd);
                }

                xml.Save("SoldProducts.xml");
            }
        }
Example #13
0
        private static void ProductsInRange()
        {
            using (var db = new ProductsShopDb())
            {
                var products = db.Products.Where(x => x.Price >= 500 && x.Price <= 1000)
                               .OrderBy(x => x.Price)
                               .Select(x => new
                {
                    ProductName = x.Name,
                    Price       = x.Price,
                    Seller      = $"{x.Seller.FirstName} {x.Seller.LastName}"
                }).ToArray();

                var parsedJson = JsonConvert.SerializeObject(products, Formatting.Indented);

                File.WriteAllText("ProductsInRange.json", parsedJson);
            }
        }
Example #14
0
        private static void CategoriesByProductCount()
        {
            using (var db = new ProductsShopDb())
            {
                var categories = db.Categories
                                 .Include(x => x.CategoryProducts)
                                 .ThenInclude(x => x.Product)
                                 .OrderBy(x => x.Name)
                                 .Select(x => new
                {
                    x.Name,
                    productsCount = x.CategoryProducts.Count,
                    averagePrice  = x.CategoryProducts.Select(e => e.Product.Price).Average(),
                    totalRevenue  = x.CategoryProducts.Sum(p => p.Product.Price)
                }).ToArray();

                var parsedJason = JsonConvert.SerializeObject(categories, Formatting.Indented);

                File.WriteAllText("CategoriesByProductCount.json", parsedJason);
            }
        }
Example #15
0
        private static void SeedCategoriesXml()
        {
            var read = File.ReadAllText("JsonAndXmlData/categories.xml");

            var xml = XDocument.Parse(read);

            var categories = new List <Category>();

            foreach (var x in xml.Root.Elements())
            {
                var name = x.Element("name").Value;

                categories.Add(new Category()
                {
                    Name = name
                });
            }

            var db = new ProductsShopDb();

            db.Categories.AddRange(categories);
            db.SaveChanges();
        }
Example #16
0
        private static void UsersAndProducts()
        {
            using (var db = new ProductsShopDb())
            {
                var users = db.Users
                            .Include(x => x.ProductsSold)
                            .Where(x => x.ProductsSold.Count > 0)
                            .OrderByDescending(x => x.ProductsSold.Count)
                            .ThenBy(x => x.LastName)
                            .Select(x => new
                {
                    firstName    = x.FirstName,
                    lastName     = x.LastName,
                    age          = x.Age,
                    soldProducts = new
                    {
                        count    = x.ProductsSold.Count,
                        products = x.ProductsSold.Select(e => new
                        {
                            e.Name,
                            e.Price
                        })
                    }
                });

                var result = new
                {
                    usersCount = users.Count(),
                    users
                };


                var parsedJson = JsonConvert.SerializeObject(result, Formatting.Indented);

                File.WriteAllText("UsersAndProducts.json", parsedJson);
            }
        }
Example #17
0
        private static void SeedProducts()
        {
            var products = JsonConvert.DeserializeObject <Product[]>(File.ReadAllText(@"JsonAndXmlData\products.json"));

            var rnd = new Random();

            using (var db = new ProductsShopDb())
            {
                var usersId = db.Users.Select(x => x.Id).ToArray();

                for (int i = 0; i < products.Length; i++)
                {
                    products[i].SellerId = rnd.Next(1, usersId.Length - 1);

                    if (i % 2 == 0)
                    {
                        products[i].BuyerId = rnd.Next(1, usersId.Length - 1);
                    }
                }

                db.Products.AddRange(products);
                db.SaveChanges();
            }
        }