コード例 #1
0
        public void TransferData(string serverName, string databaseName, string userId, string password)
        {
            ReportStatus("Transfering data...");

            using (var olapWarehouse = new OlapWarehouse(serverName, databaseName, userId, password)) {
                TransferDimensions(olapWarehouse);
                TransferFacts(olapWarehouse);
            }

            ReportStatus("Done transfering data.");
        }
コード例 #2
0
        private void TransferDimensions(OlapWarehouse olapWarehouse)
        {
            ReportStatus("Transfering dimensions...");

            var database = (from db in olapWarehouse.Servers where db.Name == DATABASE select db).FirstOrDefault();

            if (database == null)
            {
                database = new Server(DATABASE);
                olapWarehouse.Servers.Add(database);
            }

            var cube = (from c in database.Cubes where c.Name == CUBE select c).FirstOrDefault();

            if (cube == null)
            {
                cube = new Cube(CUBE);
                database.AddCube(cube);
            }
            else
            {
                ReportStatus("Deleting dimensions...");
                foreach (var dimension in cube.Dimensions.ToList <Dimension>())
                {
                    if (CancellationPending)
                    {
                        ReportOperationCanceled();
                        return;
                    }

                    cube.Dimensions.Remove(dimension);
                }
                ReportStatus("Done deleting dimensions.");
            }

            cube.AddDimension(Countries);
            cube.AddDimension(Indicators);
            cube.AddDimension(Years);

            ReportStatus("Saving changes...");
            try {
                olapWarehouse.SaveChanges();
            } catch (InvalidOperationException e) {
                MessageBox.Show(e.Message);
            }
            ReportStatus("Done saving changes.");

            ReportStatus("Done transfering dimensions.");
        }
コード例 #3
0
        private void TransferFacts(OlapWarehouse olapWarehouse)
        {
            var sqlConnection = olapWarehouse.SqlConnection;

            Cube cube     = null;
            var  database = (from db in olapWarehouse.Servers where db.Name == DATABASE select db).FirstOrDefault();

            if (database == null)
            {
                database = new Server(DATABASE);
                olapWarehouse.Servers.Add(database);
            }

            cube = (from c in database.Cubes where c.Name == CUBE select c).FirstOrDefault();
            if (cube == null)
            {
                cube = new Cube(CUBE);
                database.AddCube(cube);
            }
            else
            {
                ReportStatus("Deleting facts...");

                sqlConnection.Open();
                ExecuteSqlCommand(sqlConnection, "DELETE FROM " + FACTS + " WHERE CubeId = '" + cube.Id + "'");
                sqlConnection.Close();

                //int counter = 0;
                //int totalLines = cube.Facts.Count;

                //ReportProgress(0, totalLines);
                //foreach (var fact in cube.Facts) {
                //	olapWarehouse.Facts.Remove(fact);

                //ReportProgress(++counter, totalLines);
                //}
                ReportStatus("Done deleting facts.");
            }

            ReportStatus("Saving changes...");
            olapWarehouse.SaveChanges();
            ReportStatus("Done saving changes.");

            sqlConnection.Open();
            TransferFacts(cube, sqlConnection);
            sqlConnection.Close();
        }
コード例 #4
0
 private void SaveChanges()
 {
     RunInBackgroundWorker((a, b) => {
         MakeControlUseWaitCursor(this, true);
         MakeControlEnabled(this, false);
         try {
             OlapWarehouse.SaveChanges();
         } catch (DbEntityValidationException e) {
             foreach (var validationResult in e.EntityValidationErrors)
             {
                 foreach (var validationError in validationResult.ValidationErrors)
                 {
                     Console.WriteLine("Validation failed for property {0} of entity {1}. Error: {2}", validationError.PropertyName, validationResult.Entry.Entity, validationError.ErrorMessage);
                 }
             }
         }
         MakeControlUseWaitCursor(this, false);
         MakeControlEnabled(this, true);
         MessageBox.Show("Done saving changes!");
     });
 }
コード例 #5
0
 public void TransferFacts(string serverName, string databaseName, string userId, string password)
 {
     using (var olapWarehouse = new OlapWarehouse(serverName, databaseName, userId, password)) {
         TransferFacts(olapWarehouse);
     }
 }