Skip to content

Commit

Permalink
Server Lib 1.2.8.9, Client Lib 1.1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
AbelCheng committed Mar 2, 2016
1 parent 066abaa commit 9ff54a6
Show file tree
Hide file tree
Showing 23 changed files with 102 additions and 100 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@ packages/*/
Server/Sample/packages/*/
Server/NuGet/nupkg/Net*/
Server/DataBooster.DbWebApi/*.nuspec
Server/Sample/MyDbWebApi/Web.config
Server/Sample/MyDbWebApi.Net40/Web.config
112 changes: 56 additions & 56 deletions Client/Net/DataBooster.DbWebApi.Client/DbWebApiClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,24 +152,24 @@ public StoredProcedureResponse Exec(string requestUri, object anonymousTypeInsta
#endregion

#region Bulk Exec as StoredProcedureResponse overloads
public Task<StoredProcedureResponse[]> ExecAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public Task<StoredProcedureResponse[]> ExecAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAsAsync<StoredProcedureResponse[]>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAsAsync<StoredProcedureResponse[]>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public Task<StoredProcedureResponse[]> ExecAsync<T>(string requestUri, ICollection<T> listOfInputParameters)
public Task<StoredProcedureResponse[]> ExecAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsync(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsync(requestUri, bulkInputParameterSets, CancellationToken.None);
}

public StoredProcedureResponse[] Exec<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public StoredProcedureResponse[] Exec<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAs<StoredProcedureResponse[]>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAs<StoredProcedureResponse[]>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public StoredProcedureResponse[] Exec<T>(string requestUri, ICollection<T> listOfInputParameters)
public StoredProcedureResponse[] Exec<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return Exec(requestUri, listOfInputParameters, CancellationToken.None);
return Exec(requestUri, bulkInputParameterSets, CancellationToken.None);
}

#endregion
Expand Down Expand Up @@ -217,24 +217,24 @@ public JObject ExecAsJson(string requestUri, object anonymousTypeInstanceAsInput
#endregion

#region Bulk ExecAsJson overloads
public Task<JObject[]> ExecAsJsonAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public Task<JObject[]> ExecAsJsonAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAsAsync<JObject[]>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAsAsync<JObject[]>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public Task<JObject[]> ExecAsJsonAsync<T>(string requestUri, ICollection<T> listOfInputParameters)
public Task<JObject[]> ExecAsJsonAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsJsonAsync(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsJsonAsync(requestUri, bulkInputParameterSets, CancellationToken.None);
}

public JObject[] ExecAsJson<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public JObject[] ExecAsJson<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAs<JObject[]>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAs<JObject[]>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public JObject[] ExecAsJson<T>(string requestUri, ICollection<T> listOfInputParameters)
public JObject[] ExecAsJson<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsJson(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsJson(requestUri, bulkInputParameterSets, CancellationToken.None);
}
#endregion

Expand Down Expand Up @@ -281,24 +281,24 @@ public XDocument ExecAsXml(string requestUri, object anonymousTypeInstanceAsInpu
#endregion

#region Bulk ExecAsXml overloads
public Task<XDocument> ExecAsXmlAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public Task<XDocument> ExecAsXmlAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAsAsync<XDocument>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAsAsync<XDocument>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public Task<XDocument> ExecAsXmlAsync<T>(string requestUri, ICollection<T> listOfInputParameters)
public Task<XDocument> ExecAsXmlAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsXmlAsync(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsXmlAsync(requestUri, bulkInputParameterSets, CancellationToken.None);
}

public XDocument ExecAsXml<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public XDocument ExecAsXml<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAs<XDocument>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAs<XDocument>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public XDocument ExecAsXml<T>(string requestUri, ICollection<T> listOfInputParameters)
public XDocument ExecAsXml<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsXml(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsXml(requestUri, bulkInputParameterSets, CancellationToken.None);
}

#endregion
Expand Down Expand Up @@ -346,24 +346,24 @@ public string ExecAsString(string requestUri, object anonymousTypeInstanceAsInpu
#endregion

#region Bulk ExecAsString overloads
public Task<string> ExecAsStringAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public Task<string> ExecAsStringAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAsAsync<string>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAsAsync<string>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public Task<string> ExecAsStringAsync<T>(string requestUri, ICollection<T> listOfInputParameters)
public Task<string> ExecAsStringAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsStringAsync<T>(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsStringAsync<T>(requestUri, bulkInputParameterSets, CancellationToken.None);
}

public string ExecAsString<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public string ExecAsString<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAs<string>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAs<string>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public string ExecAsString<T>(string requestUri, ICollection<T> listOfInputParameters)
public string ExecAsString<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsString<T>(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsString<T>(requestUri, bulkInputParameterSets, CancellationToken.None);
}
#endregion

Expand Down Expand Up @@ -410,24 +410,24 @@ public Stream ExecAsStream(string requestUri, object anonymousTypeInstanceAsInpu
#endregion

#region Bulk ExecAsStream overloads
public Task<Stream> ExecAsStreamAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public Task<Stream> ExecAsStreamAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAsAsync<Stream>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAsAsync<Stream>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public Task<Stream> ExecAsStreamAsync<T>(string requestUri, ICollection<T> listOfInputParameters)
public Task<Stream> ExecAsStreamAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsStreamAsync<T>(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsStreamAsync<T>(requestUri, bulkInputParameterSets, CancellationToken.None);
}

public Stream ExecAsStream<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken)
public Stream ExecAsStream<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken)
{
return BulkExecAs<Stream>(requestUri, AsBulkInputParameters(listOfInputParameters), cancellationToken);
return BulkExecAs<Stream>(requestUri, AsBulkInputParameterSets(bulkInputParameterSets), cancellationToken);
}

public Stream ExecAsStream<T>(string requestUri, ICollection<T> listOfInputParameters)
public Stream ExecAsStream<T>(string requestUri, ICollection<T> bulkInputParameterSets)
{
return ExecAsStream<T>(requestUri, listOfInputParameters, CancellationToken.None);
return ExecAsStream<T>(requestUri, bulkInputParameterSets, CancellationToken.None);
}
#endregion

Expand Down Expand Up @@ -489,15 +489,15 @@ protected T ExecAs<T>(string requestUri, object anonymousTypeInstanceAsInputPara

#region Bulk Exec as Generic overloads
#if WEB_API2
protected async Task<T> BulkExecAsAsync<T>(string requestUri, ICollection<IDictionary<string, object>> listOfInputParameters, CancellationToken cancellationToken) where T : class
protected async Task<T> BulkExecAsAsync<T>(string requestUri, ICollection<IDictionary<string, object>> bulkInputParameterSets, CancellationToken cancellationToken) where T : class
{
HttpResponseMessage httpResponse = await BulkExecRawAsync(requestUri, listOfInputParameters, cancellationToken);
HttpResponseMessage httpResponse = await BulkExecRawAsync(requestUri, bulkInputParameterSets, cancellationToken);
return httpResponse.ReadAs<T>();
}
#else // ASP.NET Web API 1
protected Task<T> BulkExecAsAsync<T>(string requestUri, ICollection<IDictionary<string, object>> listOfInputParameters, CancellationToken cancellationToken) where T : class
protected Task<T> BulkExecAsAsync<T>(string requestUri, ICollection<IDictionary<string, object>> bulkInputParameterSets, CancellationToken cancellationToken) where T : class
{
return BulkExecRawAsync(requestUri, listOfInputParameters, cancellationToken).
return BulkExecRawAsync(requestUri, bulkInputParameterSets, cancellationToken).
ContinueWith<T>(requestTask =>
{
if (requestTask.IsCanceled)
Expand All @@ -510,11 +510,11 @@ protected Task<T> BulkExecAsAsync<T>(string requestUri, ICollection<IDictionary<
}
#endif

protected T BulkExecAs<T>(string requestUri, ICollection<IDictionary<string, object>> listOfInputParameters, CancellationToken cancellationToken) where T : class
protected T BulkExecAs<T>(string requestUri, ICollection<IDictionary<string, object>> bulkInputParameterSets, CancellationToken cancellationToken) where T : class
{
try
{
return BulkExecAsAsync<T>(requestUri, listOfInputParameters, cancellationToken).Result;
return BulkExecAsAsync<T>(requestUri, bulkInputParameterSets, cancellationToken).Result;
}
catch (AggregateException ae)
{
Expand Down Expand Up @@ -585,23 +585,23 @@ private IDictionary<string, object> AsInputParameters(object anonymousTypeInstan
#region Bulk Raw Methods
private const string _ErrBulkMethodGet = "Bulk Exec does not support HTTP GET";

protected Task<HttpResponseMessage> BulkExecRawAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken) where T : IDictionary<string, object>
protected Task<HttpResponseMessage> BulkExecRawAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken) where T : IDictionary<string, object>
{
if (_HttpMethod == HttpMethod.Get)
throw new NotSupportedException(_ErrBulkMethodGet);
else
return BulkPostRawAsync(requestUri, listOfInputParameters, cancellationToken);
return BulkPostRawAsync(requestUri, bulkInputParameterSets, cancellationToken);
}

private Task<HttpResponseMessage> BulkPostRawAsync<T>(string requestUri, ICollection<T> listOfInputParameters, CancellationToken cancellationToken) where T : IDictionary<string, object>
private Task<HttpResponseMessage> BulkPostRawAsync<T>(string requestUri, ICollection<T> bulkInputParameterSets, CancellationToken cancellationToken) where T : IDictionary<string, object>
{
if (listOfInputParameters == null)
throw new ArgumentNullException("listOfInputParameters");
if (bulkInputParameterSets == null)
throw new ArgumentNullException("bulkInputParameterSets");

if (listOfInputParameters.Count == 0)
if (bulkInputParameterSets.Count == 0)
return CreateEmptyJsonArrayResponse();

return _HttpClient.PostAsJsonAsync(requestUri, listOfInputParameters, cancellationToken);
return _HttpClient.PostAsJsonAsync(requestUri, bulkInputParameterSets, cancellationToken);
}

private Task<HttpResponseMessage> CreateEmptyJsonArrayResponse()
Expand All @@ -617,11 +617,11 @@ private Task<HttpResponseMessage> CreateEmptyJsonArrayResponse()
return tcs.Task;
}

private ICollection<IDictionary<string, object>> AsBulkInputParameters<T>(ICollection<T> listOfAnonymousTypeParameters)
private ICollection<IDictionary<string, object>> AsBulkInputParameterSets<T>(ICollection<T> bulkAnonymousTypeParameters)
{
ICollection<IDictionary<string, object>> listOfInputParameterDictionary = listOfAnonymousTypeParameters as ICollection<IDictionary<string, object>>;
ICollection<IDictionary<string, object>> bulkInputParameterDictionary = bulkAnonymousTypeParameters as ICollection<IDictionary<string, object>>;

return listOfInputParameterDictionary ?? listOfAnonymousTypeParameters.Select(o => AsInputParameters(o)).ToList();
return bulkInputParameterDictionary ?? bulkAnonymousTypeParameters.Select(o => AsInputParameters(o)).ToList();
}
#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Abel Cheng")]
[assembly: AssemblyProduct("DataBooster.DbWebApi.Client")]
[assembly: AssemblyCopyright("Copyright © Abel Cheng 2015")]
[assembly: AssemblyCopyright("Copyright © 2016 Abel Cheng")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Expand All @@ -32,6 +32,6 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.5.0")]
[assembly: AssemblyFileVersion("1.1.5.0")]
[assembly: AssemblyInformationalVersion("1.1.5-beta")]
[assembly: AssemblyVersion("1.1.6.0")]
[assembly: AssemblyFileVersion("1.1.6.0")]
[assembly: AssemblyInformationalVersion("1.1.6.0")]
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -910,7 +910,7 @@ Invoke-RestMethod -UseDefaultCredentials -method Post -Uri "http://dbwebapi.test
```
-
- <a name="ps-associative-array-parameters"></a>[PL/SQL Associative Array Parameters](http://docs.oracle.com/cd/E51173_01/win.122/e17732/featOraCommand.htm#ODPNT250) (Oracle)
Oracle uses another style, each parameter must be separated as an array of simple data type. See following example,
Oracle uses another style, each parameter must be separated as an array of primitive data type. See following example,
``` PowerShell
$impData = Import-Csv -Path "D:\Test\bulk-100s.csv";
$inpms = @{inItemIds=[int[]]@(0) * $impData.Length; inItemNames=[string[]]@("") * $import.Length; inItemValues=[decimal[]]@(0) * $import.Length; inBatchComment="This is a test load."};
Expand Down Expand Up @@ -941,7 +941,7 @@ To check what exact parameters will be sent to DbWebApi without really executing


### Restrictions
* Only basic database data types are supported -- can be mapped to .NET Framework simple data types which implement the [IConvertible](https://msdn.microsoft.com/en-us/library/system.iconvertible.aspx) interface.
* Only primitive database data types are supported -- can be mapped to .NET Framework simple data types which implement the [IConvertible](https://msdn.microsoft.com/en-us/library/system.iconvertible.aspx) interface.
* Database User-Defined Types, Oracle composite data types (such as Collection Types, Varrays, Nested Tables, etc.) are currently not supported in result set columns nor in sp/func parameters.
[Table-Valued Parameters (SQL Server 2008)](https://msdn.microsoft.com/en-us/library/bb675163.aspx) and [PL/SQL Associative Array Parameters](http://docs.oracle.com/cd/E51173_01/win.122/e17732/featOraCommand.htm#BABBDHBB) are supported only in sp/func input parameters.
* All database procedure-names, function-names, column-names and parameter-names are regarded as case-insensitive.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@
<Reference Include="Newtonsoft.Json">
<HintPath>$(SolutionDir)\packages\Newtonsoft.Json.4.5.6\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="RazorEngine, Version=3.7.6.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL">
<HintPath>..\..\packages\RazorEngine.3.7.6\lib\net40\RazorEngine.dll</HintPath>
<Reference Include="RazorEngine, Version=3.7.7.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL">
<HintPath>..\..\packages\RazorEngine.3.7.7\lib\net40\RazorEngine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@
<HintPath>..\..\packages\Oracle.ManagedDataAccess.12.1.2400\lib\net40\Oracle.ManagedDataAccess.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="RazorEngine, Version=3.7.6.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL">
<HintPath>..\..\packages\RazorEngine.3.7.6\lib\net40\RazorEngine.dll</HintPath>
<Reference Include="RazorEngine, Version=3.7.7.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL">
<HintPath>..\..\packages\RazorEngine.3.7.7\lib\net40\RazorEngine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@
<HintPath>Oracle.DataAccess.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="RazorEngine, Version=3.7.6.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL">
<HintPath>..\..\packages\RazorEngine.3.7.6\lib\net40\RazorEngine.dll</HintPath>
<Reference Include="RazorEngine, Version=3.7.7.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL">
<HintPath>..\..\packages\RazorEngine.3.7.7\lib\net40\RazorEngine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
Expand Down
Loading

0 comments on commit 9ff54a6

Please sign in to comment.