public static void ExtractDataExtension(SoapClient soapClient, string DataExtensionCustomerKey, string FileName) { ExtractRequest er = new ExtractRequest(); er.ID = "bb94a04d-9632-4623-be47-daabc3f588a6"; // Always set an StartDate to the value specified ExtractParameter epOne = new ExtractParameter(); epOne.Name = "StartDate"; epOne.Value = "1/1/1900 1:00:00 AM"; // Always set an StartDate to the value specified ExtractParameter epTwo = new ExtractParameter(); epTwo.Name = "EndDate"; epTwo.Value = "1/1/1900 1:00:00 AM"; // Always set an _Async to 0 ExtractParameter epThree = new ExtractParameter(); epThree.Name = "_AsyncID"; epThree.Value = "0"; ExtractParameter epFour = new ExtractParameter(); epFour.Name = "OutputFileName"; epFour.Value = FileName; ExtractParameter epFive = new ExtractParameter(); epFive.Name = "DECustomerKey"; epFive.Value = DataExtensionCustomerKey; ExtractParameter epSix = new ExtractParameter(); epSix.Name = "HasColumnHeaders"; epSix.Value = "true"; er.Parameters = new ExtractParameter[] { epOne, epTwo, epThree, epFour, epFive, epSix }; string sRequestId; string sStatus; ExtractResult[] results; sStatus = soapClient.Extract(new ExtractRequest[] { er }, out sRequestId, out results); Console.WriteLine("Status: " + sStatus); Console.WriteLine("Request ID: " + sRequestId); foreach (ExtractResult eresult in results) { Console.WriteLine("StatusCode: " + eresult.StatusCode); Console.WriteLine("ErrorCode: " + eresult.ErrorCode); Console.WriteLine("StatusMessage: " + eresult.StatusMessage); } }
public static void ExtractDataExtension(SoapClient soapClient, string DataExtensionCustomerKey, string FileName) { ExtractRequest er = new ExtractRequest(); er.ID = "bb94a04d-9632-4623-be47-daabc3f588a6"; // Always set an StartDate to the value specified ExtractParameter epOne = new ExtractParameter(); epOne.Name = "StartDate"; epOne.Value = "1/1/1900 1:00:00 AM"; // Always set an StartDate to the value specified ExtractParameter epTwo = new ExtractParameter(); epTwo.Name = "EndDate"; epTwo.Value = "1/1/1900 1:00:00 AM"; // Always set an _Async to 0 ExtractParameter epThree = new ExtractParameter(); epThree.Name = "_AsyncID"; epThree.Value = "0"; ExtractParameter epFour = new ExtractParameter(); epFour.Name = "OutputFileName"; epFour.Value = FileName; ExtractParameter epFive = new ExtractParameter(); epFive.Name = "DECustomerKey"; epFive.Value = DataExtensionCustomerKey; ExtractParameter epSix = new ExtractParameter(); epSix.Name = "HasColumnHeaders"; epSix.Value = "true"; er.Parameters = new ExtractParameter[] {epOne, epTwo, epThree, epFour, epFive, epSix }; string sRequestId; string sStatus; ExtractResult[] results; sStatus = soapClient.Extract(new ExtractRequest[] { er }, out sRequestId, out results); Console.WriteLine("Status: " + sStatus); Console.WriteLine("Request ID: " + sRequestId); foreach (ExtractResult eresult in results) { Console.WriteLine("StatusCode: " + eresult.StatusCode); Console.WriteLine("ErrorCode: " + eresult.ErrorCode); Console.WriteLine("StatusMessage: " + eresult.StatusMessage); } }
/// <summary> /// 拷贝构造函数。 /// </summary> /// <param name="extractParameter">等值线/面的提取参数对象。</param> /// <exception cref="ArgumentNullException">等值线/面的提取参数为 null 时抛出异常。</exception> public ExtractParameter(ExtractParameter extractParameter) { if (extractParameter == null) throw new ArgumentNullException(); if (extractParameter.ClipRegion != null) { this.ClipRegion = new Geometry(extractParameter.ClipRegion); } this.DatumValue = extractParameter.DatumValue; this.Interval = extractParameter.Interval; this.ResampleTolerance = extractParameter.ResampleTolerance; this.Smoothness = extractParameter.Smoothness; if (extractParameter.ExpectedZValues != null) { int length = extractParameter.ExpectedZValues.Length; this.ExpectedZValues = new double[length]; for (int i = 0; i < length; i++) { this.ExpectedZValues[i] = extractParameter.ExpectedZValues[i]; } } }
public void IsoLine_PointDatasetIsNull() { try { //string pointDataset = "SamplesP@Interpolation"; QueryParameter filterQueryParameter = new QueryParameter() { AttributeFilter = "SmID>0" }; string zValueField = "AVG_WTR"; double resolution = 3000; ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 500, Smoothness = 3 }; DataReturnOption resultSetting = new DataReturnOption(); resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET; resultSetting.DeleteExistResultDataset = true; resultSetting.Dataset = "isoLine@Interpolation"; resultSetting.ExpectCount = 0; string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(null, filterQueryParameter, zValueField, resolution, parameter, resultSetting); Assert.IsNull(actualResult); } catch (Exception e) { Assert.AreEqual("参数不能为空。\r\n参数名: pointDataset", e.Message); } }
public void IsoLine_PointDataset() { string pointDataset = "SamplesP@Interpolation"; QueryParameter filterQueryParameter = new QueryParameter() { AttributeFilter = "SmID>0" }; string zValueField = "AVG_WTR"; double resolution = 3000; ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 500, Smoothness = 3 }; DataReturnOption resultSetting = new DataReturnOption(); resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET; resultSetting.DeleteExistResultDataset = true; resultSetting.Dataset = "isoLine@Interpolation"; resultSetting.ExpectCount = 0; string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(pointDataset, filterQueryParameter, zValueField, resolution, parameter, resultSetting); Assert.IsTrue(actualResult.Succeed); Assert.AreEqual(45, actualResult.Recordset.Features.Length); Assert.AreEqual(10, actualResult.Recordset.Fields.Length); Assert.AreEqual("DZVALUE", actualResult.Recordset.Features[6].FieldNames[9]); Assert.AreEqual("1000.0", actualResult.Recordset.Features[6].FieldValues[9]); Assert.AreEqual(resultSetting.Dataset, actualResult.Dataset); }
/// <summary> /// <para>用于从一个点集合中提取等值线,方法的实现原理是先利用点集合中存储的第三维信息(高程或者温度等),也就是除了点的坐标信息的数据,对点数据进行插值分析,得到栅格数据集(中间结果数据集),接着从栅格数据集中提取等值线。</para> /// </summary> /// <param name="points">进行分析的点数组。</param> /// <param name="zValues">各点的高程值数组,该数组长度必须与points相同。</param> /// <param name="resolution">中间结果(栅格数据集)的分辨率。</param> /// <param name="parameter">提取等值线的参数,必设参数。设置光滑度、重采样距离等,请参见 <see cref="ExtractParameter"/> 类。</param> /// <param name="resultSetting">返回值设置参数,设置是否返回记录、是否创建结果数据集等。</param> /// <returns>根据返回值设置参数返回相应的信息。</returns> /// <exception cref="ArgumentNullException">参数 parameter 为空时抛出异常。</exception> /// <exception cref="SuperMap.Connector.Utility.ServiceException">服务端处理错误时抛出异常。</exception> /// <example>请参见 <see cref="IsoLine(string, QueryParameter, string, double, ExtractParameter, DataReturnOption)"/></example> public DatasetSpatialAnalystResult IsoLine(Point2D[] points, double[] zValues, double resolution, ExtractParameter parameter, DataReturnOption resultSetting) { if (parameter == null) { throw new ArgumentNullException("parameter", Resources.ArgumentIsNotNull); } return _spatialAnalystProvier.IsoLine(points, zValues, resolution, parameter, resultSetting); }
/// <summary> /// 用于从栅格数据集中提取等值线。 /// </summary> /// <param name="gridDataset">需分析的栅格数据集标识。</param> /// <param name="parameter">提取等值线的参数,必设参数。设置光滑度、重采样距离等,请参见 <see cref="ExtractParameter"/> 类。</param> /// <param name="resultSetting">返回值设置参数,设置是否返回记录、是否创建结果数据集等。</param> /// <returns>根据返回值设置参数返回相应的信息。</returns> /// <exception cref="ArgumentNullException">参数 gridDataset,parameter 为空时抛出异常。</exception> /// <exception cref="SuperMap.Connector.Utility.ServiceException">服务端处理错误时抛出异常。</exception> /// <example>请参见 <see cref="IsoLine(string, QueryParameter, string, double, ExtractParameter, DataReturnOption)"/></example> public DatasetSpatialAnalystResult IsoLine(string gridDataset, ExtractParameter parameter, DataReturnOption resultSetting) { if (string.IsNullOrEmpty(gridDataset)) { throw new ArgumentNullException("gridDataset", Resources.ArgumentIsNotNull); } if (parameter == null) { throw new ArgumentNullException("parameter", Resources.ArgumentIsNotNull); } return _spatialAnalystProvier.IsoLine(gridDataset, parameter, resultSetting); }
/// <summary> /// 用于从点数据集中提取等值线,该方法的实现原理是先对点数据集进行插值分析, 得到栅格数据集(方法实现的中间结果),接着从栅格数据集中提取等值线。 /// </summary> /// <param name="pointDataset">进行分析的点数据集标识(datasetName@datasourceName)。</param> /// <param name="filterQueryParameter">对点数据集中的点对象进行过滤的 属性过滤条件。只有满足过滤条件的点才参与分析。</param> /// <param name="zValueField">高程字段名。</param> /// <param name="resolution">中间结果(栅格数据集)的分辨率。</param> /// <param name="parameter">提取等值线的参数,必设参数。设置光滑度、重采样距离等,请参见 <see cref="ExtractParameter"/> 类。</param> /// <param name="resultSetting">返回值设置参数,设置是否返回记录、是否创建结果数据集等。</param> /// <returns>根据返回值设置参数返回相应的信息。</returns> /// <exception cref="ArgumentNullException">参数 pointDataset,parameter 为空时抛出异常。</exception> /// <exception cref="SuperMap.Connector.Utility.ServiceException">服务端处理错误时抛出异常。</exception> /// 以下示范代码演示如何对一个点数据集进行提取等值线操作。 /// <example> /// <code> /// class Program /// { /// static void Main(string[] args) /// { /// //根据服务组件地址初始化一个SpatialAnalyst对象 /// SpatialAnalyst spatialAnalyst = new SpatialAnalyst("http://*****:*****@Interpolation"; //进行分析的点数据集标识 /// string zValueField = "AVG_WTR"; //高程字段名 /// double resolution = 3000; //中间结果(栅格数据集)的分辨率 /// /// //对点数据集中的点对象进行过滤的过滤条件 /// QueryParameter filterQueryParameter = new QueryParameter() /// { /// AttributeFilter = "SmID>0" /// }; /// /// //等值线的提取参数设置类 /// ExtractParameter parameter = new ExtractParameter() /// { /// DatumValue = 0, /// Interval = 500, /// Smoothness = 3 /// }; /// /// //返回值设置参数 /// DataReturnOption resultSetting = new DataReturnOption() /// { /// DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET, /// DeleteExistResultDataset = true, /// Dataset = "isoLine@Interpolation" /// }; /// /// //执行提取等值线操作 /// DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(pointDataset, filterQueryParameter, zValueField, resolution, parameter, resultSetting); /// Console.WriteLine("提取的等值线个数为:{0}", actualResult.Recordset.Features.Length); /// Console.ReadLine(); /// } /// } /// </code> /// </example> public DatasetSpatialAnalystResult IsoLine(string pointDataset, QueryParameter filterQueryParameter, string zValueField, double resolution, ExtractParameter parameter, DataReturnOption resultSetting) { if (string.IsNullOrEmpty(pointDataset)) { throw new ArgumentNullException("pointDataset", Resources.ArgumentIsNotNull); } if (parameter == null) { throw new ArgumentNullException("parameter", Resources.ArgumentIsNotNull); } return _spatialAnalystProvier.IsoLine(pointDataset, filterQueryParameter, zValueField, resolution, parameter, resultSetting); }
public void IsoLine_PointsIsNull() { #region zValues定义 double[] zValues = new double[37]; zValues[0] = 52.98; zValues[1] = 25.74; zValues[2] = 62.94; zValues[3] = 50.82; zValues[4] = 41.36; zValues[5] = 41.66; zValues[6] = 64.66; zValues[7] = 23.7; zValues[8] = 40.74; zValues[9] = 3.12; zValues[10] = 139.32; zValues[11] = 41.48; zValues[12] = 28.48; zValues[13] = 61.92; zValues[14] = 52.22; zValues[15] = 44.54; zValues[16] = 56.54; zValues[17] = 85.22; zValues[18] = 48.94; zValues[19] = 55.2; zValues[20] = 52.8; zValues[21] = 27.5; zValues[22] = 39.34; zValues[23] = 56.22; zValues[24] = 39.12; zValues[25] = 27.72; zValues[26] = 34.84; zValues[27] = 49.26; zValues[28] = 55.14; zValues[29] = 333.26; zValues[30] = 42.76; zValues[31] = 26.42; zValues[32] = 54.32; zValues[33] = 50.88; zValues[34] = 56.96; zValues[35] = 35.2; zValues[36] = 49.14; #endregion try { double resolution = 3000; ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 5, Smoothness = 3 }; DataReturnOption resultSetting = new DataReturnOption(); resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET; resultSetting.DeleteExistResultDataset = true; resultSetting.Dataset = "isoLine@Interpolation"; resultSetting.ExpectCount = 0; string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(null, zValues, resolution, parameter, resultSetting); Assert.IsTrue(actualResult.Succeed); } catch (Exception e) { Assert.AreEqual("点数组为null。", e.Message); } }
public DatasetSpatialAnalystResult IsoLineInternal(string DatasetName, QueryParameter filterQueryParameter, string zValueField, double? resolution, ExtractParameter parameter, DataReturnOption resultSetting) { string baseUrl = string.Format("{0}/spatialanalyst/datasets/{1}/isoline.json?returnContent=true", this._serviceUrl, DatasetName); ExtractRequestParameter isoLineParameter = new ExtractRequestParameter(filterQueryParameter, zValueField, resolution, parameter, resultSetting); string strIsoLineResult = SynchHttpRequest.GetRequestString(baseUrl, HttpRequestMethod.POST, JsonConvert.SerializeObject(isoLineParameter)); return JsonConvert.DeserializeObject<DatasetSpatialAnalystResult>(strIsoLineResult); }
public DatasetSpatialAnalystResult IsoLine(string gridDataset, ExtractParameter parameter, DataReturnOption resultSetting) { return IsoLineInternal(gridDataset, null, null, null, parameter, resultSetting); }
public DatasetSpatialAnalystResult IsoLine(string pointDataset, QueryParameter filterQueryParameter, string zValueField, double resolution, ExtractParameter parameter, DataReturnOption resultSetting) { return IsoLineInternal(pointDataset, filterQueryParameter, zValueField, resolution, parameter, resultSetting); }
/// <summary> /// Constructor /// </summary> /// <param name="extract">The method for extracting our parameter</param> public ACMeasurement(ExtractData extractsim, ExtractParameter <ACMeasurement> extractparam) { this.extractsim = extractsim ?? throw new ArgumentNullException(nameof(extractsim)); this.extractparam = extractparam ?? throw new ArgumentNullException(nameof(extractparam)); Analysis = new AC("ACMeasurement"); }
/// <summary> /// Constructor /// </summary> /// <param name="extractsim">Method for getting a data point</param> /// <param name="extractparam">Method for extracting the parameter from the data</param> public DCMeasurement(ExtractData extractsim, ExtractParameter <DCMeasurement> extractparam) { this.extractsim = extractsim; this.extractparam = extractparam; }
public void IsoLine_gridDataset() { string gridDataset = "JingjinTerrain@Jingjin"; ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 1000, Smoothness = 3 }; DataReturnOption resultSetting = new DataReturnOption(); resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET; resultSetting.DeleteExistResultDataset = true; resultSetting.Dataset = "isoLine@Jingjin"; resultSetting.ExpectCount = 0; string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(gridDataset, parameter, resultSetting); Assert.IsTrue(actualResult.Succeed); Assert.AreEqual(229, actualResult.Recordset.Features.Length); Assert.AreEqual(10, actualResult.Recordset.Fields.Length); Assert.AreEqual(resultSetting.Dataset, actualResult.Dataset); }
public void IsoLine_gridDatasetIsNull() { try { //string gridDataset = "JingjinTerrain@Jingjin"; ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 1000, Smoothness = 3 }; DataReturnOption resultSetting = new DataReturnOption(); resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET; resultSetting.DeleteExistResultDataset = true; resultSetting.Dataset = "isoLine@Jingjin"; resultSetting.ExpectCount = 0; string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(null, parameter, resultSetting); Assert.IsNull(actualResult); } catch (Exception e) { Assert.AreEqual("参数不能为空。\r\n参数名: gridDataset", e.Message); } }
public DatasetSpatialAnalystResult IsoLine(Point2D[] points, double[] zValues, double resolution, ExtractParameter parameter, DataReturnOption resultSetting) { string baseUrl = string.Format("{0}/spatialanalyst/geometry/isoline.json?returnContent=true", this._serviceUrl); ExtractRequestParameter isoLineParameter = new ExtractRequestParameter(points, zValues, resolution, parameter, resultSetting); string strIsoLineResult = SynchHttpRequest.GetRequestString(baseUrl, HttpRequestMethod.POST, JsonConvert.SerializeObject(isoLineParameter)); return JsonConvert.DeserializeObject<DatasetSpatialAnalystResult>(strIsoLineResult); }
public void IsoLine_ZValuesIsNull() { #region points定义 Point2D[] points = new Point2D[37]; points[0] = new Point2D() { X = 603598.5523083061, Y = 4479242.9705482665 }; points[1] = new Point2D() { X = 604604.99079498206, Y = 4475916.8166897586 }; points[2] = new Point2D() { X = 605069.2609360615, Y = 4473869.0317084016 }; points[3] = new Point2D() { X = 597849.28197854816, Y = 4473651.4819765529 }; points[4] = new Point2D() { X = 603468.453516089, Y = 4470350.5931883259 }; points[5] = new Point2D() { X = 602541.93949575315, Y = 4469362.1116667259 }; points[6] = new Point2D() { X = 596899.866483911, Y = 4468956.9705482665 }; points[7] = new Point2D() { X = 611758.72419415938, Y = 4476101.0380845685 }; points[8] = new Point2D() { X = 617993.01585132082, Y = 4476567.4355759053 }; points[9] = new Point2D() { X = 613072.97264934448, Y = 4472425.6988057708 }; points[10] = new Point2D() { X = 627141.18584939465, Y = 4457193.8117718957 }; points[11] = new Point2D() { X = 625007.69450436556, Y = 4475141.6919775512 }; points[12] = new Point2D() { X = 614985.55448035314, Y = 4470280.1570427939 }; points[13] = new Point2D() { X = 623901.71600422217, Y = 4466666.2160042226 }; points[14] = new Point2D() { X = 629656.95681366918, Y = 4463716.8953833878 }; points[15] = new Point2D() { X = 630173.95911998034, Y = 4457012.0457131462 }; points[16] = new Point2D() { X = 633914.753754354, Y = 4455004.6871154737 }; points[17] = new Point2D() { X = 621395.54110947042, Y = 4453979.7040218329 }; points[18] = new Point2D() { X = 611692.43432728737, Y = 4436168.7267506663 }; points[19] = new Point2D() { X = 616883.140989274, Y = 4429417.4819765529 }; points[20] = new Point2D() { X = 622919.669528409, Y = 4462913.665593328 }; points[21] = new Point2D() { X = 601313.33628629846, Y = 4455293.7974051712 }; points[22] = new Point2D() { X = 612859.7380792771, Y = 4469688.8599254563 }; points[23] = new Point2D() { X = 619859.663734605, Y = 4437419.6528260121 }; points[24] = new Point2D() { X = 619986.40953671513, Y = 4446273.7524305694 }; points[25] = new Point2D() { X = 602602.790723978, Y = 4467207.2437627846 }; points[26] = new Point2D() { X = 601017.54226018267, Y = 4466159.2634545071 }; points[27] = new Point2D() { X = 624837.92738216463, Y = 4470922.0728896968 }; points[28] = new Point2D() { X = 627808.4361812321, Y = 4462623.96090279 }; points[29] = new Point2D() { X = 601553.40045858407, Y = 4460450.558360938 }; points[30] = new Point2D() { X = 604564.45904654567, Y = 4462898.198077416 }; points[31] = new Point2D() { X = 617863.82231001207, Y = 4457545.3749187626 }; points[32] = new Point2D() { X = 614289.80053016217, Y = 4449796.8294377672 }; points[33] = new Point2D() { X = 604825.97279867844, Y = 4462217.1334855324 }; points[34] = new Point2D() { X = 629571.82174916321, Y = 4472069.90070569 }; points[35] = new Point2D() { X = 612746.39144627, Y = 4443343.5426283237 }; points[36] = new Point2D() { X = 626928.06164879026, Y = 4469283.120878025 }; #endregion try { double resolution = 3000; ExtractParameter parameter = new ExtractParameter() { DatumValue = 0, Interval = 5, Smoothness = 3 }; DataReturnOption resultSetting = new DataReturnOption(); resultSetting.DataReturnMode = DataReturnMode.DATASET_AND_RECORDSET; resultSetting.DeleteExistResultDataset = true; resultSetting.Dataset = "isoLine@Interpolation"; resultSetting.ExpectCount = 0; string serviceUrl = string.Format("http://{0}:8090/iserver/services/spatialanalyst-sample/restjsr", ip); SpatialAnalyst spatialAnalyst = new SpatialAnalyst(serviceUrl); DatasetSpatialAnalystResult actualResult = spatialAnalyst.IsoLine(points, null, resolution, parameter, resultSetting); Assert.IsTrue(actualResult.Succeed); } catch (Exception e) { Assert.AreEqual("第三维值数组为null。", e.Message); } }
private ExtractResponse PerformDataExtract(string extractType, string[] paramNames) { //Check AuthStub is not null before performing any operation. if (AuthStub == null) { throw new ApplicationException("Auth Stub not initialized. Initialize AuthStub before performing extract operation."); } AuthStub.RefreshToken(); if (extractTypes == null) { PopulateExtractTypes(); } var eparams = new List <ExtractParameter>(); var type = this.GetType(); var flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; var props = type.GetProperties(flags); foreach (var pname in paramNames) { var prop = type.GetProperty(pname); if (prop == null) { throw new ApplicationException(string.Format("Invalid property name passed : {0}", pname)); } if (pname == "OutputFileName" && string.IsNullOrWhiteSpace(prop.GetValue(this, null).ToString())) { throw new ApplicationException("Output file name not initialized. Initialize Output file name before performing extract operation."); } var val = prop.GetValue(this, null).ToString(); if (prop.PropertyType == typeof(DateTime)) { val = ((DateTime)prop.GetValue(this, null)).ToString("MM/dd/yyyy hh:mm tt"); } var eparam = new ExtractParameter { Name = prop.Name, Value = val }; eparams.Add(eparam); } using (var scope = new OperationContextScope(AuthStub.SoapClient.InnerChannel)) { ExtractRequest1 er = new ExtractRequest1(); var req = new ExtractRequest { ID = extractTypes[extractType], Parameters = eparams.ToArray(), Options = new ExtractOptions() }; er.Requests = new[] { req }; // Add oAuth token to SOAP header. XNamespace ns = "http://exacttarget.com"; var oauthElement = new XElement(ns + "oAuthToken", AuthStub.InternalAuthToken); var xmlHeader = MessageHeader.CreateHeader("oAuth", "http://exacttarget.com", oauthElement); OperationContext.Current.OutgoingMessageHeaders.Add(xmlHeader); var httpRequest = new HttpRequestMessageProperty(); OperationContext.Current.OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name, httpRequest); httpRequest.Headers.Add(HttpRequestHeader.UserAgent, ETClient.SDKVersion); var response = AuthStub.SoapClient.ExtractAsync(er).Result; return(new ExtractResponse { Results = response.Results, OverallStatus = response.OverallStatus, RequestID = response.RequestID }); } }