Exemple #1
0
        protected override void ExecuteCore(Document document)
        {
            PromptService prompt = document.GetService <PromptService>();

            settings.Document = document;

            if (PromptResult.Ok == prompt.Prompt(settings))
            {
                ExecuteDataFunction(settings);
            }
            else
            {
                MessageBox.Show("Tool execution canceled.");
            }
        }
Exemple #2
0
 public void Setup()
 {
     _baseReportParameterService = new Mock<IBaseReportParameterService>();
     _baseReportInterpreter = new Mock<IBaseReportInterpreter<PromptInfo>>();
     _service = new PromptService(_baseReportParameterService.Object, _baseReportInterpreter.Object);
 }
Exemple #3
0
        /// <summary>Create a new connection and prompt if needed.
        /// </summary>
        /// <param name="serviceProvider">The service provider.</param>
        /// <param name="promptMode">The prompt mode.</param>
        /// <returns>A connection to the data source.</returns>
        protected override DataSourceConnection ConnectCore(
            IServiceProvider serviceProvider, DataSourcePromptMode promptMode)
        {
            // Retrieve the prompt service.
            PromptService promptService = GetService <PromptService>(serviceProvider);

            CredentialsService credentialsService = GetService <CredentialsService>(serviceProvider);

            // Check if it allowed to show a UI
            bool isPromptingAllowed = promptService.IsPromptingAllowed;

            // Check if host/username/password works
            bool connectionOk = false;

            if (!Host.Equals("") && !UserName.Equals("") && !UserPass.Equals(""))
            {
                try
                {
                    LmiHandler lmiHandler = new LmiHandler(Host, "", UserName, UserPass, null, false, From, To);
                    lmiHandler.checkConnection();
                    connectionOk = true;
                }
                catch (Exception)
                {
                    // just ignored at this stage
                }
            }
            else if (isPromptingAllowed)
            {
                String[] credentials;
                bool     res = credentialsService.TryGetCredentials <String[]>("LMI::DEFAULT", out credentials);
                Host     = res == false ? "" : credentials[0];
                UserName = res == false ? "" : credentials[1];
                UserPass = res == false ? "" : credentials[2];
            }
            // Check if we need to prompt
            bool needsPrompting = !connectionOk;

            if (!isPromptingAllowed && needsPrompting)
            {
                // It is not allowed to show the prompt UI and there is not enough information
                // to retrieve data so an exception needs to be thrown and import will be aborted.
                throw new ImportException("User prompt needed but disallowed by prompt mode or application mode.");
            }

            // Generate an enumerator for the prompt models.
            IEnumerable <object> promptModels = new List <object>();

            // 2. Prompt for Uri if it is allowed to show UI
            if (isPromptingAllowed)
            {
                switch (promptMode)
                {
                case DataSourcePromptMode.All:

                    // Always prompt
                    promptModels = this.Prompt(credentialsService);
                    break;

                case DataSourcePromptMode.RequiredOnly:

                    // Prompt only if needed
                    if (needsPrompting)
                    {
                        promptModels = this.Prompt(credentialsService);
                    }
                    break;

                case DataSourcePromptMode.None:

                    // No prompting.
                    break;

                default:

                    // No prompting.
                    break;
                }
            }

            // 3. Create and return a connection
            return(new LmiDataSourceConnection(this, serviceProvider, promptMode, promptModels));
        }
 public DbConnectionInfo(PromptService prompt)
 {
     _prompt = prompt;
 }
 public DbConnectionInfo(PromptService prompt)
 {
     _prompt = prompt;
 }
 public DbConnectionInfo()
 {
     _prompt = new ConsolePromptService();
 }
Exemple #7
0
 public void Setup()
 {
     _baseReportParameterService = new Mock <IBaseReportParameterService>();
     _baseReportInterpreter      = new Mock <IBaseReportInterpreter <PromptInfo> >();
     _service = new PromptService(_baseReportParameterService.Object, _baseReportInterpreter.Object);
 }