Ejemplo n.º 1
0
        public void GenerateUser_EmailRequered()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            UserEntity entity = generator.GenerateUser();
            string email = entity.Email;

            Assert.That(email, Is.Not.Empty);
        }
Ejemplo n.º 2
0
        public void GenerateUser_RegistrationDatePeriod()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            UserEntity entity = generator.GenerateUser();
            DateTime registrationDate = entity.RegistrationDate;

            Assert.That(registrationDate, Is.InRange(new DateTime(2010, 1, 1), new DateTime(2016, 2, 29)));
        }
Ejemplo n.º 3
0
        public void GenerateUser_LoginRequered()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            UserEntity entity = generator.GenerateUser();
            string login = entity.Login;

            Assert.That(login, Is.Not.Empty);
        }
Ejemplo n.º 4
0
        public void GenerateUser_PasswordRequered()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            UserEntity entity = generator.GenerateUser();
            string password = entity.Password;

            Assert.That(password, Is.Not.Empty);
        }
Ejemplo n.º 5
0
        public void GenerateUser_SurnameRequered()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            UserEntity entity = generator.GenerateUser();
            string surname = entity.Surname;

            Assert.That(surname, Is.Not.Empty);
        }
        private static ScriptGenerator ConfigureScriptGenerator(RMVersion version)
        {
            // make sure we have the output folder
            var fs = new FileSystem();

            fs.CreateDirectory(options.OutputFolder);

            var scriptGenerator = new ScriptGenerator(
                fs,
                new RMComponentRepository(options.ConnectionString, version),
                new RMUserRepository(options.ConnectionString, version),
                new RMDeployerToolRepository(options.ConnectionString, version),
                !options.CreateParameterizedScripts);

            // enable full logging
            scriptGenerator.ScriptGenerationNotification += PrintGeneratorEvents;
            ActionParser.ActionParsed       += PrintActionEvents;
            ContainerParser.ContainerParsed += PrintContainerEvents;
            return(scriptGenerator);
        }
Ejemplo n.º 7
0
        public RedisLink(ILoggerFactory loggerFactory,
                         IRedisConfiguration configuration,
                         IRedisMultiplexer multiplexer,
                         IResilience resilience,
                         IEntitySubscriber entitySubscriber,
                         IDataSerializer defaultSerialiser)
            : base(configuration?.ServiceName)
        {
            this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
            Multiplexer        = multiplexer ?? throw new ArgumentNullException(nameof(multiplexer));

            Resilience             = resilience ?? throw new ArgumentNullException(nameof(resilience));
            EntitySubscriber       = entitySubscriber;
            this.defaultSerialiser = defaultSerialiser ?? throw new ArgumentNullException(nameof(defaultSerialiser));
            log                     = loggerFactory.CreateLogger <RedisLink>();
            Generator               = new ScriptGenerator();
            IndexManager            = new MainIndexManager(new IndexManagerFactory(loggerFactory, this));
            Client                  = new RedisClient(loggerFactory?.CreateLogger <RedisClient>(), this, IndexManager);
            PersistencyRegistration = new PersistencyRegistrationHandler(loggerFactory, this);
        }
Ejemplo n.º 8
0
        private string GenerateScriptCore()
        {
            StringWriter scriptWriter = new StringWriter();

            try
            {
                ScriptGenerator scriptGenerator = new ScriptGenerator(scriptWriter, options, symbols);
                scriptGenerator.GenerateScript(symbols);
            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {
                scriptWriter.Flush();
            }

            return(scriptWriter.ToString());
        }
Ejemplo n.º 9
0
        public MSAst[] Transform(ScriptGenerator generator)
        {
            if (_arguments.Count == 0)
            {
                return(_emptyTransform);
            }

            if (_reordered != null)
            {
                throw new NotImplementedException();
            }

            var transformedArguments = new MSAst[_arguments.Count];

            for (var i = 0; i < _arguments.Count; i++)
            {
                transformedArguments[i] = _arguments[i].Value.Transform(generator);
            }

            return(transformedArguments);
        }
Ejemplo n.º 10
0
        public void GenerateUser_GetValueLine()
        {
            UserEntity user = new UserEntity()
            {
                Name             = "Петр",
                Surname          = "Петров",
                Patronymic       = "Петрович",
                Email            = "*****@*****.**",
                Login            = "******",
                Password         = "******",
                RegistrationDate = new DateTime(2016, 1, 1)
            };

            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            string expectedResult = @"VALUES ('Петр', 'Петров', 'Петрович', '*****@*****.**', 'petr', '12345', '20160101')";

            string result = generator.GetValueLine(user);

            Assert.That(result, Is.EqualTo(expectedResult));
        }
Ejemplo n.º 11
0
        public ActionResult Grid(string metaViewName,
                                 string renderTo, string version)
        {
            var dictionary = Request.Params.ToDictionary <string, string>();

            dictionary.Add("metaViewName", metaViewName);
            dictionary.Add("renderTo", renderTo);
            dictionary.Add("version", version);

            var res = ScriptGenerator.GenerateGrid(dictionary);

            if (String.IsNullOrEmpty(res))
            {
                return(new EmptyResult());
            }

            return(new JavaScriptResult
            {
                Script = res
            });
        }
        public void SchemaGeneration()
        {
            var scriptGenerator = new ScriptGenerator(
                pd => pd.Factory.CreateSchemaScriptBuilder(pd),
                new RdbmsStorageEntityDefinitionProvider(),
                new ScriptToStringConverter());

            var script = scriptGenerator.GetScripts(MappingConfiguration.GetTypeDefinitions()).Single();

            const string expectedSetUpScriptFragment =
                @"CREATE TABLE [dbo].[ClassWithRelations]
(
  [ID] uniqueidentifier NOT NULL,
  [ClassID] varchar (100) NOT NULL,
  [Timestamp] rowversion NOT NULL,
  [RelationWithoutInheritanceHierarchyID] uniqueidentifier NULL,
  [RelationWithInheritanceHierarchyID] uniqueidentifier NULL,
  [RelationWithInheritanceHierarchyIDClassID] varchar (100) NULL,";

            Assert.That(script.SetUpScript, Is.StringContaining(expectedSetUpScriptFragment));
        }
Ejemplo n.º 13
0
        static int Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Two parameters expected.");
                Console.WriteLine("SQLScriptCreator inputfile.xml outputdir");
                return(-1);
            }

            string fileName  = args[0];
            string outputDir = args[1];

            if (!File.Exists(fileName))
            {
                Console.WriteLine("Input file not found.");
                return(-1);
            }

            if (!Directory.Exists(outputDir))
            {
                Console.WriteLine("Output directory not found.");
                return(-1);
            }

            try
            {
                DDLFileParser     parser     = new DDLFileParser(fileName);
                List <IStatement> statements = parser.Parse();

                ScriptGenerator generator = new ScriptGenerator(statements, outputDir);
                generator.Generate();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(-1);
            }

            return(0);
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            Repository repository = new Repository();

            repository.Init();

            ScriptGenerator generator = new ScriptGenerator(repository);

            Stopwatch watch = new Stopwatch();

            watch.Start();

            ScriptWriter writer = new ScriptWriter(generator);

            writer.WriteAsync(@"D:\testScript.sql", 1000);

            watch.Stop();

            Console.WriteLine(watch.ElapsedMilliseconds);

            Console.ReadLine();
        }
Ejemplo n.º 15
0
        public override void Generate(bool overwrite)
        {
            var parameter = new Parameter()
            {
                ParentLayerType = ParentLayerType,
                LayerType       = LayerType,
                ClassName       = GeneratorWindow.SceneNameList[CurrentSceneNameIndex],
                SceneName       = GeneratorWindow.SceneNameList[CurrentSceneNameIndex],
                Overwrite       = overwrite,
            };

            parameter.Namespace = CreateNamespace(parameter);

            parameter.UsingList.Add("System");
            parameter.UsingList.Add("CAFU.Timeline.Data.Entity");
            parameter.UsingList.Add($"TimelineName = {this.CreateNamespacePrefix()}Application.Enumerate.TimelineName.{parameter.SceneName}");
            parameter.BaseClassName = "TimelineEntity<TimelineName>";

            var generator = new ScriptGenerator(parameter, CreateTemplatePath(TemplateType.Class, StructureName));

            generator.Generate(CreateOutputPath(parameter));
        }
        private static ScriptGenerator ConfigureScriptGenerator(RMVersion version)
        {
            PrintOnlyIfVerbose($"Generating the scripts for the workflow '{options.TemplateName}' stage '{options.TemplateStage}' into folder '{options.OutputFolder}'{Environment.NewLine}");

            // make sure we have the output folder
            var fs = new FileSystem();

            fs.CreateDirectory(options.OutputFolder);

            var scriptGenerator = new ScriptGenerator(
                fs,
                new RMComponentRepository(options.ConnectionString, version),
                new RMUserRepository(options.ConnectionString, version),
                new RMDeployerToolRepository(options.ConnectionString, version),
                !options.CreateParameterizedScripts);

            // enable full logging
            scriptGenerator.ScriptGenerationNotification += PrintGeneratorEvents;
            ActionParser.ActionParsed       += PrintActionEvents;
            ContainerParser.ContainerParsed += PrintContainerEvents;
            return(scriptGenerator);
        }
Ejemplo n.º 17
0
        public void SetUp()
        {
            try
            {
                var providers = new ProviderCollection <StorageProviderDefinition>();
                providers.Add(new RdbmsProviderDefinition("TheStorageProvider", new SqlStorageObjectFactory(), TestDomainConnectionString));
                var storageConfiguration = new StorageConfiguration(providers, providers["TheStorageProvider"]);

                DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration));

                SqlConnection.ClearAllPools();

                var scriptGenerator = new ScriptGenerator(
                    pd => pd.Factory.CreateSchemaScriptBuilder(pd),
                    new RdbmsStorageEntityDefinitionProvider(),
                    new ScriptToStringConverter());
                var scripts = scriptGenerator.GetScripts(MappingConfiguration.Current.GetTypeDefinitions()).Single();

                var masterAgent = new DatabaseAgent(MasterConnectionString);
                masterAgent.ExecuteBatchFile("Database\\CreateDB.sql", false, DatabaseConfiguration.GetReplacementDictionary());

                var databaseAgent = new DatabaseAgent(TestDomainConnectionString);
                databaseAgent.ExecuteBatchString(scripts.SetUpScript, true);

                using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
                {
                    DomainObjectIDs.ClassWithAllDataTypes1 = SampleObject.NewObject().ID;
                    DomainObjectIDs.ClassWithAllDataTypes2 = SampleObject.NewObject().ID;
                    ClientTransaction.Current.Commit();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("SetUpFixture failed: " + e);
                Console.WriteLine();
                throw;
            }
        }
Ejemplo n.º 18
0
        public async Task A_Valid_Folder_Structure_Is_Generated_For_A_Sequence_With_A_Server()
        {
            // Arrange
            var fs = new FakeFileSystem();
            var fakeComponentRepo = new FakeComponentRepo
            {
                Components =
                    new List <RMComponent>
                {
                    new RMComponent
                    {
                        Id = 3981,
                        WorkflowActivityId
                            =
                                Guid
                                .Parse(
                                    "a122e31d-9faa-4468-b09b-2ec09ea51567")
                    }
                }
            };

            var fakeUserRepo         = new FakeUserRepo();
            var fakeDeployerToolRepo = new FakeDeployerToolRepo();

            var gen     = new ScriptGenerator(fs, fakeComponentRepo, fakeUserRepo, fakeDeployerToolRepo);
            var testXml =
                @"<DeploymentSequenceActivity xmlns=""clr-namespace:Microsoft.TeamFoundation.Release.Workflow.Activities;assembly=Microsoft.TeamFoundation.Release.Workflow"" xmlns:mtrdm=""clr-namespace:Microsoft.TeamFoundation.Release.Data.Model;assembly=Microsoft.TeamFoundation.Release.Data"" xmlns:mva=""clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"" xmlns:p=""http://schemas.microsoft.com/netfx/2009/xaml/activities"" xmlns:sap=""http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"" xmlns:scg=""clr-namespace:System.Collections.Generic;assembly=mscorlib"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" DisplayName=""Deployment Sequence"" sap:VirtualizedContainerService.HintSize=""244.8,302.4"" mva:VisualBasic.Settings=""Assembly references and imported namespaces serialized as XML namespaces""><sap:WorkflowViewStateService.ViewState><scg:Dictionary x:TypeArguments=""x:String, x:Object""><x:Boolean x:Key=""IsExpanded"">True</x:Boolean></scg:Dictionary></sap:WorkflowViewStateService.ViewState><ServerActivity sap:VirtualizedContainerService.HintSize=""222.4,177.6"" InstanceSequenceNumber=""1"" ServerId=""19"" ServerName=""lab-dmann""><ActionActivity DisplayName=""Copy File or Folder"" sap:VirtualizedContainerService.HintSize=""200,52.8"" IsSkipped=""False"" WorkflowActivityId=""a122e31d-9faa-4468-b09b-2ec09ea51567""><ActionActivity.StageActivity><mtrdm:StageActivity ActivityDisplayName=""Copy File or Folder"" ApplyFullValidation=""False"" CanEditVariables=""True"" ComponentId=""3981"" HasPendingSecurityChanges=""False"" Id=""-835378"" IsDeletable=""True"" IsDirty=""True"" IsSerializing=""False"" IsTagBased=""0"" LinkedV2ComponentId=""0"" ServerId=""19"" ServerInstanceSequenceNumber=""1"" ServerName=""lab-dmann"" StatusId=""2"" StatusName=""Active"" WorkflowActivityId=""a122e31d-9faa-4468-b09b-2ec09ea51567""><mtrdm:StageActivity.Component><mtrdm:Component ActionTypeId=""2"" ActionTypeName=""Custom action"" ApplyFullValidation=""False"" CategoryId=""1998"" CategoryName=""Windows OS"" DeployerToolId=""0"" DeploymentMethod=""2013"" Description=""Copy file(s) or folder (wildcards can be used)"" HasPendingSecurityChanges=""False"" Id=""3981"" InMemoryStatus=""New"" IsDeletable=""True"" IsDirty=""False"" IsPublishedByMicrosoft=""True"" IsSerializing=""False"" Name=""Copy File or Folder"" StatusId=""2"" StatusName=""Active"" TeamFoundationServerId=""0"" TeamProjectCollectionId=""0"" Timeout=""5"" TypeId=""4"" TypeName=""Without source"" VariableReplacementModeId=""1"" Version=""2013""><mtrdm:Component.ConfigurationVariables><mtrdm:SortableObservableCollection x:TypeArguments=""mtrdm:ConfigurationVariable"" /></mtrdm:Component.ConfigurationVariables><mtrdm:Component.PropertyBagVariables><mtrdm:SortableObservableCollection x:TypeArguments=""mtrdm:ConfigurationVariable"" /></mtrdm:Component.PropertyBagVariables></mtrdm:Component></mtrdm:StageActivity.Component><mtrdm:StageActivity.Variables><mtrdm:ConfigurationVariable x:Name=""__ReferenceID0"" Id=""9950"" Name=""SourceFileFolder"" Value="""" /><mtrdm:ConfigurationVariable x:Name=""__ReferenceID1"" Id=""9951"" Name=""DestinationFileFolder"" Value="""" /></mtrdm:StageActivity.Variables></mtrdm:StageActivity></ActionActivity.StageActivity><ActionActivity.StageActivityVariables><x:Reference>__ReferenceID0</x:Reference><x:Reference>__ReferenceID1</x:Reference></ActionActivity.StageActivityVariables></ActionActivity></ServerActivity></DeploymentSequenceActivity>";
            var targetPath = @"C:\RMWorkflow\";

            // Act
            var sequence = (new RMDeploymentSequence {
                StageId = 100, WorkflowXaml = testXml
            }).ToReleaseTemplate();
            await gen.GenerateScriptAsync(sequence, targetPath);

            // Assert
            Assert.IsTrue(fs.Directories.Contains(@"C:\RMWorkflow\1_Server_lab-dmann"));
        }
Ejemplo n.º 19
0
        public MSAst::MemberBinding TransformMemberBinding(ScriptGenerator generator)
        {
            var memberInfo = (_target is PropertyExpression)
                                     ? (MemberInfo)((PropertyExpression)_target).PropertyInfo
                                     : ((FieldExpression)_target).FieldInfo;

            var collectionInitializer = _value as CollectionInitializerExpression;

            if (collectionInitializer != null)
            {
                var elementInitializers = collectionInitializer.Initializers
                                          .Cast <CollectionElementInitializer>()
                                          .Select(o => o.TransformInitializer(generator));

                return(MSAst::Expression.ListBind(
                           memberInfo,
                           elementInitializers));
            }

            return(MSAst::Expression.Bind(
                       memberInfo,
                       _value.Transform(generator)));
        }
Ejemplo n.º 20
0
        public override MSAst TransformCore(ScriptGenerator generator)
        {
            var transformedOperator = _operand.Transform(generator);

            if (transformedOperator.Type == _targetType.Type)
            {
                return(transformedOperator);
            }

            if (Type == TypeManager.CoreTypes.String)
            {
                return(MSAst.Call(
                           transformedOperator,
                           CommonMembers.ObjectToString));
            }

            return(generator.ConvertTo(
                       Type,
                       IsImplicitConversionRequired
                    ? ConversionResultKind.ImplicitCast
                    : ConversionResultKind.ExplicitCast,
                       transformedOperator));
        }
Ejemplo n.º 21
0
        public override void Generate(bool overwrite)
        {
            var parameter = new Parameter()
            {
                ParentLayerType = ParentLayerType.Presentation,
                LayerType       = LayerType.View,
                ClassName       = "Controller",
                SceneName       = GeneratorWindow.SceneNameList[CurrentSceneNameIndex],
                Overwrite       = overwrite,
            };

            parameter.Namespace = CreateNamespace(parameter);

            GeneratorWindow.GetAdditionalStructureExtensionDelegateList(LayerType)?.ToList().ForEach(x => x(parameter));

            parameter.UsingList.Add("CAFU.Core.Presentation.View");
            parameter.UsingList.Add($"{this.CreateNamespacePrefix()}{ParentLayerType.ToString()}.{LayerType.Presenter.ToString()}");

            var generator = new ScriptGenerator(parameter, CreateTemplatePath(TemplateType.Class, StructureName));

            generator.Generate(CreateOutputPath(parameter));

            new Presenter(CurrentSceneNameIndex, HasPresenterFactory).Generate(overwrite);
        }
        public override void Generate(bool overwrite)
        {
            var parameter = new Parameter()
            {
                ParentLayerType = ParentLayerType,
                LayerType       = LayerType,
                ClassName       = "MusicEntity",
                Overwrite       = overwrite,
            };

            parameter.Namespace = CreateNamespace(parameter);

            parameter.UsingList.Add("System");
            parameter.UsingList.Add("CAFU.Generics.Data.Entity");
            parameter.UsingList.Add("CAFU.Music.Data.Entity");
            parameter.UsingList.Add($"{this.CreateNamespacePrefix()}Application.Enumerate");
            parameter.UsingList.Add("UnityEngine");
            parameter.BaseClassName = "ScriptableObjectGenericEntity";
            parameter.ImplementsInterfaceList.Add("IMusicEntity<MusicName>");

            var generator = new ScriptGenerator(parameter, CreateTemplatePath(TemplateType.Class, StructureName));

            generator.Generate(CreateOutputPath(parameter));
        }
Ejemplo n.º 23
0
        public void AddingSystemVersioningWorks()
        {
            var databaseMigrator = new DatabaseMigrator();
            var configuration    = new NonVersionedConfiguration();
            var answerProvider   = new Mock <IAnswerProvider>();

            databaseMigrator.Execute(configuration, connectionString, "System.Data.SqlClient", Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <KeyValuePair <string, string> >(), answerProvider.Object);

            var versionedConfiguration = new VersionedConfiguration();
            var scriptGenerator        = new ScriptGenerator();
            var migrateScript          = scriptGenerator.Generate(versionedConfiguration, connectionString, "System.Data.SqlClient", Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <KeyValuePair <string, string> >(), answerProvider.Object);

            this.output.WriteLine(migrateScript);

            var databaseMigrator2 = new DatabaseMigrator();

            databaseMigrator2.Execute(versionedConfiguration, connectionString, "System.Data.SqlClient", Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <KeyValuePair <string, string> >(), answerProvider.Object);

            var scriptGenerator2 = new ScriptGenerator();
            var script           = scriptGenerator2.Generate(versionedConfiguration, connectionString, "System.Data.SqlClient", Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <KeyValuePair <string, string> >(), answerProvider.Object);

            this.output.WriteLine(script);
            Assert.True(string.IsNullOrWhiteSpace(script));
        }
Ejemplo n.º 24
0
        public void Run(Document document, int commandId)
        {
            try
            {
                #region Create currnet project item

                if (document == null || document.ProjectItem == null)
                {
                    return;
                }

                var projectName = document.ProjectItem.ContainingProject.FullName;
                if (string.IsNullOrWhiteSpace(projectName))
                {
                    return;
                }

                IItem item = new CurrentProjectItem(document.ProjectItem);

                #endregion


                #region Get VS edition and version

                var dte = (DTE2)VsServiceProvider.GetService(typeof(DTE));

                var vsEdition = dte.Edition;
                mVsVersions.TryGetValue(dte.Version, out string vsVersion);

                #endregion


                #region Generate powershell script

                string runModeParameters = ScriptGenerator.GetRunModeParamaters();
                string genericParameters = ScriptGenerator.GetGenericParamaters(commandId, vsEdition, vsVersion, false);

                CMakeBuilder cMakeBuilder = new CMakeBuilder();
                cMakeBuilder.Build();

                var vsSolution = SolutionInfo.IsOpenFolderModeActive() == false ?
                                 (IVsSolution)VsServiceProvider.GetService(typeof(SVsSolution)) : null;

                var itemRelatedParameters = ScriptGenerator.GetItemRelatedParameters(item);

                var psScript = JoinUtility.Join(" ", runModeParameters.Remove(runModeParameters.Length - 1), itemRelatedParameters, genericParameters, "'");

                #endregion


                #region PowerShell Invocation

                powerShell.Invoke(psScript, new RunningProcesses(true));

                #endregion

                cMakeBuilder.ClearBuildCashe();
            }
            catch (Exception)
            {
                //MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 25
0
 public void Write(ScriptGenerator generator)
 {
     Console.Out.Write(generator.GetOutput());
 }
Ejemplo n.º 26
0
 public override MSAst.Expression TransformCore(ScriptGenerator generator)
 {
     return(MSAst.Expression.Quote(Expression.Transform(generator)));
 }
Ejemplo n.º 27
0
        public void GenerateUser_GetInsertLine()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            string expectedResult = @"INSERT INTO BlogUser (Name, Surname, Patronymic, Email, UserLogin, Password, RegistrationDate)";

            string result = generator.GetInsertLine();

            Assert.That(result, Is.EqualTo(expectedResult));
        }
Ejemplo n.º 28
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            //reset working directory
            Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            //set culture
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

            var autoMapper  = new SimpleAutoMapper();
            var dataIO      = new DataIO();
            var messageBox  = new MessageBoxService();
            var mouseHook   = new MouseHook();
            var timerTool   = new TimerTool();
            var autoUpdater = new AutoUpdater(messageBox);
            var clipboard   = new ViewModelClipboard();
            var recent      = new RecentFileManager();
            var mtpManager  = new MTPManager();

            var DependencyDict = new Dictionary <Type, object>()
            {
                { typeof(SimpleAutoMapper), autoMapper },
                { typeof(MessageBoxService), messageBox },
                { typeof(ViewModelClipboard), clipboard },
            };

            var viewModelFactory = new ViewModelFactory(DependencyDict);

            (new ScriptGenerateBootstrap()).SetUp(out IActionToScriptFactory actionToScriptFactory, out IEmulatorToScriptFactory emulatorToScriptFactory);

            var settingVM           = new SettingViewModel(Settings.Default(), autoMapper, mtpManager);
            var macroManagerVM      = new MacroManagerViewModel(dataIO, messageBox, viewModelFactory, recent);
            var scriptApplyFactory  = new ScriptApplyBootStrap(messageBox, mtpManager).GetScriptApplyFactory();
            var scriptGenerator     = new ScriptGenerator(scriptApplyFactory, settingVM, messageBox, emulatorToScriptFactory, actionToScriptFactory);
            var scriptGeneratorVM   = new ScriptGeneratorViewModel(macroManagerVM, scriptGenerator, messageBox);
            var customActionManager = new CustomActionManager(macroManagerVM, viewModelFactory, dataIO, messageBox);

            var timerToolVM      = new TimerToolViewModel(mouseHook, timerTool);
            var resulutionTool   = new ResolutionConverterTool(viewModelFactory);
            var resolutionToolVM = new ResolutionConverterToolViewModel(resulutionTool, macroManagerVM, messageBox);
            var autoLocationVM   = new AutoLocationViewModel(new MouseHook(), new AutoLocation(), macroManagerVM);

            var mainWindowViewModel = new MainWindowViewModel(macroManagerVM, settingVM, autoUpdater, timerToolVM, resolutionToolVM, scriptGeneratorVM, customActionManager, autoLocationVM);

            MainWindow = new MainWindow
            {
                DataContext = mainWindowViewModel
            };

            //Handle arguments
            var agrs = Environment.GetCommandLineArgs();

            if (agrs.Length > 1)
            {
                var filepath = agrs.Where(s => s.Contains(".emm")).First();

                macroManagerVM.SetCurrentMacro(filepath, agrs.Any(s => s.Equals(StaticVariables.NO_SAVE_AGRS)));
            }

            // Select the text in a TextBox when it receives focus.
            EventManager.RegisterClassHandler(typeof(TextBox), TextBox.PreviewMouseLeftButtonDownEvent,
                                              new MouseButtonEventHandler(SelectivelyIgnoreMouseButton));
            EventManager.RegisterClassHandler(typeof(TextBox), TextBox.GotKeyboardFocusEvent,
                                              new RoutedEventHandler(SelectAllText));
            EventManager.RegisterClassHandler(typeof(TextBox), TextBox.MouseDoubleClickEvent,
                                              new RoutedEventHandler(SelectAllText));

            MainWindow.Show();
        }
Ejemplo n.º 29
0
 public static string GenerateScript(string className, string[] fieldTypeArr, string[] fieldNameArr)
 {
     return(ScriptGenerator.Generate(className, fieldTypeArr, fieldNameArr));
 }
Ejemplo n.º 30
0
    /// <summary>
    /// 处理一张表 Handle A table.
    /// </summary>
    /// <param name="result">Result.</param>
    public static bool HandleATable(DataTable result, string name)
    {
        string[]            types    = null;
        string[]            names    = null;
        string[]            bewrites = null;
        List <ConfigData[]> dataList = new List <ConfigData[]>();
        int index = 1;

        //开始读取
        while (excelReader.Read())
        {
            //这里读取的是每一行的数据
            string[] datas = new string[excelReader.FieldCount];
            for (int j = 0; j < excelReader.FieldCount; ++j)
            {
                datas[j] = excelReader.GetString(j);
            }
            //空行不处理
            if (datas.Length == 0 || string.IsNullOrEmpty(datas[0]))
            {
                ++index;
                continue;
            }
            //第几行表示类型
            if (index == PROPERTY_Type_LINE)
            {
                types = datas;
            }
            //第几行表示变量名
            else if (index == PROPERTY_Name_LINE)
            {
                names = datas;
            }
            //第几行表示描述
            else if (index == PROPERTY_Bewrite_LINE)
            {
                bewrites = datas;
            }
            //后面的表示数据
            else if (index > PROPERTY_Bewrite_LINE)
            {
                //把读取的数据和数据类型,名称保存起来,后面用来动态生成类
                List <ConfigData> configDataList = new List <ConfigData>();
                for (int j = 0; j < datas.Length; ++j)
                {
                    ConfigData data = new ConfigData();
                    data.Type    = types[j];
                    data.Name    = names[j];
                    data.Data    = datas[j];
                    data.Bewrite = bewrites[j];
                    if (string.IsNullOrEmpty(data.Type) || string.IsNullOrEmpty(data.Data))
                    {
                        continue;
                    }
                    configDataList.Add(data);
                }
                dataList.Add(configDataList.ToArray());
            }
            ++index;
        }
        string className = name;
        //根据刚才的数据来生成C#脚本
        ScriptGenerator generator = new ScriptGenerator(className, names, types, bewrites, cuncsurl);

        generator.Generate();
        AssetDatabase.Refresh();
        Type temp = Type.GetType(className);

        //    Assembly assembly = Assembly.GetAssembly(temp);
        //  object container = assembly.CreateInstance(className);
        Serialize(temp, dataList, cunbytesurl);
        return(true);
    }
Ejemplo n.º 31
0
        private void GenerateScriptCore(TextWriter writer)
        {
            ScriptGenerator scriptGenerator = new ScriptGenerator(writer, _options, this);

            scriptGenerator.GenerateScript(_symbols);
        }
Ejemplo n.º 32
0
        public void GenerateUser_GetValueLine()
        {
            UserEntity user = new UserEntity()
            {
                Name = "Петр",
                Surname = "Петров",
                Patronymic = "Петрович",
                Email = "*****@*****.**",
                Login = "******",
                Password = "******",
                RegistrationDate = new DateTime(2016, 1, 1)
            };

            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            string expectedResult = @"VALUES ('Петр', 'Петров', 'Петрович', '*****@*****.**', 'petr', '12345', '20160101')";

            string result = generator.GetValueLine(user);

            Assert.That(result, Is.EqualTo(expectedResult));
        }
        private static ScriptGenerator ConfigureScriptGenerator(RMVersion version)
        {
            PrintOnlyIfVerbose($"Generating the scripts for the workflow '{options.TemplateName}' stage '{options.TemplateStage}' into folder '{options.OutputFolder}'{Environment.NewLine}");

            // make sure we have the output folder
            var fs = new FileSystem();
            fs.CreateDirectory(options.OutputFolder);

            var scriptGenerator = new ScriptGenerator(
                fs,
                new RMComponentRepository(options.ConnectionString, version),
                new RMUserRepository(options.ConnectionString, version),
                new RMDeployerToolRepository(options.ConnectionString, version),
                !options.CreateParameterizedScripts);

            // enable full logging
            scriptGenerator.ScriptGenerationNotification += PrintGeneratorEvents;
            ActionParser.ActionParsed += PrintActionEvents;
            ContainerParser.ContainerParsed += PrintContainerEvents;
            return scriptGenerator;
        }
Ejemplo n.º 34
0
 public override System.Linq.Expressions.Expression TransformCore(ScriptGenerator generator)
 {
     return(System.Linq.Expressions.Expression.Constant(
                Type,
                typeof(Type)));
 }
Ejemplo n.º 35
0
 public override MSAst TransformCore(ScriptGenerator generator)
 {
     return(MSAst.Field(
                InstanceExpression.Transform(generator),
                FieldInfo));
 }
Ejemplo n.º 36
0
 private void WriteOverride(ScriptGenerator generator)
 {
     using (var writer = File.CreateText(this._fileName)) {
         writer.Write(generator.GetOutput());
     }
 }
Ejemplo n.º 37
0
 internal abstract AbstractStep AddStep(string name, string type, string description, ScriptGenerator generator, int index);
Ejemplo n.º 38
0
 public override System.Linq.Expressions.Expression TransformCore(ScriptGenerator generator)
 {
     return(_child.Transform(generator));
 }
Ejemplo n.º 39
0
        public void GenerateUser_CreateScript()
        {
            IScriptGenerator generator = new ScriptGenerator(new RepositoryMock());

            string expectedResult =
                @"INSERT INTO BlogUser (Name, Surname, Patronymic, Email, UserLogin, Password, RegistrationDate)" +
                Environment.NewLine +
                "VALUES ('Иван', 'Иванов', 'Иванович', '*****@*****.**', 'ivan', '12345', '20160101')";

            string result = generator.CreateScript(1);

            Assert.That(result, Is.EqualTo(expectedResult));
        }