public List <string> InsertMetadataSql(ConceptApplication newCA) { InsertedLog.Add(newCA); return(new List <string> { $"ins {newCA.ConceptInfoKey}" }); }
public List <string> DeleteMetadataSql(ConceptApplication oldCA) { DeletedLog.Add(oldCA); return(new List <string> { $"del {oldCA.ConceptInfoKey}" }); }
private static void AddRow(DataTable table, ConceptApplication ca) { // SELECT ID, InfoType, ConceptInfoKey, ImplementationType, CreateQuery, RemoveQuery, ModificationOrder table.Rows.Add( ca.Id, ca.ConceptInfoTypeName, ca.ConceptInfoKey, ca.ConceptImplementationTypeName, ca.CreateQuery, ca.RemoveQuery ?? "", ca.OldCreationOrder); }
private static string Dump(ConceptApplication appliedConcept) { var report = string.Format( "{0},{1},{2},{3},{4}", appliedConcept.Id, appliedConcept.ConceptInfoKey, appliedConcept.ConceptImplementationTypeName, appliedConcept.CreateQuery, appliedConcept.OldCreationOrder); Console.WriteLine("[Dump] " + report); return(report); }
DatabaseGeneratorUpdateDatabase( IList <DatabaseObject> oldConceptApplications, IList <DatabaseObject> newConceptApplications) { // Update mock database (based on difference between old and new concept applications): var conceptApplicationRepository = new MockConceptApplicationRepository(ConceptApplication.FromDatabaseObjects(oldConceptApplications)); var databaseModel = new DatabaseModel { DatabaseObjects = newConceptApplications.ToList() }; var options = new SqlTransactionBatchesOptions { MaxJoinedScriptCount = 1 }; var sqlExecuter = new MockSqlExecuter(); var sqlTransactionBatches = new SqlTransactionBatches(sqlExecuter, options, new ConsoleLogProvider(), new DelayedLogProvider(new LoggingOptions { DelayedLogTimout = 0 }, null)); var databaseAnalysis = new DatabaseAnalysis( conceptApplicationRepository, new ConsoleLogProvider(), databaseModel); IDatabaseGenerator databaseGenerator = new DatabaseGenerator( sqlTransactionBatches, conceptApplicationRepository, new ConsoleLogProvider(), new DbUpdateOptions { ShortTransactions = false }, databaseAnalysis); databaseGenerator.UpdateDatabaseStructure(); // Report changes in mock database: TestUtility.Dump( sqlExecuter.ExecutedScriptsWithTransaction, script => (script.Item2 ? "tran" : "notran") + string.Concat(script.Item1.Select(sql => "\r\n - " + sql.Replace('\r', ' ').Replace('\n', ' ')))); return (Report : string.Join(", ", sqlExecuter.ExecutedScriptsWithTransaction.SelectMany(script => script.Item1)), SqlExecuter : sqlExecuter, RemovedConcepts : conceptApplicationRepository.DeletedLog, InsertedConcepts : conceptApplicationRepository.InsertedLog.ToList()); }
public List <string> UpdateMetadataSql(ConceptApplication newCA, ConceptApplication oldCA) { // This is called event if the metadata has not changed. // It is responsible for checking if the new CA has same metadata at the old one. var sql = _conceptApplicationRepository.UpdateMetadataSql(newCA, oldCA); Console.WriteLine($"[UpdateMetadataSql] {newCA.ConceptInfoKey}:{string.Concat(sql.Select(script => $"\r\n - {script}"))}."); if (sql.Any()) { UpdatedLog.Add(Tuple.Create(newCA, oldCA)); return(new List <string> { $"upd {newCA.ConceptInfoKey}" }); } else { return new List <string> { } }; } }
public static new void AddConceptApplicationSeparator(ConceptApplication ca, CodeBuilder sqlCodeBuilder) { DatabaseGenerator.AddConceptApplicationSeparator(ca, sqlCodeBuilder); }
public List<string> UpdateMetadataSql(NewConceptApplication ca, ConceptApplication oldApp) { return new List<string> { }; }
public List<string> DeleteMetadataSql(ConceptApplication ca) { return new List<string> { }; }
private static IEnumerable <ConceptApplication> DirectAndIndirectDependencies(ConceptApplication ca) { return(ca.DependsOn.Select(cad => cad.ConceptApplication) .Union(ca.DependsOn.Select(cad => cad.ConceptApplication) .SelectMany(DirectAndIndirectDependencies))); }
public static NewConceptApplication CreateApplication(string name, string sql, ConceptApplication dependsOn) { return(new NewConceptApplication(new SimpleCi { Name = name, Data = "data" }, new SimpleConceptImplementation()) { CreateQuery = sql, DependsOn = new [] { new ConceptApplicationDependency { ConceptApplication = dependsOn } } }); }
private static void AddRow(DataTable table, ConceptApplication ca) { // SELECT ID, InfoType, SerializedInfo, ConceptInfoKey, ImplementationType, ConceptImplementationVersion, CreateQuery, RemoveQuery, ModificationOrder table.Rows.Add( ca.Id, ca.ConceptInfoTypeName, ca.ConceptInfoKey, ca.ConceptImplementationTypeName, ca.CreateQuery, ca.RemoveQuery ?? "", ca.OldCreationOrder); }
private static string Dump(ConceptApplication appliedConcept) { var report = string.Format( "{0},{1},{2},{3},{4}", appliedConcept.Id, appliedConcept.ConceptInfoKey, appliedConcept.ConceptImplementationTypeName, appliedConcept.CreateQuery, appliedConcept.OldCreationOrder); Console.WriteLine("[Dump] " + report); return report; }
new public static void AddConceptApplicationSeparator(ConceptApplication ca, CodeBuilder sqlCodeBuilder) { DatabaseGenerator.AddConceptApplicationSeparator(ca, sqlCodeBuilder); }
public List <string> DeleteMetadataSql(ConceptApplication ca) { return(new List <string> { }); }
public List <string> UpdateMetadataSql(NewConceptApplication ca, ConceptApplication oldApp) { return(new List <string> { }); }