public override DataTableStore GetDataTable(DataTableStore dt) { //Create a Schema Mapping Helper DataSchemaMapping mapping = new DataSchemaMapping(SchemaMap, Side); //Get the Rates from Yahoo Dictionary <string, double> rates = GetFXRates(); //Calculate the Conversion Rate from other base currency double conversion_rate = 1 / rates[BaseCurrency]; //Create a Sorted List of Rates var rateList = new List <string>(); foreach (string k in rates.Keys) { rateList.Add(k); } rateList.Sort(); //Populate the Rates Table foreach (string k in rateList) { var newRow = dt.NewRow(); foreach (DataSchemaItem item in SchemaMap.GetIncludedColumns()) { string columnName = mapping.MapColumnToDestination(item); switch (columnName) { case "Currency": { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(k, item.DataType); break; } case "Rate": { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(Math.Round(rates[k] * conversion_rate, 4), item.DataType); break; } default: { break; } } } if (dt.Rows.Add(newRow) == DataTableStore.ABORT) { break; } } return(dt); }
public override DataTableStore GetDataTable(DataTableStore dt) { dt.AddIdentifierColumn(typeof(string)); var uriHelper = new MailChimpUriHelper(APIKey); var mapping = new DataSchemaMapping(SchemaMap, Side); var schema = MailChimpDataSchema.MailChimpListSchema(); helper.SetAuthorizationHeader(APIKey); var result = helper.GetRequestAsJson(uriHelper.ListServiceUrl); if (result["lists"] != null) { foreach (var item_row in result["lists"]) { var newRow = dt.NewRow(); foreach (DataSchemaItem item in SchemaMap.GetIncludedColumns()) { string columnName = mapping.MapColumnToDestination(item); var schemaItem = schema[columnName]; if (schemaItem.IsSubValue) { foreach (var six in item_row[schemaItem.ObjectName]) { foreach (var sub_item in item_row[schemaItem.ObjectName].Children <JProperty>()) { if (sub_item.Name.Equals(schemaItem.FieldName)) { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(sub_item.Value, item.DataType); } } } } else { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(item_row[schemaItem.FieldName], item.DataType); } } if (dt.Rows.AddWithIdentifier(newRow, DataSchemaTypeConverter.ConvertTo <string>(item_row["id"])) == DataTableStore.ABORT) { break; } } } return(dt); }
public override DataTableStore GetDataTable(DataTableStore dt, DataTableKeySet keyset) { dt.AddIdentifierColumn(typeof(string)); var uriHelper = new MailChimpUriHelper(APIKey); var mapping = new DataSchemaMapping(SchemaMap, Side); var schema = MailChimpDataSchema.MailChimpMemberSchema(); var hash_helper = new HashHelper(HashHelper.HashType.MD5); var included_columns = SchemaMap.GetIncludedColumns(); helper.SetAuthorizationHeader(APIKey); var target_index = mapping.MapColumnToDestination(keyset.KeyColumn); foreach (var key in keyset.KeyValues) { var index = key; if (target_index.Equals("email_address")) { index = hash_helper.GetHashAsString(DataSchemaTypeConverter.ConvertTo <string>(key)).ToLower(); } try { var result = helper.GetRequestAsJson($"{uriHelper.ListServiceUrl}/{ListId}/members/{index}"); var newRow = dt.NewRow(); var id = ProcessRow(mapping, schema, included_columns, result, newRow); if (dt.Rows.AddWithIdentifier(newRow, id) == DataTableStore.ABORT) { break; } } catch (WebException e) { var response = e.Response as HttpWebResponse; if (response.StatusCode == HttpStatusCode.NotFound) { continue; } throw; } } return(dt); }
public override DataTableStore GetDataTable(DataTableStore dt) { // Key this Data Set by the Filename dt.AddIdentifierColumn(typeof(string)); var mapping = new DataSchemaMapping(SchemaMap, Side); var columns = SchemaMap.GetIncludedColumns(); var modifiedSince = string.IsNullOrEmpty(ModifiedSinceUTC) ? default(DateTime?) : DateTime.SpecifyKind(DateTime.Parse(ModifiedSinceUTC), DateTimeKind.Utc); using (Session session = GetSession()) { // Get the Files from the Server GetFiles(session, session.ListDirectory(Path), RecuirseFolders, dt, mapping, columns, modifiedSince); } return(dt); }
public override DataTableStore GetDataTable(DataTableStore dt) { dt.AddIdentifierColumn(typeof(string)); var uriHelper = new MailChimpUriHelper(APIKey); var mapping = new DataSchemaMapping(SchemaMap, Side); var schema = MailChimpDataSchema.MailChimpMemberSchema(); var included_columns = SchemaMap.GetIncludedColumns(); int total_items = 0; int count = 0; bool abort = false; helper.SetAuthorizationHeader(APIKey); do { var result = helper.GetRequestAsJson($"{uriHelper.ListServiceUrl}/{ListId}/members?count={PageSize}&offset={count}"); total_items = result["total_items"].ToObject <int>(); if (result["members"] != null) { foreach (var item_row in result["members"]) { count++; var newRow = dt.NewRow(); var id = ProcessRow(mapping, schema, included_columns, item_row, newRow); if (dt.Rows.AddWithIdentifier(newRow, id) == DataTableStore.ABORT) { abort = true; break; } } } } while (!abort && count < total_items); return(dt); }
public override DataTableStore GetDataTable(DataTableStore dt) { //Set the Datasource Identifier. dt.AddIdentifierColumn(typeof(int)); DataSchemaMapping mapping = new DataSchemaMapping(SchemaMap, Side); IList <DataSchemaItem> columns = SchemaMap.GetIncludedColumns(); var schema = DataSourceInfo.GetPipedriveDataSchema(helper); int start = 0; bool continue_load = false; do { var result = helper.GetRequestAsJson($"{DataSourceInfo.PipedriveEndpointUrl}&start={start}&limit={PageSize}"); //Loop around your data adding it to the DataTableStore dt object. foreach (var item_row in result["data"]) { if (dt.Rows.AddWithIdentifier(mapping, columns, (item, columnName) => { var pds = schema[columnName]; return(pds.Parser.ParseValue(item_row[columnName])); } , item_row["id"].ToObject <int>()) == DataTableStore.ABORT) { break; } } continue_load = result["additional_data"]?["pagination"] != null && result["additional_data"]["pagination"]["more_items_in_collection"].ToObject <bool>(); if (continue_load) { start = result["additional_data"]["pagination"]["next_start"].ToObject <int>(); } } while (continue_load); return(dt); }
private void GetFiles(Session session, RemoteDirectoryInfo directoryInfo, bool recuirse, DataTableStore dt, DataSchemaMapping mapping, IList <DataSchemaItem> columns, DateTime?modifiedSince) { if (directoryInfo == null) { return; } if (dt.ContinueLoad != null && !dt.ContinueLoad(0)) { return; } foreach (RemoteFileInfo file in directoryInfo.Files) { if (file.IsDirectory) { if (recuirse) { if (file.IsParentDirectory == false && file.IsThisDirectory == false) { var folder = session.ListDirectory(file.FullName); if (folder != null) { GetFiles(session, folder, recuirse, dt, mapping, columns, modifiedSince); } } } } else { var fileName = Utility.StripStartSlash(file.FullName.Substring(Path.Length)); var fileModified = file.LastWriteTime.ToUniversalTime(); var newRow = dt.NewRow(); foreach (DataSchemaItem item in columns) { string columnName = mapping.MapColumnToDestination(item); switch (columnName) { case "FullFileName": { if (WebFriendlyPaths) { newRow[item.ColumnName] = fileName != null?DataSchemaTypeConverter.ConvertTo <string>(fileName).Replace("\\", "/") : fileName; } else { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(fileName, item.DataType); } break; } case "Path": { string path = Utility.StripStartSlash(System.IO.Path.GetDirectoryName(file.FullName).Substring(Path.Length)); if (WebFriendlyPaths) { newRow[item.ColumnName] = path != null?DataSchemaTypeConverter.ConvertTo <string>(path).Replace("\\", "/") : path; } else { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(path, item.DataType); } break; } case "FileName": { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(file.Name, item.DataType); break; } case "DateCreated": case "DateModified": { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(fileModified, item.DataType); break; } case "Length": { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(file.Length, item.DataType); break; } default: { break; } } } if (LikeOperator.LikeString(fileName, FilterPattern, Microsoft.VisualBasic.CompareMethod.Binary)) { if (modifiedSince != null && modifiedSince.HasValue) { if (fileModified >= modifiedSince) { dt.Rows.AddWithIdentifier(newRow, file.FullName); } } else { dt.Rows.AddWithIdentifier(newRow, file.FullName); } } } } }