Beispiel #1
0
        public void BuildProcedureCode(DatabaseSchema databaseSchema, DatabaseStoredProcedure databaseStoredProcedure)
        {
            try
            {
                //grab the data
                if (databaseStoredProcedure.ResultSets.Count == 0)
                {
                    //Delete sprocs won't have resultsets, so will get called multiple times
                    var sprocRunner = new DatabaseSchemaReader.Procedures.ResultSetReader(databaseSchema);
                    sprocRunner.ExecuteProcedure(databaseStoredProcedure);
                }

                //write it
                var sprocWriter = new ProcedureWriter(databaseStoredProcedure, "Domain");
                var txt         = sprocWriter.Write();

                Clipboard.SetText(txt, TextDataFormat.UnicodeText);
            }
            catch (Exception exception)
            {
                Clipboard.SetText("//sorry, not available - " + exception.Message,
                                  TextDataFormat.UnicodeText);
                Debug.WriteLine(exception.Message);
            }
        }
        public void RunCodeWriter()
        {
            if (_readProcedures)
            {
                var sprocRunner = new DatabaseSchemaReader.Procedures.ResultSetReader(_databaseSchema);
                sprocRunner.Execute();
            }
            var settings = new CodeWriterSettings {
                Namespace = _ns, CodeTarget = CodeTarget
            };

            //these have no UI, but the user can edit the config.
            settings.UseForeignKeyIdProperties = Properties.Settings.Default.CodeGenUseForeignKeyIdProperties;
            if (Properties.Settings.Default.CodeGenUsePluralizingNamer)
            {
                settings.Namer = new PluralizingNamer();
            }
            //if poco, write the sprocs - or if read the sprocs, we can generate
            settings.WriteStoredProcedures        = (_readProcedures || CodeTarget == CodeTarget.Poco);
            settings.WriteUnitTest                = Properties.Settings.Default.CodeGenWriteUnitTest;
            settings.WriteProjectFile             = Properties.Settings.Default.CodeGenWriteProjectFile;
            settings.IncludeViews                 = Properties.Settings.Default.CodeGenIncludeViews;
            settings.WriteCodeFirstIndexAttribute = Properties.Settings.Default.CodeGenWriteIndexAttribute;
            var cw = new CodeWriter(_databaseSchema, settings);

            try
            {
                cw.Execute(_directory);
                Message = @"Wrote to " + _directory.FullName;
                Result  = true;
                return;
            }
            catch (IOException exception)
            {
                Message =
                    @"An IO error occurred while opening the file.\n" + exception.Message;
            }
            catch (UnauthorizedAccessException exception)
            {
                Message =
                    @"The caller does not have the required permission or path is readonly.\n" + exception.Message;
            }
            Result = false;
        }
 public void RunCodeWriter()
 {
     if (_readProcedures)
     {
         var sprocRunner = new DatabaseSchemaReader.Procedures.ResultSetReader(_databaseSchema);
         sprocRunner.Execute();
     }
     var settings = new CodeWriterSettings { Namespace = _ns, CodeTarget = CodeTarget };
     //these have no UI, but the user can edit the config.
     settings.UseForeignKeyIdProperties = Properties.Settings.Default.CodeGenUseForeignKeyIdProperties;
     if (Properties.Settings.Default.CodeGenUsePluralizingNamer)
     {
         settings.Namer = new PluralizingNamer();
     }
     //if poco, write the sprocs - or if read the sprocs, we can generate
     settings.WriteStoredProcedures = (_readProcedures || CodeTarget == CodeTarget.Poco);
     settings.WriteUnitTest = Properties.Settings.Default.CodeGenWriteUnitTest;
     settings.WriteProjectFile = Properties.Settings.Default.CodeGenWriteProjectFile;
     settings.IncludeViews = Properties.Settings.Default.CodeGenIncludeViews;
     settings.WriteCodeFirstIndexAttribute = Properties.Settings.Default.CodeGenWriteIndexAttribute;
     var cw = new CodeWriter(_databaseSchema, settings);
     try
     {
         cw.Execute(_directory);
         Message = @"Wrote to " + _directory.FullName;
         Result = true;
         return;
     }
     catch (IOException exception)
     {
         Message =
             @"An IO error occurred while opening the file.\n" + exception.Message;
     }
     catch (UnauthorizedAccessException exception)
     {
         Message =
             @"The caller does not have the required permission or path is readonly.\n" + exception.Message;
     }
     Result = false;
 }
        public static string GenerateStoredProcedure(DatabaseStoredProcedure proc)
        {
            if (_procedureTemplate == null)
            {
                _procedureTemplate = ReadTemplate("storedProcedure");
            }
            var builder     = new StringBuilder(_procedureTemplate);
            var sprocRunner = new DatabaseSchemaReader.Procedures.ResultSetReader(proc.DatabaseSchema);

            sprocRunner.ExecuteProcedure(proc);
            var resultsets     = proc.ResultSets;
            var propertyString = "";

            if (resultsets.Count <= 0)
            {
                return(builder.Replace("$name$", proc.Name)
                       .Replace("$properties$", propertyString).ToString());
            }
            var properties = proc.ResultSets.First().Columns.Select(GenerateAutoPropertySp).ToList();

            propertyString = properties.Aggregate((c, n) => c + n);
            return(builder.Replace("$name$", proc.Name)
                   .Replace("$properties$", propertyString).ToString());
        }
Beispiel #5
0
        public void BuildProcedureCode(DatabaseSchema databaseSchema, DatabaseStoredProcedure databaseStoredProcedure)
        {
            try
            {
                //grab the data
                if (databaseStoredProcedure.ResultSets.Count == 0)
                {
                    //Delete sprocs won't have resultsets, so will get called multiple times
                    var sprocRunner = new DatabaseSchemaReader.Procedures.ResultSetReader(databaseSchema);
                    sprocRunner.ExecuteProcedure(databaseStoredProcedure);
                }

                //write it
                var sprocWriter = new ProcedureWriter(databaseStoredProcedure, "Domain");
                var txt = sprocWriter.Write();

                Clipboard.SetText(txt, TextDataFormat.UnicodeText);
            }
            catch (Exception exception)
            {
                Clipboard.SetText("//sorry, not available - " + exception.Message,
                    TextDataFormat.UnicodeText);
                Debug.WriteLine(exception.Message);
            }
        }