Beispiel #1
0
        //Commented so i can start the program.
        private async static void GetMongoData()
        {
            try
            {
                var repo = new MongoDbRepository();

                var cars = (await repo.GetCarsData()).ToList();

                var ctx = new CarsFactoryDbContext();
                using (ctx)
                {
                    foreach (Car car in cars)
                    {
                        if (!ctx.Cars.Any(pl => pl.Id == car.Id))
                        {
                            ctx.Cars.Add(car);
                        }
                    }

                    ctx.SaveChanges();
                }
            }
            catch (DataException)
            {
                throw new ArgumentException("MongoDb is not set up correctly.");
            }
        }
Beispiel #2
0
        public async Task SaveAllMongoData(IMongoDbRepository repo, IMsSqlRepository mssqlRepo, ICarsFactoryDbContext ctx)
        {
            var towns         = (await repo.GetTownsData()).ToList();
            var platforms     = (await repo.GetPlatformsData()).ToList();
            var orders        = (await repo.GetOrdersData()).ToList();
            var models        = (await repo.GetModelsData()).ToList();
            var manufacturers = (await repo.GetManufacturersData()).ToList();
            var engines       = (await repo.GetEnginesData()).ToList();
            var dealers       = (await repo.GetDealersData()).ToList();
            var cars          = (await repo.GetCarsData()).ToList();


            using (ctx = new CarsFactoryDbContext())
            {
                mssqlRepo.ExtractTowns(towns, ctx);
                mssqlRepo.ExtractPlatforms(platforms, ctx);
                mssqlRepo.ExtractOrders(orders, ctx);
                mssqlRepo.ExtractManufacturers(manufacturers, ctx);
                mssqlRepo.ExtractEngines(engines, ctx);
                mssqlRepo.ExtractModels(models, ctx);
                mssqlRepo.ExtractCars(cars, ctx);
                mssqlRepo.ExtractDealers(dealers, ctx);
                await ctx.SaveChangesAsync();
            }

            Console.WriteLine(cars.Count);
            Console.WriteLine(models.Count);
            Console.WriteLine(manufacturers.Count);
            Console.WriteLine(orders.Count);
            Console.WriteLine(platforms.Count);
            Console.WriteLine(engines.Count);
            Console.WriteLine(dealers.Count);
            Console.WriteLine(towns.Count);
        }
Beispiel #3
0
        /// <summary>
        /// Creates XML reports and save them as a XML file
        /// </summary>
        public void CreateReport()
        {
            Console.WriteLine(ProcessInformation);
            XmlDocument    report         = new XmlDocument();
            XmlDeclaration xmlDeclaration = report.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement     root           = report.CreateElement(RootName);

            report.AppendChild(root);
            report.InsertBefore(xmlDeclaration, root);

            using (var db = new CarsFactoryDbContext())
            {
                var groupedCars = db.Models.GroupBy(s => s.Manufacturer)
                                  .ToList();

                foreach (var eachCar in groupedCars)
                {
                    XmlElement manufacturer = report.CreateElement("manufacturer");
                    manufacturer.SetAttribute("name", eachCar.Key.Name);
                    root.AppendChild(manufacturer);
                    foreach (var single in eachCar)
                    {
                        XmlElement car = report.CreateElement("car");
                        car.SetAttribute("model", single.Name.ToString());
                        car.SetAttribute("created-on", (single.Year.ToString()));
                        manufacturer.AppendChild(car);
                    }
                }
            }

            report.Save(SaveFilePath + FileName);
        }
Beispiel #4
0
        public static void Main()
        {
            using (var dbContext = new CarsFactoryDbContext())
            {
                dbContext.Database.CreateIfNotExists();
            }

            //Startup.GetMongoData();
        }
Beispiel #5
0
        /// <summary>
        /// Generate a JSON file for each order
        /// Filename is the Id of order
        /// </summary>
        public void GenerateJson()
        {
            using (CarsFactoryDbContext ctx = new CarsFactoryDbContext())
            {
                var ordersList = (from order in ctx.Orders

                                  let date =
                                      order.Date

                                      let totalRevenue =
                                          (decimal?)order.Cars.Where(
                                              y =>
                                              y.OrderId != null &&
                                              y.Order.OrderStatus == OrderStatus.Closed)
                                          .Sum(x => x.Price)
                                          let unitsSold =
                                              order.Cars.Count(
                                                  y =>
                                                  y.OrderId != null &&
                                                  y.Order.OrderStatus == OrderStatus.Closed)
                                              select new
                {
                    OrderId = order.Id,
                    Date = date,
                    UnitsSold = unitsSold,
                    TotalRevenue = totalRevenue,
                })
                                 .ToList();

                foreach (var order in ordersList)
                {
                    var path = "..\\..\\..\\Output\\Json-Reports";
                    var di   = Directory.CreateDirectory(path);
                    using (var writer = new StreamWriter("..\\..\\..\\Output\\Json-Reports\\" + order.OrderId + ".json"))
                    {
                        writer.Write(JsonConvert.SerializeObject(order, Formatting.Indented));
                    }

                    MySqlConnect dbConn = new MySqlConnect();
                    dbConn.Insert(JsonConvert.SerializeObject(order, Formatting.Indented));
                }
            }
        }