protected void DeleteEntityFromSqlServerDb(string connectionString, IMetadataWorkspace metadataWorkspace, Entity entity) { var entityType = metadataWorkspace.GetEntityType(entity.Name); var properties = new string[entity.Properties.Count]; int index = 0; foreach (var property in entity.Properties) { properties[index] = string.Format("{0} = {1}", property.Key, Converter.ConvertToString(entityType.Properties[property.Key], property.Value)); index++; } var query = string.Format("DELETE FROM {0} WHERE {1};", entity.Name, string.Join(" AND ", properties)); using (var connection = new SqlConnection(connectionString)) { connection.Open(); using (var command = new SqlCommand(query, connection)) { command.ExecuteNonQuery(); } } }
protected void InsertEntityIntoSqlServerDb(string connectionString, IMetadataWorkspace metadataWorkspace, Entity entity) { var properties = new string[entity.Properties.Count]; var header = new string[entity.Properties.Count]; var entityType = metadataWorkspace.GetEntityType(entity.Name); int index = 0; foreach (var property in entity.Properties) { properties[index] = Converter.ConvertToString(entityType.Properties[property.Key], property.Value); header[index] = property.Key; index++; } var query = string.Format("INSERT INTO {0} ({1}) VALUES ({2});", entity.Name, string.Join(", ", header), string.Join(", ", properties)); using (var connection = new SqlConnection(connectionString)) { connection.Open(); using (var command = new SqlCommand(query, connection)) { command.ExecuteNonQuery(); } } }
protected bool CheckEntityExistsInSqlServerDb(string connectionString, IMetadataWorkspace metadataWorkspace, Entity entity) { var properties = new string[entity.Properties.Count]; var entityType = metadataWorkspace.GetEntityType(entity.Name); int index = 0; foreach (var property in entity.Properties) { properties[index] = string.Format("{0} = {1}", property.Key, Converter.ConvertToString(entityType.Properties[property.Key], property.Value)); index++; } var query = string.Format("SELECT COUNT({0}) FROM {1} WHERE {2};", "*", entity.Name, string.Join(" AND ", properties)); var entityExists = true; using (var connection = new SqlConnection(connectionString)) { connection.Open(); using (var command = new SqlCommand(query, connection)) { int count = int.Parse(command.ExecuteScalar().ToString()); if (count != 1) { entityExists = false; } } } return(entityExists); }
public Api(IMetadataProvider metadataProvider, IStorageProvider productionStorageProvider, IStorageProvider backupStorageProvider) { this.metadataWorkspace = metadataProvider.GetMetadataWorkspace(); this.productionRepository = productionStorageProvider.GetRepository(metadataProvider); this.backupRepository = backupStorageProvider.GetRepository(metadataProvider); }
public SqlServerRepository(string connectionString, IMetadataWorkspace metadataWorkspace) { this.queries = new List <string>(); this.connectionString = connectionString; this.MetadataWorkspace = metadataWorkspace; log4net.Config.XmlConfigurator.Configure(); this.log = LogManager.GetLogger(typeof(SqlServerRepository)); }
private void EnsureInDatabase(string connectionString, IMetadataWorkspace metadataWorkspace, IEnumerable <Entity> entities) { foreach (var entity in entities) { InsertEntityIntoSqlServerDb(connectionString, metadataWorkspace, entity); if (!CheckEntityExistsInSqlServerDb(connectionString, metadataWorkspace, entity)) { string message = string.Format("DB INIT: Entity '{0}' could not be saved in the production database.", entity.Name); throw new Exception(message); } } }
public MaintenanceTask(IMetadataWorkspace metadataWorkspace, IRepository sourceRepository, IRepository targetRepository, IDependencyResolver dependencyResolver, IEntityTypeFilter filter) { this.metadataWorkspace = metadataWorkspace; this.sourceRepository = sourceRepository; this.targetRepository = targetRepository; this.dependencyResolver = dependencyResolver; this.filter = filter; this.visited = new List <Entity>(); this.entityComparer = new EntityComparer(metadataWorkspace); log4net.Config.XmlConfigurator.Configure(); this.log = LogManager.GetLogger(typeof(MaintenanceTask)); }
public EntityComparer(IMetadataWorkspace metadataWorkspace) { this.metadataWorkspace = metadataWorkspace; }