예제 #1
0
        public void LoadData(IConnection connection, SDK.Database.IDatastore datastore, ReportProgressMethod reportProgress)
        {
            using (StringReader stringReader = connection.GetConnection() as StringReader)
            {
                var reader = new CsvReader(stringReader);
                reader.Configuration.Delimiter      = this.Configuration.Delimiter;
                reader.Configuration.Comment        = this.Configuration.Comment[0];
                reader.Configuration.Quote          = this.Configuration.Quote[0];
                reader.Configuration.QuoteAllFields = this.Configuration.QuoteAllFields;

                while (reader.Read())
                {
                    // Read the metadata from the source
                    if (datastore.Count == 0)
                    {
                        for (int i = 0; i < reader.FieldHeaders.Length; i++)
                        {
                            datastore.AddColumn(new ColumnMetadata(reader.FieldHeaders[i]));
                        }
                    }

                    // Add data to the datastore
                    object[] data = new object[reader.FieldHeaders.Length];
                    for (int dataIndex = 0; dataIndex < reader.FieldHeaders.Length; dataIndex++)
                    {
                        data[dataIndex] = reader.GetField(dataIndex);
                    }
                    datastore.AddData(data);
                }
            }
        }
예제 #2
0
        public void LoadData(IConnection connection, SDK.Database.IDatastore datastore, ReportProgressMethod reportProgress)
        {
            HttpWebRequest webRequest = WebRequest.CreateHttp(this.Configuration.Url);

            webRequest.Method      = this.Configuration.Method;
            webRequest.Accept      = this.Configuration.Accept;
            webRequest.ContentType = this.Configuration.ContentType;

            var webConfiguration = connection.GetConnection() as ConnectToUrlConfiguration;

            if (webConfiguration.UseProxySettings)
            {
                // TODO Implement
            }

            if (webConfiguration.SendClientCertificate)
            {
                // TODO Implement
            }

            datastore.AddColumn(new ColumnMetadata("ResponseContent"));

            reportProgress(new SimpleProgressReport("Start retrieving data from " + this.Configuration.Url));
            using (WebResponse response = ExecuteWebRequest(webRequest))
                using (Stream dataStream = response.GetResponseStream())
                    using (StreamReader reader = new StreamReader(dataStream))
                    {
                        reportProgress(new SimpleProgressReport("Retrieved " + response.ContentLength + " bytes."));
                        object [] receivedData = new object[datastore.Metadata.Columns.Count];

                        string responseFromServer = reader.ReadToEnd();
                        receivedData[datastore.Metadata["ResponseContent"].ColumnIndex] = responseFromServer;
                    }
        }
예제 #3
0
        public void LoadData(IConnection connection, SDK.Database.IDatastore datastore, ReportProgressMethod reportProgress)
        {
            datastore.AddColumn(new ColumnMetadata("TextFile"));

            using (StringReader stringReader = connection.GetConnection() as StringReader)
            {
                switch (this.Configuration.LoadType)
                {
                case TextFileLoadType.AllInOneRow:
                    datastore.AddData(new object[] { stringReader.ReadToEnd() });
                    break;

                case TextFileLoadType.OneRowPerLine:
                    string line = null;
                    while (true)
                    {
                        line = stringReader.ReadLine();
                        if (line == null)
                        {
                            break;
                        }

                        datastore.AddData(new object[] { line });
                    }
                    break;
                }
            }
        }
예제 #4
0
        public void LoadData(IConnection connection, SDK.Database.IDatastore datastore, ReportProgressMethod reportProgress)
        {
            this.datastore = datastore;

            if (String.IsNullOrEmpty(this.Configuration.FetchXml))
            {
                return;
            }

            reportProgress(new SimpleProgressReport("Connection to crm"));
            this.service = connection.GetConnection() as IOrganizationService;

            reportProgress(new SimpleProgressReport("Start fetching entities..."));
            Crm2013Wrapper.Crm2013Wrapper.ExecuteFetchXml(service, this.Configuration.FetchXml, FetchXmlEntityCollectionRetrieved);
        }
예제 #5
0
        public System.Windows.Controls.UserControl RenderConfigurationWindow(ConfigurationBase configurationBase, SDK.Database.IDatastore dataObject)
        {
            ConfigurationWindow configurationWindow = new ConfigurationWindow((ConnectToEventlogConfiguration)configurationBase);

            return(configurationWindow);
        }
예제 #6
0
 public System.Windows.Controls.UserControl RenderConfigurationWindow(ConfigurationBase configurationBase, SDK.Database.IDatastore dataObject)
 {
     return(new ConfigurationWindow(configurationBase as AddDefaultValueConfiguration, dataObject));
 }
예제 #7
0
        public System.Windows.Controls.UserControl RenderConfigurationWindow(ConfigurationBase configurationBase, SDK.Database.IDatastore dataObject)
        {
            ConfigurationWindow configurationWindow = new ConfigurationWindow((LoadFromWebRequestConfiguration)configurationBase);

            return(configurationWindow);
        }
예제 #8
0
        public void TransformData(IConnection connection, SDK.Database.IDatabaseInterface databaseInterface, SDK.Database.IDatastore dataObject, ReportProgressMethod reportProgress)
        {
            foreach (var transformation in this.Configuration.DefaultValues)
            {
                reportProgress(new SimpleProgressReport("Start add default value column " + transformation.ColumnName + ". Value: " + transformation.Value));

                dataObject.AddColumn(new ColumnMetadata(transformation.ColumnName));

                for (int i = 0; i < dataObject.Count; i++)
                {
                    dataObject.SetValue(i, dataObject.Metadata.Columns[transformation.ColumnName].ColumnIndex, transformation.Value);
                }

                reportProgress(new SimpleProgressReport("Finished add default value column " + transformation.ColumnName + ". Value: " + transformation.Value));
            }
        }
예제 #9
0
        public System.Windows.Controls.UserControl RenderConfigurationWindow(ConfigurationBase configurationBase, SDK.Database.IDatastore dataObject)
        {
            ConfigurationWindow configurationWindow = new ConfigurationWindow((TestErrorDelayConfiguration)configurationBase, dataObject);

            return(configurationWindow);
        }
        public void WriteData(IConnection connection, SDK.Database.IDatabaseInterface databaseInterface, SDK.Database.IDatastore dataObject, ReportProgressMethod reportProgress)
        {
            ExcelConnectionObject excelConnection = (ExcelConnectionObject)connection.GetConnection();
            ExcelWorksheet        worksheet       = excelConnection.Worksheet;

            // Write columnheaders into the worksheet
            foreach (var column in dataObject.Metadata.Columns)
            {
                worksheet.SetValue(1, column.Value.ColumnIndex + 1, column.Value.ColumnName);
            }

            // Write data into the worksheet
            for (int row = 0; row < dataObject.Count; row++)
            {
                object[] data = dataObject[row];
                for (int column = 0; column < data.Length; column++)
                {
                    worksheet.SetValue(row + 2, column + 1, data[column]);
                }
            }

            excelConnection.Package.Save();
        }
예제 #11
0
        public UserControl RenderConfigurationWindow(ConfigurationBase configurationBase, SDK.Database.IDatastore dataObject)
        {
            ConfigurationWindow configurationWindow = new ConfigurationWindow((CustomStepConfiguration)configurationBase);

            return(configurationWindow);
        }