예제 #1
0
 private void LoadData()
 {
     foreach (var line in File.ReadAllLines(_file))
     {
         _repository.Save(EntityUtils.FromString <TEntity, TId>(line));
     }
 }
예제 #2
0
        private ConsolidationParams ReadConsolidationConfig()
        {
            var result = new ConsolidationParams();

            var sql = $"select entity_type, column_name from {GetQualifiedTableName(ConsolidationConfig)}";

            DatabaseUtils.EnumerateResults(ConnectionString, sql, TimeoutSecs, r =>
            {
                var e = EntityUtils.FromString((string)r["entity_type"]);

                if (EntityUtils.CanParticipateInConsolidation(e))
                {
                    string colName = (string)DatabaseUtils.SafeRead(r, "column_name", string.Empty);
                    if (!string.IsNullOrEmpty(colName))
                    {
                        var entry = new ConsolidationEntry
                        {
                            Entity = e.ToString(),
                            Column = colName
                        };

                        result.Entries.Add(entry);
                    }
                }
            });

            result.Enabled = result.Entries.Count > 0;

            return(result);
        }
예제 #3
0
        private void CheckConfigConsolidation()
        {
            foreach (var entry in _configuration.Consolidation.Entries)
            {
                try
                {
                    var e = EntityUtils.FromString(entry.Entity);

                    if (!EntityUtils.CanParticipateInConsolidation(e))
                    {
                        throw new ApplicationException(string.Format("Entity in configuration, consolidation section does not participate in consolidation: {0}", entry.Entity));
                    }

                    if (!entry.None && !EntityUtils.GetValidConsolidationColumns(e).Contains(entry.Column))
                    {
                        throw new ApplicationException(string.Format("Entity in configuration, consolidation section does not have specified column: {0} - {1}", entry.Entity, entry.Column));
                    }
                }
                catch (ArgumentException)
                {
                    throw new ApplicationException(string.Format("Could not identify entity in configuration, consolidation section: {0}", entry.Entity));
                }
            }
        }
예제 #4
0
        private void WriteConsolidationConfig(ConsolidationParams c)
        {
            var qualifiedConfigTable = GetQualifiedTableName(ConsolidationConfig);

            var sql = $"delete from {qualifiedConfigTable}";

            DatabaseUtils.ExecuteSql(ConnectionString, sql, TimeoutSecs);

            if (c.Enabled)
            {
                foreach (var entry in c.Entries)
                {
                    var e = EntityUtils.FromString(entry.Entity);

                    if (EntityUtils.CanParticipateInConsolidation(e))
                    {
                        sql = $"insert into {qualifiedConfigTable} (entity_type, column_name) values (@E, @C)";

                        SqlParameter[] p = { new SqlParameter("@E", entry.Entity), new SqlParameter("@C", entry.Column) };
                        DatabaseUtils.ExecuteSql(ConnectionString, sql, TimeoutSecs, p);
                    }
                }
            }
        }