カスタム開発でC#のクライアントを作成する例

あらかじめ例「バーコードで物品管理」を実行し、エンドポイントを作成しておきます。

まず、Dropboxをインストールし、アカウントを作成して下さい。 その後、弊社にて該当アカウントに対して共有フォルダの設定をしますので、それに応じて該当アカウントにフォルダ共有が通知されますのでOKを押して受け入れて下さい。そうしますとファイルがローカルPCのDropboxフォルダ内にダウンロードされます。(「カスタム開発でエンドポイントを編集/追加する例」と同様です)

そして、プロジェクトにC#クライアント出力を設定します。

出力パスは既存Proxyの設定を元に類似を設定します。又、「ターゲットサーバのプロジェクトソース出力」とは、この設定に対となるProxy Server側の出力設定をリストから選択します。

次に、ビルドします。(方法はクイックスタートのステップ5を参照下さい)

ビルドをするとC#の呼び出しに必要な各種クラスが生成され、Dropbox共有フォルダにファイルが保存されます。

Visual Studioでプロジェクトを作成します。 今回、WPFプロジェクトで作成します。

ソースファイルをプロジェクトに追加します。

Visual Studioプロジェクトに「参照」を追加します。

WPFウィンドウにボタンを追加し、クリックイベントを設定します。

ソースを以下のように書き換えます。  例「バーコードで物品管理」で作成したバーコード指定でデータ取得するエンドポイントにアクセスします

private async void button_Click(object sender, RoutedEventArgs e)     ← 非同期処理のため async を指定
{
DBClasses.AssetInfoProxyGetSpecificAssetByBarcodeRequestParams param = new DBClasses.AssetInfoProxyGetSpecificAssetByBarcodeRequestParams(); ← パラメータ用クラス
param.TOKEN = "????"; ← TOKENを指定
param.param_AssetInfo_Barcode_where = "9784845623556"; ← パラメータを指定

DBClasses.AssetInfoProxyClient client = new DBClasses.AssetInfoProxyClient(); ← クライアント用のクラスを使用
DBClasses.AssetInfoProxyGetSpecificAssetByBarcodeProxyResult result = await client.GetSpecificAssetByBarcode(param); ← 非同期で実行
if (result.Status == DBClasses.ProxyResultStatusType.OK)
{
Console.WriteLine("Success!"); ← 成功
Console.WriteLine("Item Name: " + result.Result.ItemName); ← コンソールに結果を表示
Console.WriteLine("Description: " + result.Result.Description); コンソールに結果を表示
}
else
{
Console.WriteLine("Failed! Result: " + result.Status); 失敗
}
}

実行すると以下のように出力されます

Success!
Item Name: def book
Description: this is def...

違う関数の例です。 例「バーコードで物品管理」で作成した、データを全て取得するエンドポイントにアクセスします。

private async void button1_Click(object sender, RoutedEventArgs e)
{
DBClasses.AssetInfoProxyGetAllListRequestParams param = new DBClasses.AssetInfoProxyGetAllListRequestParams();
param.TOKEN = "????";

DBClasses.AssetInfoProxyClient client = new DBClasses.AssetInfoProxyClient();
DBClasses.AssetInfoProxyGetAllListProxyResult result = await client.GetAllList(param);
if (result.Status == DBClasses.ProxyResultStatusType.OK)
{
Console.WriteLine("Success!");
for(int i = 0; i < result.Result.Count; i++) ← 結果をリストで取得します
{
Console.WriteLine(string.Format("Item {0}/{1}:", i + 1, result.Result.Count));
Console.WriteLine("Barcode: " + result.Result[i].Barcode);
Console.WriteLine("Item Name: " + result.Result[i].ItemName);
Console.WriteLine("Description: " + result.Result[i].Description);
}
}
else
{
Console.WriteLine("Failed! Result: " + result.Status);
}
}

実行すると以下のように出力されます

Success!

Item 1/2:
Barcode: 1923073020005
Item Name: ABC book
Description: This is ABC...

Item 2/2:
Barcode: 9784845623556
Item Name: DEF Travel Book
Description: This is DEF...

違う関数の例です。 例「バーコードで物品管理」で作成した、データを追加するエンドポイントにアクセスします。

private async void button2_Click(object sender, RoutedEventArgs e)
{
DBClasses.AssetInfoProxyInsertAssetRequestParams param = new DBClasses.AssetInfoProxyInsertAssetRequestParams();
param.TOKEN = "????";
param.AssetInfoObj = new DBClasses.AssetInfoData();
param.AssetInfoObj.Barcode = "9784845623556";
param.AssetInfoObj.ItemName = "New Item Name";
param.AssetInfoObj.Description = "New Description";

DBClasses.AssetInfoProxyClient client = new DBClasses.AssetInfoProxyClient();
DBClasses.AssetInfoProxyInsertAssetProxyResult result = await client.InsertAsset(param);
if (result.Status == DBClasses.ProxyResultStatusType.OK)
{
Console.WriteLine("Success!");
}
else
{
Console.WriteLine("Failed! Result: " + result.Status);
}
}

違う関数の例です。 例「バーコードで物品管理」で作成した、バーコード指定でデータを更新するエンドポイントにアクセスします。

private async void button3_Click(object sender, RoutedEventArgs e)
{
DBClasses.AssetInfoProxyUpdateAssetRequestParams param = new DBClasses.AssetInfoProxyUpdateAssetRequestParams();
param.TOKEN = "????";
param.AssetInfoObj = new DBClasses.AssetInfoData();
param.AssetInfoObj.Barcode = "9784845623556";
param.AssetInfoObj.ItemName = "Updated Item Name";
param.AssetInfoObj.Description = "Updated Description";

DBClasses.AssetInfoProxyClient client = new DBClasses.AssetInfoProxyClient();
DBClasses.AssetInfoProxyUpdateAssetProxyResult result = await client.UpdateAsset(param);
if (result.Status == DBClasses.ProxyResultStatusType.OK)
{
Console.WriteLine("Success!");
}
else
{
Console.WriteLine("Failed! Result: " + result.Status);
}
}

※カスタム開発オプションなしでC#からエンドポイントにアクセスする例は「C#でエンドポイントにアクセス」を参照下さい

戻る

ログイン当サイトのユーザ名(ID)でログイン
クイックログイン:Facebookのアカウントで即時ログイン(ログイン情報保持オプション:ON) / 新規登録


お問い合わせ

© 2016-2019 Matsuesoft Corporation