private List <DbParameter> BuildDbParameters(IDictionary <string, object> parameters)
        {
            var dbParameters = new List <DbParameter>();

            foreach (var dataMapping in this.DataMappings)
            {
                var dbParameter = this.dbAdapter.DbProviderFactory.CreateParameter();
                dbParameter.ParameterName = dataMapping.Name;

                // replace token in the datamapping value e.g. ["Filename"]="{Filename}" -> ["Filename"]="C:\Temp\Test.txt"
                dbParameter.Value = TokenProcessor.ReplaceTokens(dataMapping.Value.ToStringOrEmpty(), parameters);

                dbParameter.DbType = dataMapping.DbType;

                switch (dataMapping.Direction)
                {
                case Directions.In:
                    dbParameter.Direction = ParameterDirection.Input;
                    break;

                case Directions.Out:
                    dbParameter.Direction = ParameterDirection.Output;
                    break;

                case Directions.InOut:
                    dbParameter.Direction = ParameterDirection.InputOutput;
                    break;
                }
            }
            return(dbParameters);
        }
        protected override IEnumerable <CommandParameters> Execute(IEnumerable <CommandParameters> inParametersList)
        {
            foreach (var inParameters in inParametersList)
            {
                //inParameters = GetCurrentInParameters();
                string file           = inParameters.GetValue <string>("File");
                string startParameter = inParameters.GetValue <string>("StartParameter");
                string logFile        = inParameters.GetValue <string>("OutputLogFile");

                startParameter = TokenProcessor.ReplaceTokens(startParameter, inParameters.ToDictionary());
                var shellOutput = this.commandShellAction.RunExternalExe(file, startParameter);

                // log output to logfile
                if (!string.IsNullOrEmpty(logFile) &&
                    !string.IsNullOrWhiteSpace(shellOutput))
                {
                    System.IO.File.AppendAllText(logFile, shellOutput + Environment.NewLine);
                }

                var outParameters = this.GetCurrentOutParameters();
                outParameters.AddOrUpdate(new CommandParameter()
                {
                    Name = "Output", Value = shellOutput
                });
                yield return(outParameters);
            }
        }
示例#3
0
        private object InvokeWebRequestWithParameters(SimpleWebRequest webRequest, IDictionary <string, object> values = null)
        {
            // Take the values, which are defined in the mapping
            foreach (var dataMapping in this.DataMappings)
            {
                object value = null;

                if (dataMapping.Value != null)
                {
                    // replace token e.g {Filename} ->  C:\Temp\Test.txt
                    value = TokenProcessor.ReplaceTokens(dataMapping.Value.ToStringOrEmpty(), values);
                }
                else
                {
                    value = values.GetValue(dataMapping.Name);
                }

                webRequest.Parameters.Add(dataMapping.Name, value.ToStringOrEmpty());
            }

            // call the service
            var result = webRequest.Invoke();

            // format the result
            object data = null;

            if (this.formatter != null && result != null)
            {
                data = this.formatter.Format(result, null);
            }

            return(data);
        }
        protected override IEnumerable <CommandParameters> Execute(IEnumerable <CommandParameters> inParametersList)
        {
            foreach (var inParameters in inParametersList)
            {
                //inParameters = GetCurrentInParameters();
                string script  = inParameters.GetValue <string>("Script");
                string logFile = inParameters.GetValue <string>("OutputLogFile");

                var parameters = new Dictionary <string, object>();

                if (this.DataMappings.Any())
                {
                    // Take the values, which are defined in the mapping
                    foreach (var dataMapping in this.DataMappings)
                    {
                        string parameterValue = "";

                        if (dataMapping.Value != null)
                        {
                            parameterValue = TokenProcessor.ReplaceTokens(dataMapping.Value.ToStringOrEmpty());
                        }
                        else
                        {
                            parameterValue = inParameters.GetValue <string>(dataMapping.Name);
                        }

                        parameters.Add(dataMapping.Name, parameterValue);
                    }
                }
                else
                {
                    parameters = inParameters.ToDictionary();
                }

                var shellOutput = this.powerShellAction.Run(script, parameters);

                // log output to logfile
                if (!string.IsNullOrEmpty(logFile) &&
                    !string.IsNullOrWhiteSpace(shellOutput))
                {
                    System.IO.File.AppendAllText(logFile, shellOutput + Environment.NewLine);
                }

                var outParameters = this.GetCurrentOutParameters();
                outParameters.AddOrUpdate(new CommandParameter()
                {
                    Name = "Output", Value = shellOutput
                });
                yield return(outParameters);
            }
        }
示例#5
0
        private object InvokeWebserviceWithParameters(SimpleWebserviceRequest webService, IDictionary <string, object> values = null)
        {
            webService.Parameters.Clear();

            // Take the values, which are defined in the mapping
            foreach (var dataMapping in this.DataMappings)
            {
                var webserviceParameter = new SimpleWebserviceRequest.WebserviceParameter()
                {
                    Name = dataMapping.Name,
                    Type = dataMapping.DataType.ToString()
                };

                if (dataMapping.Value != null)
                {
                    // replace token e.g {Filename} ->  C:\Temp\Test.txt
                    webserviceParameter.Value = TokenProcessor.ReplaceTokens(dataMapping.Value.ToStringOrEmpty(), values);
                }
                //else
                //{
                //    // set the value
                //    webserviceParameter.Value = values.GetValue(dataMapping.Name);
                //}

                webService.Parameters.Add(webserviceParameter);
            }

            // call the service
            var result = webService.Invoke();

            // format the result
            object data = null;

            if (this.formatter != null && result != null)
            {
                data = this.formatter.Format(result.OuterXml, null);
            }

            return(data);
        }
        private string ApplyDataMappings(string sql, IDictionary <string, object> parameters)
        {
            // prepare the sql and set the values
            if (this.DataMappings.Any())
            {
                foreach (var dataMapping in this.DataMappings)
                {
                    if (dataMapping.Value != null)
                    {
                        // replace token in the datamapping value e.g. ["Filename"]="{Filename}" -> ["Filename"]="C:\Temp\Test.txt"
                        string value = TokenProcessor.ReplaceTokens(dataMapping.Value.ToStringOrEmpty(), parameters);
                        // Replace the tokens in the sql template e.g. "SELECT * FROM tb_test WHERE ID = {Id}"
                        sql = TokenProcessor.ReplaceToken(sql, dataMapping.Name, value);
                    }
                }
            }
            else
            {
                sql = TokenProcessor.ReplaceTokens(sql, parameters);
            }

            return(sql);
        }
示例#7
0
        protected override IEnumerable <CommandParameters> Execute(IEnumerable <CommandParameters> inParametersList)
        {
            foreach (var inParameters in inParametersList)
            {
                //inParameters = GetCurrentInParameters();
                string mailFrom = inParameters.GetValue <string>("From");
                string mailTo   = inParameters.GetValue <string>("To");
                string mailCc   = inParameters.GetValue <string>("CC");
                string mailBcc  = inParameters.GetValue <string>("BCC");
                //object data = inParameters.GetValue<object>("Data");

                var smtpConnectionInfo = this.ConnectionInfo as SmtpConnectionInfo;
                if (smtpConnectionInfo == null)
                {
                    throw new ArgumentNullException("ConnectionInfo");
                }

                using (var message = new MailMessage())
                {
                    // From
                    message.From = new MailAddress(mailFrom, mailFrom, Encoding.UTF8);

                    // To
                    var to = mailTo.Replace(";", ",");
                    foreach (string emailaddress in to.Split(','))
                    {
                        message.To.Add(new MailAddress(emailaddress, string.Empty, Encoding.UTF8));
                    }

                    message.Subject = TokenProcessor.ReplaceTokens(this.Subject, inParameters.ToDictionary());
                    message.Body    = TokenProcessor.ReplaceTokens(this.Body, inParameters.ToDictionary());

                    // Attachments
                    foreach (var attachment in this.Attachments)
                    {
                        string fileName = TokenProcessor.ReplaceTokens(attachment, inParameters.ToDictionary());
                        message.Attachments.Add(new Attachment(fileName));
                    }

                    using (var smtpClient = new SmtpClient())
                    {
                        smtpClient.Host = smtpConnectionInfo.SmtpServer;
                        smtpClient.Port = smtpConnectionInfo.SmtpPort;
                        if (smtpConnectionInfo.EnableSecure)
                        {
                            smtpClient.EnableSsl = smtpConnectionInfo.EnableSecure;
                        }

                        if (!string.IsNullOrEmpty(smtpConnectionInfo.UserName))
                        {
                            smtpClient.UseDefaultCredentials = false;
                            smtpClient.Credentials           = new NetworkCredential(smtpConnectionInfo.UserName,
                                                                                     smtpConnectionInfo.DecryptedPassword);
                        }

                        smtpClient.Send(message);
                    }
                }

                var outParameters = this.GetCurrentOutParameters();
                yield return(outParameters);
            }
        }