Beispiel #1
0
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
            var dllPath = Assembly.GetExecutingAssembly().Location;

            this.authManager                 = new AuthenticationManager();
            this.arasDataProvider            = new ArasDataProvider(authManager);
            this.dialogFactory               = new DialogFactory(authManager, arasDataProvider);
            this.projectConfigurationManager = new ProjectConfigurationManager();
            this.projectManager              = new ProjectManager(this, dialogFactory);
            this.defaultCodeProvider         = new DefaultCodeProvider();
            this.codeProviderFactory         = new CodeProviderFactory(projectManager, defaultCodeProvider);

            Commands.OpenFromArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.OpenFromPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.CreateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.SaveToArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.SaveToPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.UpdateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.ConnectionInfoCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager);
            Commands.CreatePartialElementCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory);
            Commands.RefreshConfigCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager);
            Commands.DebugMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory);

            var dte = (DTE)this.GetService(typeof(DTE));

            this.projectItemsEvents = dte.Events.GetObject("CSharpProjectItemsEvents") as ProjectItemsEvents;
            if (this.projectItemsEvents != null)
            {
                this.projectItemsEvents.ItemRemoved += this.ProjectItemsEvents_ItemRemoved;
                this.projectItemsEvents.ItemRenamed += this.ProjectItemsEvents_ItemRenamed;
            }
        }
Beispiel #2
0
        public DialogFactory(IAuthenticationManager authManager,
                             IArasDataProvider arasDataProvider,
                             IVisualStudioServiceProvider serviceProvider,
                             IIOWrapper iOWrapper,
                             MessageManager messageManager)
        {
            if (authManager == null)
            {
                throw new ArgumentNullException(nameof(authManager));
            }
            if (arasDataProvider == null)
            {
                throw new ArgumentNullException(nameof(arasDataProvider));
            }
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }
            if (iOWrapper == null)
            {
                throw new ArgumentNullException(nameof(iOWrapper));
            }
            if (messageManager == null)
            {
                throw new ArgumentNullException(nameof(messageManager));
            }

            this.arasDataProvider = arasDataProvider;
            this.authManager      = authManager;
            this.serviceProvider  = serviceProvider;
            this.iOWrapper        = iOWrapper;
            this.messageManager   = messageManager;
        }
Beispiel #3
0
        public void Setup()
        {
            this.innovatorUser     = new InnovatorUser();
            this.serverConnection  = Substitute.For <IServerConnection>();
            this.innovatorInstance = new Innovator(this.serverConnection);
            this.iOMWrapper        = Substitute.For <IIOMWrapper>();

            this.authManager   = new AuthenticationManagerProxy(serverConnection, innovatorInstance, innovatorUser, iOMWrapper);
            this.dialogFactory = Substitute.For <IDialogFactory>();
            this.projectConfigurationManager = Substitute.For <IProjectConfigurationManager>();
            this.projectConfiguration        = Substitute.For <IProjectConfiguraiton>();
            this.messageManager      = Substitute.For <MessageManager>();
            this.packageManager      = new PackageManager(authManager, messageManager);
            this.arasDataProvider    = Substitute.For <IArasDataProvider>();
            this.methodInformation   = new MethodInfo();
            this.templateLoader      = new TemplateLoader();
            this.projectManager      = Substitute.For <IProjectManager>();
            this.codeProvider        = Substitute.For <ICodeProvider>();
            this.globalConfiguration = Substitute.For <IGlobalConfiguration>();

            this.globalConfiguration.GetUserCodeTemplatesPaths().Returns(new List <string>());

            this.serverConnection.When(x => x.CallAction("ApplyItem", Arg.Is <XmlDocument>(doc => doc.DocumentElement.Attributes["type"].Value == "Value"), Arg.Any <XmlDocument>()))
            .Do(x =>
            {
                (x[2] as XmlDocument).Load(Path.Combine(currentPath, @"Dialogs\ViewModels\TestData\ActionLocationsListValue.xml"));
            });

            this.serverConnection.When(x => x.CallAction("ApplyItem", Arg.Is <XmlDocument>(doc => doc.DocumentElement.Attributes["type"].Value == "Filter Value"), Arg.Any <XmlDocument>()))
            .Do(x =>
            {
                (x[2] as XmlDocument).Load(Path.Combine(currentPath, @"Dialogs\ViewModels\TestData\MethodTypesListFilterValue.xml"));
            });

            this.projectConfiguration.LastSavedSearch.Returns(new Dictionary <string, List <PropertyInfo> >());

            XmlDocument methodItemTypeAML = new XmlDocument();

            methodItemTypeAML.Load(Path.Combine(currentPath, @"Dialogs\ViewModels\TestData\MethodItemType.xml"));

            Item methodItemType = this.innovatorInstance.newItem();

            methodItemType.loadAML(methodItemTypeAML.OuterXml);

            this.arasDataProvider.GetMethodItemTypeInfo().Returns(new MethodItemTypeInfo(methodItemType, messageManager));

            this.createMethodViewModel = new CreateMethodViewModel(authManager,
                                                                   dialogFactory,
                                                                   projectConfiguration,
                                                                   templateLoader,
                                                                   packageManager,
                                                                   projectManager,
                                                                   arasDataProvider,
                                                                   codeProvider,
                                                                   globalConfiguration,
                                                                   messageManager);
        }
Beispiel #4
0
        public void Setup()
        {
            this.serverConnection = Substitute.For <IServerConnection>();
            this.innovator        = new Innovator(this.serverConnection);

            this.authManager   = new AuthenticationManagerProxy(this.serverConnection, innovator, new InnovatorUser(), Substitute.For <IIOMWrapper>());
            this.dialogFactory = Substitute.For <IDialogFactory>();
            IProjectConfiguraiton projectConfiguration = Substitute.For <IProjectConfiguraiton>();

            this.projectConfigurationManager = Substitute.For <IProjectConfigurationManager>();
            projectConfigurationManager.CurrentProjectConfiguraiton.Returns(projectConfiguration);
            this.messageManager    = Substitute.For <MessageManager>();
            this.packageManager    = new PackageManager(authManager, messageManager);
            this.arasDataProvider  = Substitute.For <IArasDataProvider>();
            this.methodInformation = new MethodInfo()
            {
                Package = new PackageInfo(string.Empty)
            };

            XmlDocument methodItemTypeXmlDocument = new XmlDocument();

            methodItemTypeXmlDocument.Load(Path.Combine(currentPath, @"Dialogs\ViewModels\TestData\MethodItemType.xml"));

            Item methodItem = this.innovator.newItem();

            methodItem.loadAML(methodItemTypeXmlDocument.OuterXml);
            MethodItemTypeInfo methodItemTypeInfo = new MethodItemTypeInfo(methodItem, messageManager);

            arasDataProvider.GetMethodItemTypeInfo().Returns(methodItemTypeInfo);

            List <ConnectionInfo> connectionInfos = new List <ConnectionInfo>()
            {
                new ConnectionInfo()
                {
                    Login          = "******",
                    Database       = "testDataBase",
                    ServerUrl      = "testServerUrl",
                    LastConnection = true
                }
            };

            projectConfiguration.Connections.Returns(connectionInfos);

            saveMethodViewModel = new SaveMethodViewModel(this.authManager,
                                                          this.dialogFactory,
                                                          this.projectConfigurationManager,
                                                          this.packageManager,
                                                          this.arasDataProvider,
                                                          this.methodInformation,
                                                          this.messageManager,
                                                          "methodCode",
                                                          "projectConfPath",
                                                          "projectName",
                                                          "projectFullName");
        }
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override async System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken, IProgress <ServiceProgressData> progress)
        {
            await base.InitializeAsync(cancellationToken, progress);

            // When initialized asynchronously, we *may* be on a background thread at this point.
            // Do any initialization that requires the UI thread after switching to the UI thread.
            // Otherwise, remove the switch to the UI thread if you don't need it.
            await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);

            IVisualStudioServiceProvider serviceProvider = new VisualStudioServiceProvider(this);

            this.messageManager = new VisualStudioMessageManager();
            this.iOWrapper      = new IOWrapper();
            this.projectConfigurationManager = new ProjectConfigurationManager(this.messageManager);
            this.vsPackageWrapper            = new VsPackageWrapper();
            this.projectManager   = new ProjectManager(serviceProvider, iOWrapper, vsPackageWrapper, messageManager, projectConfigurationManager);
            this.authManager      = new AuthenticationManager(messageManager, projectManager);
            this.arasDataProvider = new ArasDataProvider(authManager, messageManager);
            this.dialogFactory    = new DialogFactory(authManager, arasDataProvider, serviceProvider, iOWrapper, messageManager);
            ICodeFormatter codeFormatter = new VisualStudioCodeFormatter(this.projectManager);

            this.codeProviderFactory = new CodeProviderFactory(codeFormatter, messageManager, iOWrapper);
            this.globalConfiguration = new GlobalConfiguration(iOWrapper);
            this.projectUpdater      = new ProjectUpdater(this.iOWrapper);
            this.eventListener       = new EventListener(projectManager, projectUpdater, projectConfigurationManager, iOWrapper);
            this.openContextParser   = new OpenContextParser();
            this.methodOpener        = new MethodOpener(projectManager, dialogFactory, openContextParser, messageManager);

            Commands.OpenFromArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.OpenFromPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.CreateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, globalConfiguration, messageManager);
            Commands.SaveToArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.SaveToPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.UpdateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.ConnectionInfoCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, messageManager);
            Commands.CreateCodeItemCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.RefreshConfigCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, messageManager);
            Commands.DebugMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.MoveToCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.ImportOpenInVSActionCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);

            this.eventListener.StartListening();

            IVsAppCommandLine cmdLine = await GetServiceAsync(typeof(SVsAppCommandLine)) as IVsAppCommandLine;

            ErrorHandler.ThrowOnFailure(cmdLine.GetOption(OpenInVSConstants.ProtocolName, out int isPresent, out string openMethodRequest));
            if (isPresent == 1)
            {
                methodOpener.OpenMethodFromAras(openMethodRequest);
            }
        }
        public DialogFactory(IAuthenticationManager authManager, IArasDataProvider arasDataProvider)
        {
            if (authManager == null)
            {
                throw new ArgumentNullException(nameof(authManager));
            }
            if (arasDataProvider == null)
            {
                throw new ArgumentNullException(nameof(arasDataProvider));
            }

            this.arasDataProvider = arasDataProvider;
            this.authManager      = authManager;
        }
        public void Init()
        {
            serverConnection = Substitute.For <IServerConnection>();
            Innovator innovatorIns = new Innovator(serverConnection);

            this.authManager   = new AuthenticationManagerProxy(this.serverConnection, innovatorIns, new InnovatorUser(), Substitute.For <IIOMWrapper>());
            this.dialogFactory = Substitute.For <IDialogFactory>();
            this.projectConfigurationManager = Substitute.For <IProjectConfigurationManager>();
            this.projectConfiguration        = Substitute.For <IProjectConfiguraiton>();
            this.messageManager    = Substitute.For <MessageManager>();
            this.packageManager    = new PackageManager(this.authManager, this.messageManager);
            this.templateLoader    = new TemplateLoader();
            this.codeProvider      = Substitute.For <ICodeProvider>();
            this.projectManager    = Substitute.For <IProjectManager>();
            this.arasDataProvider  = Substitute.For <IArasDataProvider>();
            this.iOWrapper         = Substitute.For <IIOWrapper>();
            this.methodInformation = new MethodInfo()
            {
                MethodName = string.Empty,
                Package    = new PackageInfo(string.Empty)
            };

            this.projectConfiguration.LastSavedSearch.Returns(new Dictionary <string, List <PropertyInfo> >());

            XmlDocument methodItemTypeDoc = new XmlDocument();

            methodItemTypeDoc.Load(Path.Combine(currentPath, @"Dialogs\ViewModels\TestData\MethodItemType.xml"));

            Item methodItemType = innovatorIns.newItem();

            methodItemType.loadAML(methodItemTypeDoc.OuterXml);
            MethodItemTypeInfo methodItemTypeInfo = new MethodItemTypeInfo(methodItemType, messageManager);

            this.arasDataProvider.GetMethodItemTypeInfo().Returns(methodItemTypeInfo);

            string pathToFileForSave = Path.Combine(currentPath, @"Dialogs\ViewModels\TestData\MethodAml\ReturnNullMethodAml.xml");

            this.saveToPackageViewModel = new SaveToPackageViewModel(authManager,
                                                                     dialogFactory,
                                                                     projectConfiguration,
                                                                     templateLoader,
                                                                     packageManager,
                                                                     codeProvider,
                                                                     projectManager,
                                                                     arasDataProvider,
                                                                     iOWrapper,
                                                                     messageManager,
                                                                     methodInformation,
                                                                     pathToFileForSave);
        }
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override async System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken, IProgress <ServiceProgressData> progress)
        {
            await base.InitializeAsync(cancellationToken, progress);

            // When initialized asynchronously, we *may* be on a background thread at this point.
            // Do any initialization that requires the UI thread after switching to the UI thread.
            // Otherwise, remove the switch to the UI thread if you don't need it.
            await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);

            IVisualStudioServiceProvider serviceProvider = new VisualStudioServiceProvider(this);

            this.messageManager = new VisualStudioMessageManager();
            this.iOWrapper      = new IOWrapper();
            this.projectConfigurationManager = new ProjectConfigurationManager();
            this.vsPackageWrapper            = new VsPackageWrapper();
            this.projectManager   = new ProjectManager(serviceProvider, iOWrapper, vsPackageWrapper, messageManager, projectConfigurationManager);
            this.authManager      = new AuthenticationManager(messageManager, projectManager);
            this.arasDataProvider = new ArasDataProvider(authManager, messageManager);
            this.dialogFactory    = new DialogFactory(authManager, arasDataProvider, serviceProvider, iOWrapper, messageManager);
            ICodeFormatter codeFormatter = new VisualStudioCodeFormatter(this.projectManager);

            this.codeProviderFactory = new CodeProviderFactory(codeFormatter, messageManager, iOWrapper);
            this.globalConfiguration = new GlobalConfiguration(iOWrapper);

            Commands.OpenFromArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.OpenFromPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.CreateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, globalConfiguration, messageManager);
            Commands.SaveToArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.SaveToPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.UpdateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.ConnectionInfoCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, messageManager);
            Commands.CreateCodeItemCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.RefreshConfigCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, messageManager);
            Commands.DebugMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);
            Commands.MoveToCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager);

            var dte = (DTE)serviceProvider.GetService(typeof(DTE));

            this.projectItemsEvents = dte.Events.GetObject("CSharpProjectItemsEvents") as ProjectItemsEvents;
            if (this.projectItemsEvents != null)
            {
                this.projectItemsEvents.ItemRemoved += this.ProjectItemsEvents_ItemRemoved;
                this.projectItemsEvents.ItemRenamed += this.ProjectItemsEvents_ItemRenamed;
            }
        }
        public SaveMethodViewModel(
            IAuthenticationManager authManager,
            IDialogFactory dialogFactory,
            IProjectConfigurationManager projectConfigurationManager,
            PackageManager packageManager,
            IArasDataProvider arasDataProvider,
            MethodInfo methodInformation,
            MessageManager messageManager,
            string methodCode,
            string projectConfigPath,
            string projectName,
            string projectFullName)
        {
            if (authManager == null)
            {
                throw new ArgumentNullException(nameof(authManager));
            }
            if (dialogFactory == null)
            {
                throw new ArgumentNullException(nameof(dialogFactory));
            }
            if (projectConfigurationManager == null)
            {
                throw new ArgumentNullException(nameof(projectConfigurationManager));
            }
            if (packageManager == null)
            {
                throw new ArgumentNullException(nameof(packageManager));
            }
            if (arasDataProvider == null)
            {
                throw new ArgumentNullException(nameof(arasDataProvider));
            }
            if (methodInformation == null)
            {
                throw new ArgumentNullException(nameof(methodInformation));
            }
            if (messageManager == null)
            {
                throw new ArgumentNullException(nameof(messageManager));
            }

            this.authManager   = authManager;
            this.dialogFactory = dialogFactory;
            this.projectConfigurationManager = projectConfigurationManager;
            this.packageManager   = packageManager;
            this.arasDataProvider = arasDataProvider;
            this.messageManager   = messageManager;

            this.projectConfigPath = projectConfigPath;
            this.projectName       = projectName;
            this.projectFullName   = projectFullName;

            this.okCommand    = new RelayCommand <object>(OkCommandClick, IsEnabledOkButton);
            this.closeCommand = new RelayCommand <object>(OnCloseCliked);
            this.editConnectionInfoCommand = new RelayCommand <object>(EditConnectionInfoCommandClick);
            this.selectedIdentityCommand   = new RelayCommand(SelectedIdentityCommandClick);

            this.methodItemTypeInfo     = arasDataProvider.GetMethodItemTypeInfo();
            this.MethodNameMaxLength    = methodItemTypeInfo.NameStoredLength;
            this.MethodCommentMaxLength = methodItemTypeInfo.CommentsStoredLength;

            this.MethodComment     = methodInformation.MethodComment;
            this.innovatorMethodId = methodInformation.InnovatorMethodId;

            this.methodCode                = methodCode;
            this.methodType                = methodInformation.MethodType;
            this.methodLanguage            = methodInformation.MethodLanguage;
            this.templateName              = methodInformation.TemplateName;
            this.eventData                 = methodInformation.EventData.ToString();
            this.selectedIdentityKeyedName = methodInformation.ExecutionAllowedToKeyedName;
            this.selectedIdentityId        = methodInformation.ExecutionAllowedToId;
            this.selectedPackage           = methodInformation.Package.Name;
            this.MethodName                = methodInformation.MethodName;
            this.methodConfigId            = methodInformation.InnovatorMethodConfigId;

            //TODO: How to know current connection?
            ConnectionInformation = projectConfigurationManager.CurrentProjectConfiguraiton.Connections.First(c => c.LastConnection);
        }
        public SaveToPackageViewModel(
            IAuthenticationManager authManager,
            IDialogFactory dialogFactory,
            IProjectConfiguraiton projectConfiguration,
            TemplateLoader templateLoader,
            PackageManager packageManager,
            ICodeProvider codeProvider,
            IProjectManager projectManager,
            IArasDataProvider arasDataProvider,
            MethodInfo methodInformation,
            string pathToFileForSave)
        {
            if (authManager == null)
            {
                throw new ArgumentNullException(nameof(authManager));
            }
            if (dialogFactory == null)
            {
                throw new ArgumentNullException(nameof(dialogFactory));
            }
            if (projectConfiguration == null)
            {
                throw new ArgumentNullException(nameof(projectConfiguration));
            }
            if (templateLoader == null)
            {
                throw new ArgumentNullException(nameof(templateLoader));
            }
            if (packageManager == null)
            {
                throw new ArgumentNullException(nameof(packageManager));
            }
            if (codeProvider == null)
            {
                throw new ArgumentNullException(nameof(codeProvider));
            }
            if (projectManager == null)
            {
                throw new ArgumentNullException(nameof(projectManager));
            }
            if (arasDataProvider == null)
            {
                throw new ArgumentNullException(nameof(arasDataProvider));
            }
            if (methodInformation == null)
            {
                throw new ArgumentNullException(nameof(methodInformation));
            }

            this.authManager          = authManager;
            this.dialogFactory        = dialogFactory;
            this.projectConfiguration = projectConfiguration;
            this.templateLoader       = templateLoader;
            this.packageManager       = packageManager;
            this.projectManager       = projectManager;
            this.arasDataProvider     = arasDataProvider;
            this.MethodInformation    = methodInformation;

            this.folderBrowserCommand    = new RelayCommand <object>(OnFolderBrowserClick);
            this.okCommand               = new RelayCommand <object>(OkCommandClick, IsEnabledOkButton);
            this.closeCommand            = new RelayCommand <object>(OnCloseCliked);
            this.selectedIdentityCommand = new RelayCommand(SelectedIdentityCommandClick);

            string sourceCode = File.ReadAllText(pathToFileForSave, new UTF8Encoding(true));

            this.methodItemTypeInfo     = arasDataProvider.GetMethodItemTypeInfo();
            this.MethodNameMaxLength    = methodItemTypeInfo.NameStoredLength;
            this.MethodCommentMaxLength = methodItemTypeInfo.CommentsStoredLength;

            MethodComment             = MethodInformation.MethodComment;
            PackagePath               = projectConfiguration.LastSelectedDir;
            MethodName                = MethodInformation.MethodName;
            MethodCode                = codeProvider.LoadMethodCode(sourceCode, MethodInformation, projectManager.ServerMethodFolderPath);
            SelectedPackage           = MethodInformation.PackageName;
            selectedIdentityKeyedName = MethodInformation.ExecutionAllowedToKeyedName;
            selectedIdentityId        = MethodInformation.ExecutionAllowedToId;
        }
Beispiel #11
0
        public CreateMethodViewModel(
            IAuthenticationManager authenticationManager,
            IDialogFactory dialogFactory,
            IProjectConfiguraiton projectConfiguration,
            TemplateLoader templateLoader,
            PackageManager packageManager,
            IProjectManager projectManager,
            IArasDataProvider arasDataProvider,
            ICodeProvider codeProvider,
            IGlobalConfiguration userConfiguration,
            MessageManager messageManager)
        {
            if (authenticationManager == null)
            {
                throw new ArgumentNullException(nameof(authenticationManager));
            }
            if (dialogFactory == null)
            {
                throw new ArgumentNullException(nameof(dialogFactory));
            }
            if (projectConfiguration == null)
            {
                throw new ArgumentNullException(nameof(projectConfiguration));
            }
            if (templateLoader == null)
            {
                throw new ArgumentNullException(nameof(templateLoader));
            }
            if (packageManager == null)
            {
                throw new ArgumentNullException(nameof(packageManager));
            }
            if (projectManager == null)
            {
                throw new ArgumentNullException(nameof(projectManager));
            }
            if (arasDataProvider == null)
            {
                throw new ArgumentNullException(nameof(arasDataProvider));
            }
            if (codeProvider == null)
            {
                throw new ArgumentNullException(nameof(codeProvider));
            }
            if (userConfiguration == null)
            {
                throw new ArgumentNullException(nameof(userConfiguration));
            }
            if (messageManager == null)
            {
                throw new ArgumentNullException(nameof(messageManager));
            }

            this.authenticationManager = authenticationManager;
            this.dialogFactory         = dialogFactory;
            this.projectConfiguration  = projectConfiguration;
            this.templateLoader        = templateLoader;
            this.packageManager        = packageManager;
            this.projectManager        = projectManager;
            this.arasDataProvider      = arasDataProvider;
            this.codeProvider          = codeProvider;
            this.globalConfiguration   = userConfiguration;
            this.messageManager        = messageManager;
            this.isUseVSFormattingCode = projectConfiguration.UseVSFormatting;

            this.UserCodeTemplates        = LoadUserCodeTemplates();
            this.SelectedUserCodeTemplate = this.userCodeTemplates.First();

            this.methodItemTypeInfo     = arasDataProvider.GetMethodItemTypeInfo();
            this.MethodNameMaxLength    = methodItemTypeInfo.NameStoredLength;
            this.MethodCommentMaxLength = methodItemTypeInfo.CommentsStoredLength;

            actionLocations = new ObservableCollection <ListInfo>();
            foreach (var localtion in Utilities.Utils.GetValueListByName(authenticationManager.InnovatorInstance, "Action Locations"))
            {
                string value = localtion.getProperty("value", string.Empty);
                if (string.Equals(value, "client"))
                {
                    continue;
                }

                actionLocations.Add(new ListInfo(value, localtion.getProperty("label", string.Empty)));
            }

            allLanguages = new List <FilteredListInfo>();
            foreach (var language in Utilities.Utils.GetFilterValueListByName(authenticationManager.InnovatorInstance, "Method Types"))
            {
                string value  = language.getProperty("value");
                string label  = language.getProperty("label");
                string filter = language.getProperty("filter");

                if (string.Equals(filter, "server", StringComparison.CurrentCultureIgnoreCase) && !string.Equals(value, this.codeProvider.Language, StringComparison.CurrentCultureIgnoreCase))
                {
                    continue;
                }

                allLanguages.Add(new FilteredListInfo(value, label, filter));
            }

            SelectedActionLocation = actionLocations.First(al => string.Equals(al.Value.ToLowerInvariant(), "server"));

            okCommand                     = new RelayCommand <object>(OnOkClick, IsEnabledOkButton);
            cancelCommand                 = new RelayCommand <object>(OnCancelClick);
            closeCommand                  = new RelayCommand <object>(OnCloseCliked);
            selectedIdentityCommand       = new RelayCommand(SelectedIdentityCommandClick);
            browseCodeTemplateCommand     = new RelayCommand(BrowseCodeTemplateCommandClick);
            deleteUserCodeTemplateCommand = new RelayCommand <KeyValuePair <string, XmlMethodInfo> >(DeleteUserCodeTemplateCommandClick);

            SelectedEventSpecificData = EventSpecificData.First();
        }
Beispiel #12
0
        public SaveToPackageViewModel(
            IAuthenticationManager authManager,
            IDialogFactory dialogFactory,
            IProjectConfiguraiton projectConfiguration,
            TemplateLoader templateLoader,
            PackageManager packageManager,
            ICodeProvider codeProvider,
            IProjectManager projectManager,
            IArasDataProvider arasDataProvider,
            IIOWrapper iOWrapper,
            MessageManager messageManager,
            MethodInfo methodInformation,
            string sourceCode)
        {
            if (authManager == null)
            {
                throw new ArgumentNullException(nameof(authManager));
            }
            if (dialogFactory == null)
            {
                throw new ArgumentNullException(nameof(dialogFactory));
            }
            if (projectConfiguration == null)
            {
                throw new ArgumentNullException(nameof(projectConfiguration));
            }
            if (templateLoader == null)
            {
                throw new ArgumentNullException(nameof(templateLoader));
            }
            if (packageManager == null)
            {
                throw new ArgumentNullException(nameof(packageManager));
            }
            if (codeProvider == null)
            {
                throw new ArgumentNullException(nameof(codeProvider));
            }
            if (projectManager == null)
            {
                throw new ArgumentNullException(nameof(projectManager));
            }
            if (arasDataProvider == null)
            {
                throw new ArgumentNullException(nameof(arasDataProvider));
            }
            if (iOWrapper == null)
            {
                throw new ArgumentNullException(nameof(iOWrapper));
            }
            if (messageManager == null)
            {
                throw new ArgumentNullException(nameof(messageManager));
            }
            if (methodInformation == null)
            {
                throw new ArgumentNullException(nameof(methodInformation));
            }

            this.authManager          = authManager;
            this.dialogFactory        = dialogFactory;
            this.projectConfiguration = projectConfiguration;
            this.templateLoader       = templateLoader;
            this.packageManager       = packageManager;
            this.projectManager       = projectManager;
            this.arasDataProvider     = arasDataProvider;
            this.iOWrapper            = iOWrapper;
            this.messageManager       = messageManager;
            this.MethodInformation    = methodInformation;

            this.folderBrowserCommand    = new RelayCommand <object>(OnFolderBrowserClick);
            this.okCommand               = new RelayCommand <object>(OkCommandClick, IsEnabledOkButton);
            this.closeCommand            = new RelayCommand <object>(OnCloseCliked);
            this.selectedIdentityCommand = new RelayCommand(SelectedIdentityCommandClick);

            this.methodItemTypeInfo     = arasDataProvider.GetMethodItemTypeInfo();
            this.MethodNameMaxLength    = methodItemTypeInfo.NameStoredLength;
            this.MethodCommentMaxLength = methodItemTypeInfo.CommentsStoredLength;

            MethodComment = MethodInformation.MethodComment;
            PackagePath   = projectConfiguration.LastSelectedDir;
            MethodName    = MethodInformation.MethodName;

            string packageMethodFolderPath = projectConfiguration.UseCommonProjectStructure ? methodInformation.Package.MethodFolderPath : string.Empty;
            string methodWorkingFolder     = Path.Combine(projectManager.ServerMethodFolderPath, packageMethodFolderPath, methodInformation.MethodName);

            MethodCode                = codeProvider.LoadMethodCode(methodWorkingFolder, sourceCode);
            SelectedPackage           = MethodInformation.Package.Name;
            selectedIdentityKeyedName = MethodInformation.ExecutionAllowedToKeyedName;
            selectedIdentityId        = MethodInformation.ExecutionAllowedToId;
        }