Exemple #1
0
        public TelemetryHelper(ConnectedServiceProviderContext context)
        {
            this.isOptedIn = TelemetryHelper.InitializeIsOptedIn();

            try
            {
                if (this.isOptedIn)
                {
                    // Add the anonymous user data to the context.
                    string userName = System.Environment.UserName;
                    string fqdnName = TelemetryHelper.GetFQDN();

                    string uniqueUserRaw = string.Join("@", userName, fqdnName).ToLowerInvariant();
                    string safeUserId    = TelemetryHelper.GetHashSha256(uniqueUserRaw);

                    string userDnsDomain = TelemetryHelper.GetUserDnsDomain();
                    string safeDomain    = TelemetryHelper.GetHashSha256(userDnsDomain);

                    this.TelemetryClient.Context.User.Id        = safeUserId;
                    this.TelemetryClient.Context.User.AccountId = safeDomain;

                    // Add the common properties/measurements to the context.
                    this.TelemetryClient.Context.Properties.Add(
                        TelemetryHelper.ProjectTypeDataName, ProjectHelper.GetCapabilities(context.ProjectHierarchy));
                    this.TelemetryClient.Context.Properties.Add(
                        TelemetryHelper.IsUpdatingName, context.IsUpdating.ToString());
                }
            }
            catch (Exception e) // Don't let a telemetry failure take down the provider
            {
                Debug.Fail(e.ToString());
            }
        }
        public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            SinglePageViewModel configurator = new SinglePageViewModel();
            configurator.Context = context;

            return Task.FromResult(configurator as ConnectedServiceConfigurator);
        }
        public SelectWebHooksWizardPage(ConnectedServiceProviderContext context,
                                        ConnectedServiceInstance instance)
        {
            // set up the configuration dialog
            Title               = Resources.SelectWebHooksPageTitle;
            Description         = Resources.SelectWebHooksPageDescription;
            Legend              = Resources.SelectWebHooksPageLegend;
            SelectWebHooksLabel = Resources.SelectWebHooksPageDescription;
            Context             = context;
            Instance            = instance;

            WebHookReceiverOptions = new ObservableCollection <WebHookReceiverOption>();

            // load up the view
            View = new Views.SelectWebHooksWizardPageView
            {
                DataContext = this
            };

            // handle properties changing and user input
            WebHookReceiverOptions.CollectionChanged += WebHookReceiverOptions_CollectionChanged;

            // load the receiver options from the JSON file
            LoadReceiverOptions();
        }
        public SelectWebHooksWizardPage(ConnectedServiceProviderContext context,
            ConnectedServiceInstance instance)
        {
            // set up the configuration dialog
            Title = Resources.SelectWebHooksPageTitle;
            Description = Resources.SelectWebHooksPageDescription;
            Legend = Resources.SelectWebHooksPageLegend;
            SelectWebHooksLabel = Resources.SelectWebHooksPageDescription;
            Context = context;
            Instance = instance;

            WebHookReceiverOptions = new ObservableCollection<WebHookReceiverOption>();

            // load up the view
            View = new Views.SelectWebHooksWizardPageView
            {
                DataContext = this
            };

            // handle properties changing and user input
            WebHookReceiverOptions.CollectionChanged += WebHookReceiverOptions_CollectionChanged;

            // load the receiver options from the JSON file
            LoadReceiverOptions();
        }
 public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
 {
     ServiceWizard wizard = new ServiceWizard();
     wizard.Context = context;
     wizard.Initialize();
     return Task.FromResult<ConnectedServiceConfigurator>(wizard);
 }
        public TelemetryHelper(ConnectedServiceProviderContext context)
        {
            this.isOptedIn = TelemetryHelper.InitializeIsOptedIn();

            try
            {
                if (this.isOptedIn)
                {
                    // Add the anonymous user data to the context.
                    string userName = System.Environment.UserName;
                    string fqdnName = TelemetryHelper.GetFQDN();

                    string uniqueUserRaw = string.Join("@", userName, fqdnName).ToLowerInvariant();
                    string safeUserId = TelemetryHelper.GetHashSha256(uniqueUserRaw);

                    string userDnsDomain = TelemetryHelper.GetUserDnsDomain();
                    string safeDomain = TelemetryHelper.GetHashSha256(userDnsDomain);

                    this.TelemetryClient.Context.User.Id = safeUserId;
                    this.TelemetryClient.Context.User.AccountId = safeDomain;

                    // Add the common properties/measurements to the context.
                    this.TelemetryClient.Context.Properties.Add(
                        TelemetryHelper.ProjectTypeDataName, ProjectHelper.GetCapabilities(context.ProjectHierarchy));
                    this.TelemetryClient.Context.Properties.Add(
                        TelemetryHelper.IsUpdatingName, context.IsUpdating.ToString());
                }
            }
            catch (Exception e) // Don't let a telemetry failure take down the provider
            {
                Debug.Fail(e.ToString());
            }
        }
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ServiceWizard wizard = new ServiceWizard();

            wizard.Context = context;
            wizard.Initialize();
            return(Task.FromResult <ConnectedServiceConfigurator>(wizard));
        }
Exemple #8
0
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            SinglePageViewModel configurator = new SinglePageViewModel();

            configurator.Context = context;

            return(Task.FromResult(configurator as ConnectedServiceConfigurator));
        }
        public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceInstance instance = new ConnectedServiceInstance();
            ConnectedServiceConfigurator configurator = new AddWebHookWizard(context, instance);
            TelemetryWrapper.Refresh();

            return Task.FromResult(configurator);
        }
        public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            SinglePageViewModel configurator = new SinglePageViewModel();
            configurator.Context = context;
            // Initialize viewmodel with the update functionality, based on the context
            configurator.Initialize();

            return Task.FromResult(configurator as ConnectedServiceConfigurator);
        }
Exemple #11
0
 public AddWebHookWizard(ConnectedServiceProviderContext context,
                         ConnectedServiceInstance instance)
 {
     Context  = context;
     Instance = instance;
     Pages.Add(new SelectWebHooksWizardPage(context, instance));
     Pages.Add(new AddConfigurationSettingsWizardPage(context, instance));
     IsNextEnabled = false;
 }
 public AddWebHookWizard(ConnectedServiceProviderContext context,
     ConnectedServiceInstance instance)
 {
     Context = context;
     Instance = instance;
     Pages.Add(new SelectWebHooksWizardPage(context,instance));
     Pages.Add(new AddConfigurationSettingsWizardPage(context, instance));
     IsNextEnabled = false;
 }
Exemple #13
0
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            SinglePageViewModel configurator = new SinglePageViewModel();

            configurator.Context = context;
            // Initialize viewmodel with the update functionality, based on the context
            configurator.Initialize();

            return(Task.FromResult(configurator as ConnectedServiceConfigurator));
        }
        public Wizard(ConnectedServiceProviderContext context)
        {
            this.context = context;
            Pages.Add(new JsonDetailsWizardPage(context));

            foreach (var page in Pages)
            {
                page.PropertyChanged += this.OnPagePropertyChanged;
            }
        }
Exemple #15
0
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceInstance     instance     = new ConnectedServiceInstance();
            ConnectedServiceConfigurator configurator = new AddWebHookWizard(context, instance);

            TelemetryWrapper.Refresh();
            TelemetryWrapper.RecordEvent("WebHook Experience Started");

            return(Task.FromResult(configurator));
        }
Exemple #16
0
        public Wizard(ConnectedServiceProviderContext context)
        {
            Context = context;

            Pages.Add(new ServiceEndpointWizardPage(Context));
            Pages.Add(new SettingsWizardPage(Context));

            foreach (var page in Pages)
            {
                page.PropertyChanged += OnPagePropertyChanged;
            }
        }
        public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceInstance instance = new ConnectedServiceInstance();

            var wizard = new WizardViewModel();
            wizard.Pages.Add(new SelectApiAppViewModel(context, instance));
            wizard.Pages.Add(new ApiManagementIngestViewModel(context, instance));

            ConnectedServiceConfigurator configurator = wizard as ConnectedServiceConfigurator;

            return Task.FromResult(configurator);
        }
        public SalesforceConnectedServiceWizard(ConnectedServiceProviderContext context, VisualStudioWorkspace visualStudioWorkspace)
        {
            this.context = context;
            this.visualStudioWorkspace = visualStudioWorkspace;

            this.telemetryHelper = new TelemetryHelper(context);
            this.telemetryHelper.TrackWizardStartedEvent();

            this.userSettings = UserSettings.Load(context.Logger);

            this.InitializePages();
        }
        public SalesforceConnectedServiceWizard(ConnectedServiceProviderContext context, VisualStudioWorkspace visualStudioWorkspace)
        {
            this.context = context;
            this.visualStudioWorkspace = visualStudioWorkspace;

            this.telemetryHelper = new TelemetryHelper(context);
            this.telemetryHelper.TrackWizardStartedEvent();

            this.userSettings = UserSettings.Load(context.Logger);

            this.InitializePages();
        }
Exemple #20
0
        public Wizard(ConnectedServiceProviderContext context)
        {
            Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();
            this.Context                  = context;
            this.ProjectPath              = context.ProjectHierarchy?.GetProject().Properties.Item("FullPath").Value.ToString();
            this.UserSettings             = UserSettings.Load(context.Logger);
            this.UserSettings.ProjectPath = this.ProjectPath;

            if (this.Context.IsUpdating)
            {
                this.UserSettings.SetFromServiceConfiguration(context.GetExtendedDesignerData <ServiceConfiguration>());
            }

            ConfigOpenApiEndpointViewModel    = new ConfigOpenApiEndpointViewModel(this.UserSettings, this);
            CSharpClientSettingsViewModel     = new CSharpClientSettingsViewModel();
            TypeScriptClientSettingsViewModel = new TypeScriptClientSettingsViewModel();
            CSharpControllerSettingsViewModel = new CSharpControllerSettingsViewModel();

            if (this.Context.IsUpdating)
            {
                var serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfiguration>();
                ConfigOpenApiEndpointViewModel.Endpoint    = serviceConfig.Endpoint;
                ConfigOpenApiEndpointViewModel.ServiceName = serviceConfig.ServiceName;
                ConfigOpenApiEndpointViewModel.UseWebProxy = serviceConfig.UseWebProxy;
                ConfigOpenApiEndpointViewModel.NetworkCredentialsDomain           = serviceConfig.NetworkCredentialsDomain;
                ConfigOpenApiEndpointViewModel.NetworkCredentialsUserName         = serviceConfig.NetworkCredentialsUserName;
                ConfigOpenApiEndpointViewModel.NetworkCredentialsPassword         = serviceConfig.NetworkCredentialsPassword;
                ConfigOpenApiEndpointViewModel.WebProxyNetworkCredentialsDomain   = serviceConfig.WebProxyNetworkCredentialsDomain;
                ConfigOpenApiEndpointViewModel.WebProxyNetworkCredentialsUserName = serviceConfig.WebProxyNetworkCredentialsUserName;
                ConfigOpenApiEndpointViewModel.WebProxyNetworkCredentialsPassword = serviceConfig.WebProxyNetworkCredentialsPassword;
                ConfigOpenApiEndpointViewModel.UseNetworkCredentials = serviceConfig.UseNetworkCredentials;
                ConfigOpenApiEndpointViewModel.WebProxyUri           = serviceConfig.WebProxyUri;
                ConfigOpenApiEndpointViewModel.Description           =
                    "An OpenAPI (Swagger) specification endpoint and generation options was regenerated";
                if (ConfigOpenApiEndpointViewModel.View is ConfigOpenApiEndpoint сonfigOpenApiEndpoint)
                {
                    //сonfigOpenApiEndpoint.Endpoint.IsEnabled = false;
                    //сonfigOpenApiEndpoint.ServiceName.IsEnabled = false;
                }

                CSharpClientSettingsViewModel.Command = serviceConfig.OpenApiToCSharpClientCommand;
                CSharpClientSettingsViewModel.ExcludeTypeNamesLater = serviceConfig.ExcludeTypeNamesLater;
                CSharpClientSettingsViewModel.Description           = "Settings for generating CSharp client (regenerated)";
                TypeScriptClientSettingsViewModel.Command           = serviceConfig.OpenApiToTypeScriptClientCommand;
                TypeScriptClientSettingsViewModel.Description       = "Settings for generating TypeScript client (regenerated)";
                CSharpControllerSettingsViewModel.Command           = serviceConfig.OpenApiToCSharpControllerCommand;
                CSharpControllerSettingsViewModel.Description       = "Settings for generating CSharp controller (regenerated)";
            }

            this.Pages.Add(ConfigOpenApiEndpointViewModel);
            this.IsFinishEnabled = true;
        }
Exemple #21
0
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceInstance instance = new ConnectedServiceInstance();

            var wizard = new WizardViewModel();

            wizard.Pages.Add(new SelectApiAppViewModel(context, instance));
            wizard.Pages.Add(new ApiManagementIngestViewModel(context, instance));

            ConnectedServiceConfigurator configurator = wizard as ConnectedServiceConfigurator;

            return(Task.FromResult(configurator));
        }
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.userSettings = UserSettings.Load(context.Logger);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.userSettings);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel();

            if (this.Context.IsUpdating)
            {
                //Since ServiceConfigurationV4 is a derived type of ServiceConfiguration. So we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
                ServiceConfigurationV4 serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfigurationV4>();
                ConfigODataEndpointViewModel.Endpoint          = serviceConfig.Endpoint;
                ConfigODataEndpointViewModel.EdmxVersion       = serviceConfig.EdmxVersion;
                ConfigODataEndpointViewModel.ServiceName       = serviceConfig.ServiceName;
                ConfigODataEndpointViewModel.CustomHttpHeaders = serviceConfig.CustomHttpHeaders;
                var configODataEndpoint = (ConfigODataEndpointViewModel.View as ConfigODataEndpoint);
                configODataEndpoint.IsEnabled = false;

                //Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += (sender, args) =>
                {
                    var advancedSettingsViewModel = sender as AdvancedSettingsViewModel;
                    if (advancedSettingsViewModel != null)
                    {
                        AdvancedSettings advancedSettings = advancedSettingsViewModel.View as AdvancedSettings;

                        advancedSettingsViewModel.GeneratedFileName        = serviceConfig.GeneratedFileNamePrefix;
                        advancedSettings.ReferenceFileName.IsEnabled       = false;
                        advancedSettingsViewModel.UseNamespacePrefix       = serviceConfig.UseNameSpacePrefix;
                        advancedSettingsViewModel.NamespacePrefix          = serviceConfig.NamespacePrefix;
                        advancedSettingsViewModel.UseDataServiceCollection = serviceConfig.UseDataServiceCollection;
                        advancedSettingsViewModel.GenerateMultipleFiles    = serviceConfig.GenerateMultipleFiles;
                        advancedSettings.GenerateMultipleFiles.IsEnabled   = false;

                        if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                        {
                            advancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes = serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                            advancedSettingsViewModel.EnableNamingAlias = serviceConfig.EnableNamingAlias;
                            advancedSettingsViewModel.IncludeT4File     = serviceConfig.IncludeT4File;
                            advancedSettingsViewModel.MakeTypesInternal = serviceConfig.MakeTypesInternal;
                            advancedSettings.IncludeT4File.IsEnabled    = false;
                        }
                    }
                };
            }

            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);
            this.IsFinishEnabled = true;
        }
        public Wizard(ConnectedServiceProviderContext context)
        {
            this.Context = context;

            ThreadHelper.JoinableTaskFactory.Run(async delegate {
                await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
                this.UserSettings = await UserSettings.LoadAsync(context.Logger);
            });

            ConfigDynamics365EndpointViewModel = new ConfigDynamics365EndpointViewModel(this.UserSettings, this);

            if (this.Context.IsUpdating)
            {
                var serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfiguration>();
                ConfigDynamics365EndpointViewModel.Endpoint                       = serviceConfig.Endpoint;
                ConfigDynamics365EndpointViewModel.ServiceName                    = serviceConfig.ServiceName;
                ConfigDynamics365EndpointViewModel.EnableDebugMode                = serviceConfig.EnableDebugMode;
                ConfigDynamics365EndpointViewModel.AddClientNuGet                 = serviceConfig.AddClientNuGet;
                ConfigDynamics365EndpointViewModel.LanguageOption                 = serviceConfig.LanguageOption;
                ConfigDynamics365EndpointViewModel.UseInteractiveLogin            = serviceConfig.UseInteractiveLogin;
                ConfigDynamics365EndpointViewModel.Namespace                      = serviceConfig.Namespace;
                ConfigDynamics365EndpointViewModel.ConnectionString               = serviceConfig.ConnectionString;
                ConfigDynamics365EndpointViewModel.UseOAuth                       = serviceConfig.UseOAuth;
                ConfigDynamics365EndpointViewModel.UseConnectionString            = serviceConfig.UseConnectionString;
                ConfigDynamics365EndpointViewModel.ServiceContextName             = serviceConfig.ServiceContextName;
                ConfigDynamics365EndpointViewModel.GenerateMessages               = serviceConfig.GenerateMessages;
                ConfigDynamics365EndpointViewModel.MessageNamespace               = serviceConfig.MessageNamespace;
                ConfigDynamics365EndpointViewModel.GenerateCustomActions          = serviceConfig.GenerateCustomActions;
                ConfigDynamics365EndpointViewModel.CustomizeCodeDomService        = serviceConfig.CustomizeCodeDomService;
                ConfigDynamics365EndpointViewModel.CodeWriterFilterService        = serviceConfig.CodeWriterFilterService;
                ConfigDynamics365EndpointViewModel.CodeWriterMessageFilterService = serviceConfig.CodeWriterMessageFilterService;
                ConfigDynamics365EndpointViewModel.MetadataProviderService        = serviceConfig.MetadataProviderService;
                ConfigDynamics365EndpointViewModel.MetadataProviderQueryService   = serviceConfig.MetadataProviderQueryService;
                ConfigDynamics365EndpointViewModel.CodeGenerationService          = serviceConfig.CodeGenerationService;
                ConfigDynamics365EndpointViewModel.NamingService                  = serviceConfig.NamingService;
                ConfigDynamics365EndpointViewModel.NetworkCredentialsDomain       = serviceConfig.NetworkCredentialsDomain;
                ConfigDynamics365EndpointViewModel.NetworkCredentialsUserName     = serviceConfig.NetworkCredentialsUserName;
                ConfigDynamics365EndpointViewModel.NetworkCredentialsPassword     = serviceConfig.NetworkCredentialsPassword;
                ConfigDynamics365EndpointViewModel.UseNetworkCredentials          = serviceConfig.UseNetworkCredentials;
                ConfigDynamics365EndpointViewModel.Description                    = "An Dynamics 365 service endpoint and generation options was regenerated";
                if (ConfigDynamics365EndpointViewModel.View is ConfigDynamics365Endpoint сonfigDynamics365Endpoint)
                {
                    //сonfigOpenApiEndpoint.Endpoint.IsEnabled = false;
                    //сonfigOpenApiEndpoint.ServiceName.IsEnabled = false;
                }
            }

            this.Pages.Add(ConfigDynamics365EndpointViewModel);
            this.IsFinishEnabled = true;
        }
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            this.Context = context;
            this.Project = ProjectHelper.GetProjectFromHierarchy(this.Context.ProjectHierarchy);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel();

            AdvancedSettingsViewModel = new AdvancedSettingsViewModel();
            AdvancedSettingsViewModel.NamespacePrefix = ProjectHelper.GetProjectNamespace(this.Project);
            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);

            this.IsFinishEnabled = true;
        }
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.Project      = ProjectHelper.GetProjectFromHierarchy(this.Context.ProjectHierarchy);
            this.userSettings = UserSettings.Load(context.Logger);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.userSettings);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel();
            AdvancedSettingsViewModel.NamespacePrefix = ProjectHelper.GetProjectNamespace(this.Project);
            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);

            this.IsFinishEnabled = true;
        }
Exemple #26
0
 public AddConfigurationSettingsWizardPage(ConnectedServiceProviderContext context,
                                           ConnectedServiceInstance instance)
 {
     Context  = context;
     Instance = instance;
     View     = new AddConfigurationSettingsWizardPageView
     {
         DataContext = this
     };
     ReceiverSecrets = new ObservableCollection <WebHookReceiverSecret>();
     ReceiverSecrets.CollectionChanged += ReceiverSecrets_CollectionChanged;
     Title       = Resources.AddConfigurationSettingsWizardPageTitle;
     Description = Resources.AddConfigurationSettingsWizardPageDescription;
     Legend      = Resources.AddConfigurationSettingsWizardPageLegend;
 }
 public AddConfigurationSettingsWizardPage(ConnectedServiceProviderContext context,
     ConnectedServiceInstance instance)
 {
     Context = context;
     Instance = instance;
     View = new AddConfigurationSettingsWizardPageView
     {
         DataContext = this
     };
     ReceiverSecrets = new ObservableCollection<WebHookReceiverSecret>();
     ReceiverSecrets.CollectionChanged += ReceiverSecrets_CollectionChanged;
     Title = Resources.AddConfigurationSettingsWizardPageTitle;
     Description = Resources.AddConfigurationSettingsWizardPageDescription;
     Legend = Resources.AddConfigurationSettingsWizardPageLegend;
 }
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            this.Context = context;
            this.Project = ProjectHelper.GetProjectFromHierarchy(this.Context.ProjectHierarchy);
            this.userSettings = UserSettings.Load(context.Logger);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.userSettings);
            AdvancedSettingsViewModel = new AdvancedSettingsViewModel();

            if (this.Context.IsUpdating)
            {
                //Since ServiceConfigurationV4 is a derived type of ServiceConfiguration. So we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
                ServiceConfigurationV4 serviceConfig = this.Context.GetExtendedDesignerData<ServiceConfigurationV4>();
                ConfigODataEndpointViewModel.Endpoint = serviceConfig.Endpoint;
                ConfigODataEndpointViewModel.EdmxVersion = serviceConfig.EdmxVersion;
                ConfigODataEndpointViewModel.ServiceName = serviceConfig.ServiceName;
                var configODataEndpoint = (ConfigODataEndpointViewModel.View as ConfigODataEndpoint);
                configODataEndpoint.IsEnabled = false;

                //Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += (sender, args) =>
                {
                    var advancedSettingsViewModel = sender as AdvancedSettingsViewModel;
                    if (advancedSettingsViewModel != null)
                    {
                        AdvancedSettings advancedSettings = advancedSettingsViewModel.View as AdvancedSettings;

                        advancedSettingsViewModel.GeneratedFileName = serviceConfig.GeneratedFileNamePrefix;
                        advancedSettings.ReferenceFileName.IsEnabled = false;
                        advancedSettingsViewModel.UseNamespacePrefix = serviceConfig.UseNameSpacePrefix;
                        advancedSettingsViewModel.NamespacePrefix = serviceConfig.NamespacePrefix;
                        advancedSettingsViewModel.UseDataServiceCollection = serviceConfig.UseDataServiceCollection;

                        if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                        {
                            advancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes = serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                            advancedSettingsViewModel.EnableNamingAlias = serviceConfig.EnableNamingAlias;
                            advancedSettingsViewModel.IncludeT4File = serviceConfig.IncludeT4File;
                            advancedSettings.IncludeT4File.IsEnabled = false;
                        }
                    }
                };
            }

            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);
            this.IsFinishEnabled = true;
        }
Exemple #29
0
        public Wizard(ConnectedServiceProviderContext context)
        {
            Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();
            this.Context = context;
            //this.ProjectPath = context.ProjectHierarchy?.GetProject().Properties.Item("FullPath").Value.ToString();

            if (this.Context.IsUpdating)
            {
            }

            this.Pages.Add(new GlobalConfigWizardViewModel(this));
            this.Pages.Add(new SettingsWizardViewModel(this));
            this.Pages.Add(new ManageNamespacesWizardViewModel(this));
            this.Pages.Add(new ManageSkipAssembliesWizardViewModel(this));
            this.IsFinishEnabled = true;
        }
        public SelectApiAppViewModel(ConnectedServiceProviderContext context,
            ConnectedServiceInstance instance)
        {
            Context = context;
            Title = Resources.Page1Title;
            Description = Resources.Page1Subtitle;
            Legend = Resources.Page1Legend;

            View = new SelectApiAppView
            {
                DataContext = this
            };

            _dispatcher = Dispatcher.CurrentDispatcher;

            ApiApps = new List<ApiAppResource>();
            Instance = instance;
        }
Exemple #31
0
        public SelectApiAppViewModel(ConnectedServiceProviderContext context,
                                     ConnectedServiceInstance instance)
        {
            Context     = context;
            Title       = Resources.Page1Title;
            Description = Resources.Page1Subtitle;
            Legend      = Resources.Page1Legend;

            View = new SelectApiAppView
            {
                DataContext = this
            };

            _dispatcher = Dispatcher.CurrentDispatcher;

            ApiApps  = new List <ApiAppResource>();
            Instance = instance;
        }
        public ApiManagementIngestViewModel(ConnectedServiceProviderContext context,
            ConnectedServiceInstance instance)
        {
            Context = context;
            Title = Resources.Page2Title;
            Description = Resources.Page2Subtitle;
            Legend = Resources.Page2Legend;

            View = new ApiManagementIngestView
            {
                DataContext = this
            };

            _dispatcher = Dispatcher.CurrentDispatcher;

            Products = new ObservableCollection<ApiManagementProduct>();
            Products.CollectionChanged += Products_CollectionChanged;
            Instance = instance;
        }
Exemple #33
0
        public Wizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.UserSettings = UserSettings.Load(context.Logger);

            ConfigOpenApiEndpointViewModel    = new ConfigOpenApiEndpointViewModel(this.UserSettings, this);
            CSharpClientSettingsViewModel     = new CSharpClientSettingsViewModel();
            TypeScriptClientSettingsViewModel = new TypeScriptClientSettingsViewModel();
            CSharpControllerSettingsViewModel = new CSharpControllerSettingsViewModel();

            if (this.Context.IsUpdating)
            {
                var serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfiguration>();
                ConfigOpenApiEndpointViewModel.Endpoint    = serviceConfig.Endpoint;
                ConfigOpenApiEndpointViewModel.ServiceName = serviceConfig.ServiceName;
                ConfigOpenApiEndpointViewModel.UseWebProxy = serviceConfig.UseWebProxy;
                ConfigOpenApiEndpointViewModel.NetworkCredentialsDomain           = serviceConfig.NetworkCredentialsDomain;
                ConfigOpenApiEndpointViewModel.NetworkCredentialsUserName         = serviceConfig.NetworkCredentialsUserName;
                ConfigOpenApiEndpointViewModel.NetworkCredentialsPassword         = serviceConfig.NetworkCredentialsPassword;
                ConfigOpenApiEndpointViewModel.WebProxyNetworkCredentialsDomain   = serviceConfig.WebProxyNetworkCredentialsDomain;
                ConfigOpenApiEndpointViewModel.WebProxyNetworkCredentialsUserName = serviceConfig.WebProxyNetworkCredentialsUserName;
                ConfigOpenApiEndpointViewModel.WebProxyNetworkCredentialsPassword = serviceConfig.WebProxyNetworkCredentialsPassword;
                ConfigOpenApiEndpointViewModel.UseNetworkCredentials = serviceConfig.UseNetworkCredentials;
                ConfigOpenApiEndpointViewModel.WebProxyUri           = serviceConfig.WebProxyUri;
                ConfigOpenApiEndpointViewModel.Description           =
                    "An OpenAPI (Swagger) specification endpoint and generation options was regenerated";
                if (ConfigOpenApiEndpointViewModel.View is ConfigOpenApiEndpoint сonfigOpenApiEndpoint)
                {
                    //сonfigOpenApiEndpoint.Endpoint.IsEnabled = false;
                    //сonfigOpenApiEndpoint.ServiceName.IsEnabled = false;
                }

                CSharpClientSettingsViewModel.Command         = serviceConfig.SwaggerToCSharpClientCommand;
                CSharpClientSettingsViewModel.Description     = "Settings for generating CSharp client (regenerated)";
                TypeScriptClientSettingsViewModel.Command     = serviceConfig.SwaggerToTypeScriptClientCommand;
                TypeScriptClientSettingsViewModel.Description = "Settings for generating TypeScript client (regenerated)";
                CSharpControllerSettingsViewModel.Command     = serviceConfig.SwaggerToCSharpControllerCommand;
                CSharpControllerSettingsViewModel.Description = "Settings for generating CSharp controller (regenerated)";
            }

            this.Pages.Add(ConfigOpenApiEndpointViewModel);
            this.IsFinishEnabled = true;
        }
        public ApiManagementIngestViewModel(ConnectedServiceProviderContext context,
                                            ConnectedServiceInstance instance)
        {
            Context     = context;
            Title       = Resources.Page2Title;
            Description = Resources.Page2Subtitle;
            Legend      = Resources.Page2Legend;

            View = new ApiManagementIngestView
            {
                DataContext = this
            };

            _dispatcher = Dispatcher.CurrentDispatcher;

            Products = new ObservableCollection <ApiManagementProduct>();
            Products.CollectionChanged += Products_CollectionChanged;
            Instance = instance;
        }
Exemple #35
0
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.UserSettings = UserSettings.Load(context?.Logger);

            // Since ServiceConfigurationV4 is a derived type of ServiceConfiguration. So we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
            this._serviceConfig = this.Context?.GetExtendedDesignerData <ServiceConfigurationV4>();

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.UserSettings, this);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel(this.UserSettings);
            SchemaTypesViewModel         = new SchemaTypesViewModel(this.UserSettings);
            OperationImportsViewModel    = new OperationImportsViewModel(this.UserSettings);

            OperationImportsViewModel.PageEntering += OperationImportsViewModel_PageEntering;

            SchemaTypesViewModel.PageEntering += SchemaTypeSelectionViewModel_PageEntering;
            SchemaTypesViewModel.PageLeaving  += SchemaTypeSelectionViewModel_PageLeaving;
            if (this.Context != null && this.Context.IsUpdating)
            {
                ConfigODataEndpointViewModel.Endpoint          = this._serviceConfig?.Endpoint;
                ConfigODataEndpointViewModel.EdmxVersion       = this._serviceConfig?.EdmxVersion;
                ConfigODataEndpointViewModel.ServiceName       = this._serviceConfig?.ServiceName;
                ConfigODataEndpointViewModel.CustomHttpHeaders = this._serviceConfig?.CustomHttpHeaders;

                // Restore the main settings to UI elements.
                ConfigODataEndpointViewModel.PageEntering += ConfigODataEndpointViewModel_PageEntering;

                // The ViewModel should always be filled otherwise if the wizard is completed without visiting this page the generated code becomes wrong
                AdvancedSettingsViewModel_PageEntering(AdvancedSettingsViewModel, EventArgs.Empty);

                // Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += AdvancedSettingsViewModel_PageEntering;
            }

            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(SchemaTypesViewModel);
            this.Pages.Add(OperationImportsViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);
            this.IsFinishEnabled = true;
        }
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceConfigurator configurator;

            var project     = GetActiveProject();
            var projectKind = new Guid(project.Kind);

            if (projectKind != CsProjectType)
            {
                // For now, only C# projects support TPM.
                configurator = new AzureIoTHubAccountProviderGrid(this.IoTHubAccountManager, this.ServiceProvider);
            }
            else
            {
                var securityMode = new TPMSelector();
                var dlgResult    = securityMode.ShowModal();
                if (dlgResult.HasValue && dlgResult.Value)
                {
                    var useTPM = securityMode.rbUseTPM.IsChecked;
                    if (useTPM.HasValue && useTPM.Value)
                    {
                        // The user has chosen to use TPM
                        configurator = new ConnectedServiceSansUI(false);
                    }
                    else
                    {
                        // No TPM
                        configurator = new AzureIoTHubAccountProviderGrid(this.IoTHubAccountManager, this.ServiceProvider);
                    }
                }
                else
                {
                    // User cancelled
                    configurator = new ConnectedServiceSansUI(true);
                }
            }

            return(Task.FromResult(configurator));
        }
Exemple #37
0
        public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceConfigurator configurator;

            var project = GetActiveProject();
            var projectKind = new Guid(project.Kind);

            if (projectKind != CsProjectType)
            {
                // For now, only C# projects support TPM.
                configurator = new AzureIoTHubAccountProviderGrid(this.IoTHubAccountManager, this.ServiceProvider);
            }
            else
            {
                var securityMode = new TPMSelector();
                var dlgResult = securityMode.ShowModal();
                if (dlgResult.HasValue && dlgResult.Value)
                {
                    var useTPM = securityMode.rbUseTPM.IsChecked;
                    if (useTPM.HasValue && useTPM.Value)
                    {
                        // The user has chosen to use TPM
                        configurator = new ConnectedServiceSansUI(false);
                    }
                    else
                    {
                        // No TPM
                        configurator = new AzureIoTHubAccountProviderGrid(this.IoTHubAccountManager, this.ServiceProvider);
                    }
                }
                else
                {
                    // User cancelled
                    configurator = new ConnectedServiceSansUI(true);
                }
            }

            return Task.FromResult(configurator);
        }
Exemple #38
0
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            Context = context;
            // We only use most recently used endpoints from the config file saved in user's isolated storage
            // The UserSettings constructor will load those endpoints
            UserSettings = new UserSettings(context?.Logger);

            // Since ServiceConfigurationV4 is a derived type of ServiceConfiguration,
            // we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
            ServiceConfig = Context?.GetExtendedDesignerData <ServiceConfigurationV4>();

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(UserSettings);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel(UserSettings);
            SchemaTypesViewModel         = new SchemaTypesViewModel(UserSettings);
            OperationImportsViewModel    = new OperationImportsViewModel(UserSettings);

            OperationImportsViewModel.PageEntering += OperationImportsViewModel_PageEntering;
            SchemaTypesViewModel.PageEntering      += SchemaTypeSelectionViewModel_PageEntering;
            SchemaTypesViewModel.PageLeaving       += SchemaTypeSelectionViewModel_PageLeaving;

            if (Context != null && Context.IsUpdating)
            {
                LoadUserSettingsFromServiceConfig();
                ConfigODataEndpointViewModel.EdmxVersion = ServiceConfig?.EdmxVersion;

                // Restore the main settings to UI elements.
                ConfigODataEndpointViewModel.PageEntering += ConfigODataEndpointViewModel_PageEntering;
                // The ViewModel should always be filled otherwise if the wizard is completed without visiting this page the generated code becomes wrong
                AdvancedSettingsViewModel_PageEntering(AdvancedSettingsViewModel, EventArgs.Empty);
                // Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += AdvancedSettingsViewModel_PageEntering;
            }

            Pages.Add(ConfigODataEndpointViewModel);
            Pages.Add(SchemaTypesViewModel);
            Pages.Add(OperationImportsViewModel);
            Pages.Add(AdvancedSettingsViewModel);
            IsFinishEnabled = true;
        }
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceConfigurator wizard = new SalesforceConnectedServiceWizard(context, this.VisualStudioWorkspace);

            return(Task.FromResult(wizard));
        }
Exemple #40
0
        public Wizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.UserSettings = UserSettings.Load(context.Logger);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.UserSettings);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel(this.UserSettings);

            if (this.Context.IsUpdating)
            {
                //Since ServiceConfigurationV4 is a derived type of ServiceConfiguration. So we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
                var serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfigurationV4>();
                ConfigODataEndpointViewModel.Endpoint    = serviceConfig.Endpoint;
                ConfigODataEndpointViewModel.EdmxVersion = serviceConfig.EdmxVersion;
                ConfigODataEndpointViewModel.ServiceName = serviceConfig.ServiceName;
                ConfigODataEndpointViewModel.UseWebProxy = serviceConfig.UseWebProxy;
                ConfigODataEndpointViewModel.NetworkCredentialsDomain           = serviceConfig.NetworkCredentialsDomain;
                ConfigODataEndpointViewModel.NetworkCredentialsUserName         = serviceConfig.NetworkCredentialsUserName;
                ConfigODataEndpointViewModel.NetworkCredentialsPassword         = serviceConfig.NetworkCredentialsPassword;
                ConfigODataEndpointViewModel.WebProxyNetworkCredentialsDomain   = serviceConfig.WebProxyNetworkCredentialsDomain;
                ConfigODataEndpointViewModel.WebProxyNetworkCredentialsUserName = serviceConfig.WebProxyNetworkCredentialsUserName;
                ConfigODataEndpointViewModel.WebProxyNetworkCredentialsPassword = serviceConfig.WebProxyNetworkCredentialsPassword;
                ConfigODataEndpointViewModel.UseNetworkCredentials = serviceConfig.UseNetworkCredentials;
                ConfigODataEndpointViewModel.WebProxyUri           = serviceConfig.WebProxyUri;
                if (ConfigODataEndpointViewModel.View is ConfigODataEndpoint configODataEndpoint)
                {
                    configODataEndpoint.IsEnabled = false;
                }

                //Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += (sender, args) =>
                {
                    if (sender is AdvancedSettingsViewModel advancedSettingsViewModel)
                    {
                        if (advancedSettingsViewModel.View is AdvancedSettings advancedSettings)
                        {
                            advancedSettings.ReferenceFileName.IsEnabled       = false;
                            advancedSettingsViewModel.GeneratedFileName        = serviceConfig.GeneratedFileNamePrefix;
                            advancedSettingsViewModel.UseNamespacePrefix       = serviceConfig.UseNameSpacePrefix;
                            advancedSettingsViewModel.NamespacePrefix          = serviceConfig.NamespacePrefix;
                            advancedSettingsViewModel.UseDataServiceCollection = serviceConfig.UseDataServiceCollection;

                            if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                            {
                                advancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes =
                                    serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                                advancedSettingsViewModel.EnableNamingAlias = serviceConfig.EnableNamingAlias;
                                advancedSettingsViewModel.IncludeT4File     = serviceConfig.IncludeT4File;
                                advancedSettings.IncludeT4File.IsEnabled    = false;
                            }
                        }
                    }
                };
            }

            AdvancedSettingsViewModel.PageEntering += (sender, args) =>
            {
                if (sender is AdvancedSettingsViewModel advancedSettingsViewModel)
                {
                    advancedSettingsViewModel.IncludeExtensionsT4File           = ConfigODataEndpointViewModel.EdmxVersion != Common.Constants.EdmxVersion4;
                    advancedSettingsViewModel.IncludeExtensionsT4FileVisibility = ConfigODataEndpointViewModel.EdmxVersion != Common.Constants.EdmxVersion4 ? Visibility.Visible : Visibility.Collapsed;
                    advancedSettingsViewModel.FunctionImportsGenerator          = AdvancedSettingsViewModel.FunctionImportsGenerator;
                    advancedSettingsViewModel.GenerateFunctionImports           = AdvancedSettingsViewModel.GenerateFunctionImports;
                }
            };

            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);
            this.IsFinishEnabled = true;
        }
 public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
 {
     return Task.FromResult<ConnectedServiceConfigurator>(new ViewModels.SinglePageViewModel());
 }
        public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceConfigurator wizard = new SalesforceConnectedServiceWizard(context, this.VisualStudioWorkspace);

            return Task.FromResult(wizard);
        }
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            ConnectedServiceConfigurator configurator = new GridViewModel();

            return(Task.FromResult(configurator));
        }
        public ODataConnectedServiceWizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.UserSettings = UserSettings.Load(context.Logger);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.UserSettings, this);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel(this.UserSettings);
            OperationImportsViewModel    = new OperationImportsViewModel();

            ServiceConfigurationV4 serviceConfig = null;

            OperationImportsViewModel.PageEntering += ObjectSelectionViewModel_PageEntering;

            if (this.Context.IsUpdating)
            {
                //Since ServiceConfigurationV4 is a derived type of ServiceConfiguration. So we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
                serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfigurationV4>();
                ConfigODataEndpointViewModel.Endpoint          = serviceConfig.Endpoint;
                ConfigODataEndpointViewModel.EdmxVersion       = serviceConfig.EdmxVersion;
                ConfigODataEndpointViewModel.ServiceName       = serviceConfig.ServiceName;
                ConfigODataEndpointViewModel.CustomHttpHeaders = serviceConfig.CustomHttpHeaders;



                // The ViewModel should always be filled otherwise if the wizard is completed without visiting this page the generated code becomes wrong
                AdvancedSettingsViewModel.UseNamespacePrefix       = serviceConfig.UseNamespacePrefix;
                AdvancedSettingsViewModel.NamespacePrefix          = serviceConfig.NamespacePrefix;
                AdvancedSettingsViewModel.UseDataServiceCollection = serviceConfig.UseDataServiceCollection;

                if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                {
                    AdvancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes =
                        serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                    AdvancedSettingsViewModel.EnableNamingAlias = serviceConfig.EnableNamingAlias;
                    AdvancedSettingsViewModel.IncludeT4File     = serviceConfig.IncludeT4File;
                    AdvancedSettingsViewModel.MakeTypesInternal = serviceConfig.MakeTypesInternal;
                }


                ConfigODataEndpointViewModel.PageEntering += (sender, args) =>
                {
                    var configOdataViewModel = sender as ConfigODataEndpointViewModel;
                    if (configOdataViewModel != null)
                    {
                        var configOdataView = configOdataViewModel.View as ConfigODataEndpoint;
                        configOdataView.Endpoint.IsEnabled = false;
                        configOdataView.OpenConnectedServiceJsonFileButton.IsEnabled = false;
                        configOdataView.OpenEndpointFileButton.IsEnabled             = !serviceConfig.Endpoint.StartsWith("http");
                        configOdataView.ServiceName.IsEnabled     = false;
                        configOdataViewModel.IncludeCustomHeaders = serviceConfig.IncludeCustomHeaders;
                        configOdataViewModel.IncludeWebProxy      = serviceConfig.IncludeWebProxy;
                        configOdataViewModel.WebProxyHost         = serviceConfig.WebProxyHost;

                        configOdataViewModel.IncludeWebProxyNetworkCredentials = serviceConfig.IncludeWebProxyNetworkCredentials;
                        configOdataViewModel.WebProxyNetworkCredentialsDomain  = serviceConfig.WebProxyNetworkCredentialsDomain;

                        // don't accept any credentials from the restored settings
                        configOdataViewModel.WebProxyNetworkCredentialsUsername = null;
                        configOdataViewModel.WebProxyNetworkCredentialsPassword = null;
                    }
                };


                //Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += (sender, args) =>
                {
                    if (sender is AdvancedSettingsViewModel advancedSettingsViewModel)
                    {
                        if (advancedSettingsViewModel.View is AdvancedSettings advancedSettings)
                        {
                            advancedSettingsViewModel.GeneratedFileNamePrefix  = serviceConfig.GeneratedFileNamePrefix;
                            advancedSettings.ReferenceFileName.IsEnabled       = false;
                            advancedSettingsViewModel.UseNamespacePrefix       = serviceConfig.UseNamespacePrefix;
                            advancedSettingsViewModel.NamespacePrefix          = serviceConfig.NamespacePrefix;
                            advancedSettingsViewModel.UseDataServiceCollection = serviceConfig.UseDataServiceCollection;
                            advancedSettingsViewModel.GenerateMultipleFiles    = serviceConfig.GenerateMultipleFiles;
                            advancedSettings.GenerateMultipleFiles.IsEnabled   = false;

                            if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                            {
                                advancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes = serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                                advancedSettingsViewModel.EnableNamingAlias = serviceConfig.EnableNamingAlias;
                                advancedSettingsViewModel.IncludeT4File     = serviceConfig.IncludeT4File;
                                advancedSettingsViewModel.MakeTypesInternal = serviceConfig.MakeTypesInternal;
                                advancedSettings.IncludeT4File.IsEnabled    = false;
                            }
                        }
                    }
                };
            }

            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(OperationImportsViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);
            this.IsFinishEnabled = true;
        }
Exemple #45
0
 public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
 {
     return(Task.FromResult <ConnectedServiceConfigurator>(new Wizard(context)));
 }
 public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
 {
     return Task.FromResult<ConnectedServiceConfigurator>(new ServiceWizard());
 }
        public Wizard(ConnectedServiceProviderContext context)
        {
            this.Context      = context;
            this.UserSettings = UserSettings.Load(context.Logger);

            ConfigODataEndpointViewModel = new ConfigODataEndpointViewModel(this.UserSettings, this);
            AdvancedSettingsViewModel    = new AdvancedSettingsViewModel(this.UserSettings, this);
            FunctionImportsViewModel     = new FunctionImportsViewModel(this.UserSettings, this);

            if (this.Context.IsUpdating)
            {
                // Since ServiceConfigurationV4 is a derived type of ServiceConfiguration. So we can deserialize a ServiceConfiguration into a ServiceConfigurationV4.
                var serviceConfig = this.Context.GetExtendedDesignerData <ServiceConfigurationV4>();
                ConfigODataEndpointViewModel.LanguageOption = serviceConfig.LanguageOption;
                ConfigODataEndpointViewModel.Endpoint       = serviceConfig.Endpoint;
                ConfigODataEndpointViewModel.EdmxVersion    = serviceConfig.EdmxVersion;
                ConfigODataEndpointViewModel.ServiceName    = serviceConfig.ServiceName;
                ConfigODataEndpointViewModel.AcceptAllUntrustedCertificates = serviceConfig.AcceptAllUntrustedCertificates;
                ConfigODataEndpointViewModel.UseWebProxy = serviceConfig.UseWebProxy;
                ConfigODataEndpointViewModel.NetworkCredentialsDomain           = serviceConfig.NetworkCredentialsDomain;
                ConfigODataEndpointViewModel.NetworkCredentialsUserName         = serviceConfig.NetworkCredentialsUserName;
                ConfigODataEndpointViewModel.NetworkCredentialsPassword         = serviceConfig.NetworkCredentialsPassword;
                ConfigODataEndpointViewModel.WebProxyNetworkCredentialsDomain   = serviceConfig.WebProxyNetworkCredentialsDomain;
                ConfigODataEndpointViewModel.WebProxyNetworkCredentialsUserName = serviceConfig.WebProxyNetworkCredentialsUserName;
                ConfigODataEndpointViewModel.WebProxyNetworkCredentialsPassword = serviceConfig.WebProxyNetworkCredentialsPassword;
                ConfigODataEndpointViewModel.UseNetworkCredentials = serviceConfig.UseNetworkCredentials;
                ConfigODataEndpointViewModel.WebProxyUri           = serviceConfig.WebProxyUri;
                if (ConfigODataEndpointViewModel.View is ConfigODataEndpoint configODataEndpoint)
                {
                    configODataEndpoint.IsEnabled = false;
                }

                // The Viewmodel should always be filled otherwise if the wizard is completed without visiting this page  the generated code becomes wrong
                AdvancedSettingsViewModel.GeneratedFileNameEnabled      = false; // advancedSettings.ReferenceFileName.IsEnabled = false;
                AdvancedSettingsViewModel.GeneratedFileNamePrefix       = serviceConfig.GeneratedFileNamePrefix;
                AdvancedSettingsViewModel.UseNamespacePrefix            = serviceConfig.UseNameSpacePrefix;
                AdvancedSettingsViewModel.NamespacePrefix               = serviceConfig.NamespacePrefix;
                AdvancedSettingsViewModel.UseDataServiceCollection      = serviceConfig.UseDataServiceCollection;
                AdvancedSettingsViewModel.UseAsyncDataServiceCollection = serviceConfig.UseAsyncDataServiceCollection;
                AdvancedSettingsViewModel.OperationImportsGenerator     = serviceConfig.OperationImportsGenerator;
                AdvancedSettingsViewModel.SelectOperationImports        = serviceConfig.GenerateOperationImports;
                AdvancedSettingsViewModel.ExcludedOperationImportsNames = serviceConfig.ExcludedOperationImportsNames;

                if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                {
                    AdvancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes =
                        serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                    AdvancedSettingsViewModel.GenerateDynamicPropertiesCollection = serviceConfig.GenerateDynamicPropertiesCollection;
                    AdvancedSettingsViewModel.DynamicPropertiesCollectionName     = serviceConfig.DynamicPropertiesCollectionName;
                    AdvancedSettingsViewModel.EnableNamingAlias    = serviceConfig.EnableNamingAlias;
                    AdvancedSettingsViewModel.IncludeT4File        = serviceConfig.IncludeT4File;
                    AdvancedSettingsViewModel.MakeTypesInternal    = serviceConfig.MakeTypesInternal;
                    AdvancedSettingsViewModel.IncludeT4FileEnabled = true;
                }

                // Restore the advanced settings to UI elements.
                AdvancedSettingsViewModel.PageEntering += (sender, args) =>
                {
                    if (sender is AdvancedSettingsViewModel advancedSettingsViewModel)
                    {
                        if (advancedSettingsViewModel.View is AdvancedSettings advancedSettings)
                        {
                            advancedSettings.ReferenceFileName.IsEnabled            = false;
                            advancedSettingsViewModel.GeneratedFileNamePrefix       = serviceConfig.GeneratedFileNamePrefix;
                            advancedSettingsViewModel.UseNamespacePrefix            = serviceConfig.UseNameSpacePrefix;
                            advancedSettingsViewModel.NamespacePrefix               = serviceConfig.NamespacePrefix;
                            advancedSettingsViewModel.UseDataServiceCollection      = serviceConfig.UseDataServiceCollection;
                            advancedSettingsViewModel.UseAsyncDataServiceCollection = serviceConfig.UseAsyncDataServiceCollection;
                            advancedSettingsViewModel.OperationImportsGenerator     = serviceConfig.OperationImportsGenerator;
                            advancedSettingsViewModel.SelectOperationImports        = serviceConfig.GenerateOperationImports;
                            advancedSettingsViewModel.ExcludedOperationImportsNames = serviceConfig.ExcludedOperationImportsNames;

                            if (serviceConfig.EdmxVersion == Common.Constants.EdmxVersion4)
                            {
                                advancedSettingsViewModel.IgnoreUnexpectedElementsAndAttributes =
                                    serviceConfig.IgnoreUnexpectedElementsAndAttributes;
                                advancedSettingsViewModel.GenerateDynamicPropertiesCollection = serviceConfig.GenerateDynamicPropertiesCollection;
                                advancedSettingsViewModel.DynamicPropertiesCollectionName     = serviceConfig.DynamicPropertiesCollectionName;
                                advancedSettingsViewModel.EnableNamingAlias    = serviceConfig.EnableNamingAlias;
                                advancedSettingsViewModel.IncludeT4File        = serviceConfig.IncludeT4File;
                                advancedSettingsViewModel.MakeTypesInternal    = serviceConfig.MakeTypesInternal;
                                advancedSettingsViewModel.IncludeT4FileEnabled = true;
                                advancedSettings.IncludeT4File.IsEnabled       = true;
                            }

                            if (!advancedSettingsViewModel.SelectOperationImports || UserSettings.LanguageOption != LanguageOption.GenerateCSharpCode)
                            {
                                RemoveOperationImportsSettingsPage();
                            }
                            else
                            {
                                AddOperationImportsSettingsPage();
                            }
                        }
                    }
                };

                FunctionImportsViewModel.FunctionImports       = serviceConfig.FunctionImports ?? new List <FunctionImportModel>();
                FunctionImportsViewModel.OperationImports      = serviceConfig.OperationImports ?? new List <OperationImportModel>();
                FunctionImportsViewModel.FunctionImportsCount  = serviceConfig.FunctionImports?.Count ?? 0;
                FunctionImportsViewModel.OperationImportsCount = serviceConfig.OperationImports?.Count ?? 0;
            }

            AdvancedSettingsViewModel.PageEntering += (sender, args) =>
            {
                if (sender is AdvancedSettingsViewModel advancedSettingsViewModel)
                {
                    advancedSettingsViewModel.IncludeExtensionsT4File           = AdvancedSettingsViewModel.IncludeExtensionsT4File;
                    advancedSettingsViewModel.IncludeExtensionsT4FileVisibility = ConfigODataEndpointViewModel.EdmxVersion != Common.Constants.EdmxVersion4 ? Visibility.Visible : Visibility.Collapsed;
                    advancedSettingsViewModel.OperationImportsGenerator         = AdvancedSettingsViewModel.OperationImportsGenerator;
                    advancedSettingsViewModel.SelectOperationImports            = AdvancedSettingsViewModel.SelectOperationImports;
                    advancedSettingsViewModel.IncludeT4FileEnabled = true;
                    if (!advancedSettingsViewModel.SelectOperationImports || UserSettings.LanguageOption != LanguageOption.GenerateCSharpCode)
                    {
                        RemoveOperationImportsSettingsPage();
                    }
                    else
                    {
                        AddOperationImportsSettingsPage();
                    }
                }
            };

            FunctionImportsViewModel.PageEntering += (sender, args) =>
            {
                if (sender is FunctionImportsViewModel functionImportsViewModel)
                {
                    if (ConfigODataEndpointViewModel.EdmxVersion == Common.Constants.EdmxVersion4 && (FunctionImportsViewModel.OperationImports == null ||
                                                                                                      !FunctionImportsViewModel.OperationImports.Any() ||
                                                                                                      (AdvancedSettingsViewModel.UseNamespacePrefix && FunctionImportsViewModel.OperationImports.Any(fi => fi.Namespace != AdvancedSettingsViewModel.NamespacePrefix)) ||
                                                                                                      FunctionImportsViewModel.OperationImports.Any(fi =>
                                                                                                                                                    !this.UserSettings.Endpoint.Contains(fi.EndpointUri))))
                    {
                        FunctionImportsViewModel.OperationImports = OperationImportsHelper.GetOperationsImports(
                            (this.CreateServiceConfiguration() as ServiceConfigurationV4).GetODataEdmModel(),
                            AdvancedSettingsViewModel.UseNamespacePrefix
                                ? AdvancedSettingsViewModel.NamespacePrefix
                                : null,
                            File.Exists(ConfigODataEndpointViewModel.Endpoint) ? ConfigODataEndpointViewModel.Endpoint : ConfigODataEndpointViewModel.Endpoint.Replace("$metadata", string.Empty));
                        FunctionImportsViewModel.OperationImportsCount = FunctionImportsViewModel.OperationImports?.Count ?? 0;
                    }

                    if (ConfigODataEndpointViewModel.EdmxVersion != Common.Constants.EdmxVersion4 && (FunctionImportsViewModel.FunctionImports == null ||
                                                                                                      !FunctionImportsViewModel.FunctionImports.Any() ||
                                                                                                      (AdvancedSettingsViewModel.UseNamespacePrefix && FunctionImportsViewModel.FunctionImports.Any(fi => fi.Namespace != AdvancedSettingsViewModel.NamespacePrefix)) ||
                                                                                                      FunctionImportsViewModel.FunctionImports.Any(fi =>
                                                                                                                                                   !this.UserSettings.Endpoint.Contains(fi.EndpointUri))))
                    {
                        FunctionImportsViewModel.FunctionImports = FunctionImportsHelper.GetFunctionImports(
                            this.CreateServiceConfiguration().GetDataEdmModel(),
                            AdvancedSettingsViewModel.UseNamespacePrefix
                                ? AdvancedSettingsViewModel.NamespacePrefix
                                : null,
                            File.Exists(ConfigODataEndpointViewModel.Endpoint) ? ConfigODataEndpointViewModel.Endpoint : ConfigODataEndpointViewModel.Endpoint.Replace("$metadata", string.Empty));
                        FunctionImportsViewModel.FunctionImportsCount = FunctionImportsViewModel.FunctionImports?.Count ?? 0;
                    }

                    functionImportsViewModel.FunctionImports       = FunctionImportsViewModel.FunctionImports;
                    functionImportsViewModel.FunctionImportsCount  = functionImportsViewModel.FunctionImports?.Count ?? 0;
                    functionImportsViewModel.OperationImports      = FunctionImportsViewModel.OperationImports;
                    functionImportsViewModel.OperationImportsCount = functionImportsViewModel.OperationImports?.Count ?? 0;
                }
            };

            this.Pages.Add(ConfigODataEndpointViewModel);
            this.Pages.Add(AdvancedSettingsViewModel);
            this.IsFinishEnabled = true;
        }
        public override Task <ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
        {
            var wizard = new ODataConnectedServiceWizard(context);

            return(Task.FromResult <ConnectedServiceConfigurator>(wizard));
        }
 public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
 {
     ConnectedServiceConfigurator configurator = new GridViewModel();
     return Task.FromResult(configurator);
 }
 public override Task<ConnectedServiceConfigurator> CreateConfiguratorAsync(ConnectedServiceProviderContext context)
 {
     var wizard = new ODataConnectedServiceWizard(context);
     return Task.FromResult<ConnectedServiceConfigurator>(wizard);
 }