示例#1
0
        public static void Main()
        {
            var context = new FactoryDbContext();

            context.Database.CreateIfNotExists();

            var mongoData = GetDataFromMongoDb(Constants.DataName, Constants.CollectionName);
            var reports   = GetReportsDataFromExcel(Constants.ZipFilePath, Constants.UnzipedFilesPath);

            var productData = ProductMigrator.Instance.GetProductData(mongoData, context);

            PopulateSQLDbWithProducts(productData, context);

            var reportsData = ReportMigrator.Instance.GetReports(reports);

            PopulateSqlDbWithReports(reportsData, context);

            ImportXmlToMongoDb();
            ImportXMLToSqlServer();

            GenerateXMLReport(context, Constants.XmlReportsPath);
            GeneratePDFReport(context, Constants.PdfReportsPath);
            GenerateJSONReports(context, Constants.JsonReportsPath);

            var mySqlContext = new FactoryMySqlDbContext();

            mySqlContext.UpdateDatabase();
            PopulateMySQLDataBase(context, mySqlContext);

            //    var expensesPerModel = GetDataFromSQLite();
            //    var incomesPerModel = GetIncomePerModel(mySqlContext);
            //    CreateExcelYearlyFinancialResult(expensesPerModel, incomesPerModel);
        }
示例#2
0
        private static IDictionary <string, decimal> GetIncomePerModel(FactoryMySqlDbContext mySqlContext)
        {
            var dict = new Dictionary <string, decimal>();

            mySqlContext
            .ProductsReports
            .ToList()
            .ForEach(r =>
            {
                dict.Add(r.Model, r.TotalIncome);
            });

            return(dict);
        }
示例#3
0
        private static void PopulateMySQLDataBase(FactoryDbContext sqlContext, FactoryMySqlDbContext mySqlContext)
        {
            Console.WriteLine("Populating MySql Database...");
            var spaceships  = sqlContext.Spaceships.ToList();
            var sales       = sqlContext.Sales.ToList();
            var reports     = new List <ProductReport>();
            var jsonHandler = new JsonReportsHandler(spaceships, sales, reports);
            var jsonData    = jsonHandler.GetReportsInJsonFormat();

            if (mySqlContext.ProductsReports.Count() == 0)
            {
                foreach (var json in jsonData)
                {
                    var report = JsonConvert.DeserializeObject <MySqlReport>(json);
                    mySqlContext.Add(report);
                }

                mySqlContext.SaveChanges();
            }
        }