Example #1
0
        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();
                }
            }
        }
Example #2
0
        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();
                }
            }
        }
Example #3
0
        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);
        }
Example #4
0
        public Api(IMetadataProvider metadataProvider, IStorageProvider productionStorageProvider, IStorageProvider backupStorageProvider)
        {
            this.metadataWorkspace = metadataProvider.GetMetadataWorkspace();

            this.productionRepository = productionStorageProvider.GetRepository(metadataProvider);
            this.backupRepository     = backupStorageProvider.GetRepository(metadataProvider);
        }
Example #5
0
        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));
        }
Example #6
0
        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);
                }
            }
        }
Example #7
0
        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));
        }
Example #8
0
 public EntityComparer(IMetadataWorkspace metadataWorkspace)
 {
     this.metadataWorkspace = metadataWorkspace;
 }