예제 #1
0
 public static void GenerateRemoveQuery(NewConceptApplication ca)
 {
     ca.RemoveQuery = ca.ConceptImplementation.RemoveDatabaseStructure(ca.ConceptInfo);
     if (ca.RemoveQuery != null)
         ca.RemoveQuery = ca.RemoveQuery.Trim();
     else
         ca.RemoveQuery = "";
 }
예제 #2
0
 public static void GenerateRemoveQuery(NewConceptApplication ca)
 {
     ca.RemoveQuery = ca.ConceptImplementation.RemoveDatabaseStructure(ca.ConceptInfo);
     if (ca.RemoveQuery != null)
     {
         ca.RemoveQuery = ca.RemoveQuery.Trim();
     }
     else
     {
         ca.RemoveQuery = "";
     }
 }
예제 #3
0
        public List <string> UpdateMetadataSql(NewConceptApplication ca, ConceptApplication oldApp)
        {
            var sql = new List <string>();

            if (oldApp.RemoveQuery != ca.RemoveQuery)
            {
                sql.Add(Sql.Format("ConceptApplicationRepository_Update",
                                   SqlUtility.QuoteGuid(ca.Id),
                                   SqlUtility.QuoteText(ca.ConceptInfoTypeName),
                                   SqlUtility.QuoteText(ca.ConceptInfoKey),
                                   SqlUtility.QuoteText(ca.ConceptImplementationTypeName),
                                   SqlUtility.QuoteText(_xmlUtility.SerializeToXml(ca.ConceptInfo)),
                                   SqlUtility.QuoteText(ca.CreateQuery),
                                   SqlUtility.QuoteText(ca.RemoveQuery),
                                   SqlUtility.QuoteText(ca.ConceptImplementationVersion.ToString())));
            }

            HashSet <Guid> oldDependsOn = new HashSet <Guid>(oldApp.DependsOn.Select(depOn => depOn.ConceptApplication.Id));
            HashSet <Guid> newDependsOn = new HashSet <Guid>(ca.DependsOn.Select(depOn => depOn.ConceptApplication.Id));

            foreach (var dependsOnId in ca.DependsOn.Select(d => d.ConceptApplication.Id).Distinct())
            {
                if (!oldDependsOn.Contains(dependsOnId))
                {
                    sql.Add(Sql.Format("ConceptApplicationRepository_InsertDependency",
                                       SqlUtility.QuoteGuid(ca.Id),
                                       SqlUtility.QuoteGuid(dependsOnId)));
                }
            }

            foreach (var dependsOnId in oldApp.DependsOn.Select(d => d.ConceptApplication.Id).Distinct())
            {
                if (!newDependsOn.Contains(dependsOnId))
                {
                    sql.Add(Sql.Format("ConceptApplicationRepository_DeleteDependency",
                                       SqlUtility.QuoteGuid(ca.Id),
                                       SqlUtility.QuoteGuid(dependsOnId)));
                }
            }

            return(sql);
        }
        public List<string> InsertMetadataSql(NewConceptApplication ca)
        {
            var sql = new List<string>();

            sql.Add(Sql.Format("ConceptApplicationRepository_Insert",
                SqlUtility.QuoteGuid(ca.Id),
                SqlUtility.QuoteText(ca.ConceptInfoTypeName),
                SqlUtility.QuoteText(ca.ConceptInfoKey),
                SqlUtility.QuoteText(ca.ConceptImplementationTypeName),
                SqlUtility.QuoteText(_xmlUtility.SerializeToXml(ca.ConceptInfo)),
                SqlUtility.QuoteText(ca.CreateQuery),
                SqlUtility.QuoteText(ca.RemoveQuery),
                SqlUtility.QuoteText(ca.ConceptImplementationVersion.ToString())));

            foreach (var dependsOnId in ca.DependsOn.Select(d => d.ConceptApplication.Id).Distinct())
                sql.Add(Sql.Format("ConceptApplicationRepository_InsertDependency",
                    SqlUtility.QuoteGuid(ca.Id),
                    SqlUtility.QuoteGuid(dependsOnId)));

            return sql;
        }
예제 #5
0
        public List <string> InsertMetadataSql(NewConceptApplication ca)
        {
            var sql = new List <string>();

            sql.Add(Sql.Format("ConceptApplicationRepository_Insert",
                               SqlUtility.QuoteGuid(ca.Id),
                               SqlUtility.QuoteText(ca.ConceptInfoTypeName),
                               SqlUtility.QuoteText(ca.ConceptInfoKey),
                               SqlUtility.QuoteText(ca.ConceptImplementationTypeName),
                               SqlUtility.QuoteText(_xmlUtility.SerializeToXml(ca.ConceptInfo)),
                               SqlUtility.QuoteText(ca.CreateQuery),
                               SqlUtility.QuoteText(ca.RemoveQuery),
                               SqlUtility.QuoteText(ca.ConceptImplementationVersion.ToString())));

            foreach (var dependsOnId in ca.DependsOn.Select(d => d.ConceptApplication.Id).Distinct())
            {
                sql.Add(Sql.Format("ConceptApplicationRepository_InsertDependency",
                                   SqlUtility.QuoteGuid(ca.Id),
                                   SqlUtility.QuoteGuid(dependsOnId)));
            }

            return(sql);
        }
        public List<string> UpdateMetadataSql(NewConceptApplication ca, ConceptApplication oldApp)
        {
            var sql = new List<string>();
            if (oldApp.RemoveQuery != ca.RemoveQuery)
                sql.Add(Sql.Format("ConceptApplicationRepository_Update",
                    SqlUtility.QuoteGuid(ca.Id),
                    SqlUtility.QuoteText(ca.ConceptInfoTypeName),
                    SqlUtility.QuoteText(ca.ConceptInfoKey),
                    SqlUtility.QuoteText(ca.ConceptImplementationTypeName),
                    SqlUtility.QuoteText(_xmlUtility.SerializeToXml(ca.ConceptInfo)),
                    SqlUtility.QuoteText(ca.CreateQuery),
                    SqlUtility.QuoteText(ca.RemoveQuery),
                    SqlUtility.QuoteText(ca.ConceptImplementationVersion.ToString())));

            HashSet<Guid> oldDependsOn = new HashSet<Guid>(oldApp.DependsOn.Select(depOn => depOn.ConceptApplication.Id));
            HashSet<Guid> newDependsOn = new HashSet<Guid>(ca.DependsOn.Select(depOn => depOn.ConceptApplication.Id));

            foreach (var dependsOnId in ca.DependsOn.Select(d => d.ConceptApplication.Id).Distinct())
                if (!oldDependsOn.Contains(dependsOnId))
                    sql.Add(Sql.Format("ConceptApplicationRepository_InsertDependency",
                        SqlUtility.QuoteGuid(ca.Id),
                        SqlUtility.QuoteGuid(dependsOnId)));

            foreach (var dependsOnId in oldApp.DependsOn.Select(d => d.ConceptApplication.Id).Distinct())
                if (!newDependsOn.Contains(dependsOnId))
                    sql.Add(Sql.Format("ConceptApplicationRepository_DeleteDependency",
                        SqlUtility.QuoteGuid(ca.Id),
                        SqlUtility.QuoteGuid(dependsOnId)));

            return sql;
        }
예제 #7
0
 protected static IConceptInfo GetValidConceptInfo(string conceptInfoKey, Dictionary <string, IConceptInfo> conceptInfosByKey, NewConceptApplication debugContextNewConceptApplication)
 {
     if (!conceptInfosByKey.ContainsKey(conceptInfoKey))
     {
         throw new FrameworkException(string.Format(
                                          "DatabaseGenerator error while generating code with plugin {0}: Extension created a dependency to the nonexistent concept info {1}.",
                                          debugContextNewConceptApplication.ConceptImplementationType.Name,
                                          conceptInfoKey));
     }
     return(conceptInfosByKey[conceptInfoKey]);
 }
예제 #8
0
 protected static IConceptInfo GetValidConceptInfo(string conceptInfoKey, Dictionary<string, IConceptInfo> conceptInfosByKey, NewConceptApplication debugContextNewConceptApplication)
 {
     if (!conceptInfosByKey.ContainsKey(conceptInfoKey))
         throw new FrameworkException(string.Format(
             "DatabaseGenerator error while generating code with plugin {0}: Extension created a dependency to the nonexistent concept info {1}.",
             debugContextNewConceptApplication.ConceptImplementationType.Name,
             conceptInfoKey));
     return conceptInfosByKey[conceptInfoKey];
 }