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."); }
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."); }
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(); }
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!"); }); }
public void TransferFacts(string serverName, string databaseName, string userId, string password) { using (var olapWarehouse = new OlapWarehouse(serverName, databaseName, userId, password)) { TransferFacts(olapWarehouse); } }