private List <SqlBatchScript> ApplyChangesToDatabase_Unchanged(List <ConceptApplication> toBeInserted, List <ConceptApplication> newApplications, List <ConceptApplication> oldApplications) { var newScripts = new List <SqlBatchScript>(); var indexInsertedConcepts = new HashSet <string>(toBeInserted.Select(ca => ca.GetConceptApplicationKey())); var unchangedApplications = newApplications .Where(ca => !indexInsertedConcepts.Contains(ca.GetConceptApplicationKey())); var oldApplicationsByKey = oldApplications.ToDictionary(oa => oa.GetConceptApplicationKey()); foreach (var ca in unchangedApplications) { var updateMetadataSql = _sqlTransactionBatches.JoinScripts(_conceptApplicationRepository.UpdateMetadataSql(ca, oldApplicationsByKey[ca.GetConceptApplicationKey()])); if (updateMetadataSql.Any()) { LogDatabaseChanges(ca, "Updating metadata"); newScripts.AddRange(updateMetadataSql .Select((sql, x) => new SqlBatchScript { Sql = sql, IsBatch = false, Name = $"Updating {ca} metadata ({x + 1})." })); } } return(newScripts); }
protected List <string> ApplyChangesToDatabase_Unchanged(List <NewConceptApplication> toBeInserted, List <NewConceptApplication> newApplications, List <ConceptApplication> oldApplications) { var newScripts = new List <string>(); var indexInsertedConcepts = new HashSet <string>(toBeInserted.Select(ca => ca.GetConceptApplicationKey())); var unchangedApplications = newApplications .Where(ca => !indexInsertedConcepts.Contains(ca.GetConceptApplicationKey())); var oldApplicationsByKey = oldApplications.ToDictionary(oa => oa.GetConceptApplicationKey()); foreach (var ca in unchangedApplications) { var updateMetadataSql = _sqlTransactionBatches.JoinScripts(_conceptApplicationRepository.UpdateMetadataSql(ca, oldApplicationsByKey[ca.GetConceptApplicationKey()])); if (updateMetadataSql.Count() > 0) { LogDatabaseChanges(ca, "Updating metadata"); newScripts.AddRange(updateMetadataSql); } } return(newScripts); }