Skip to content

Commit 5482f4c

Browse files
authored
Merge pull request #85 from TorstenDittmann/master
fix(dotnet): update deps, templates and examples
2 parents 4f7fe0b + 191f569 commit 5482f4c

File tree

5 files changed

+61
-14
lines changed

5 files changed

+61
-14
lines changed

src/SDK/Language/DotNet.php

+51-4
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,52 @@ public function getTypeName($type)
167167
*/
168168
public function getParamDefault(array $param)
169169
{
170-
return '';
170+
$type = $param['type'] ?? '';
171+
$default = $param['default'] ?? '';
172+
$required = $param['required'] ?? '';
173+
174+
if($required) {
175+
return '';
176+
}
177+
178+
$output = ' = ';
179+
180+
if(empty($default) && $default !== 0 && $default !== false) {
181+
switch ($type) {
182+
case self::TYPE_NUMBER:
183+
case self::TYPE_INTEGER:
184+
case self::TYPE_BOOLEAN:
185+
$output .= 'null';
186+
break;
187+
case self::TYPE_STRING:
188+
$output .= '""';
189+
break;
190+
case self::TYPE_ARRAY:
191+
$output .= '[]';
192+
break;
193+
case self::TYPE_OBJECT:
194+
$output .= '{}';
195+
break;
196+
}
197+
}
198+
else {
199+
switch ($type) {
200+
case self::TYPE_NUMBER:
201+
case self::TYPE_INTEGER:
202+
case self::TYPE_ARRAY:
203+
case self::TYPE_OBJECT:
204+
$output .= $default;
205+
break;
206+
case self::TYPE_BOOLEAN:
207+
$output .= ($default) ? 'true' : 'false';
208+
break;
209+
case self::TYPE_STRING:
210+
$output .= "\"{$default}\"";
211+
break;
212+
}
213+
}
214+
215+
return $output;
171216
}
172217

173218
/**
@@ -197,22 +242,24 @@ public function getParamExample(array $param)
197242
$output .= '""';
198243
break;
199244
case self::TYPE_OBJECT:
200-
$output .= 'new Object()';
245+
$output .= '[object]';
201246
break;
202247
case self::TYPE_ARRAY:
203-
$output .= '{}';
248+
$output .= '[List<object>]';
204249
break;
205250
}
206251
}
207252
else {
208253
switch ($type) {
209-
case self::TYPE_OBJECT:
210254
case self::TYPE_FILE:
211255
case self::TYPE_NUMBER:
212256
case self::TYPE_INTEGER:
213257
case self::TYPE_ARRAY:
214258
$output .= $example;
215259
break;
260+
case self::TYPE_OBJECT:
261+
$output .= '[object]';
262+
break;
216263
case self::TYPE_BOOLEAN:
217264
$output .= ($example) ? 'true' : 'false';
218265
break;

templates/dotnet/src/Appwrite/Appwrite.csproj.twig

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netcoreapp3.1</TargetFramework>
3+
<TargetFrameworks>netcoreapp3.1;net461;netstandard2.0;</TargetFrameworks>
4+
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0</TargetFrameworks>
45
<PackageId>{{spec.title}}</PackageId>
56
<Version>{{sdk.version}}</Version>
67
<Authors>{{spec.contactName}}</Authors>
@@ -17,7 +18,9 @@
1718
</PropertyGroup>
1819

1920
<ItemGroup>
21+
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
2022
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
23+
<PackageReference Include="System.Net.Http" Version="4.3.4" />
2124
<None Include="..\..\icon.png" Pack="true" PackagePath="$(PackageIcon)"/>
2225
</ItemGroup>
2326

templates/dotnet/src/Appwrite/Client.cs.twig

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Globalization;
43
using System.IO;
54
using System.Net;
65
using System.Net.Http;

templates/dotnet/src/Appwrite/Helpers/ExtensionMethods.cs

+5-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
using Newtonsoft.Json;
22
using Newtonsoft.Json.Converters;
33
using Newtonsoft.Json.Serialization;
4+
using System;
45
using System.Collections.Generic;
5-
using System.Collections.Specialized;
6-
using System.Linq;
7-
using System.Web;
86

97
namespace {{ spec.title | caseUcfirst }}
108
{
@@ -24,7 +22,7 @@ public static string ToJson(this Dictionary<string, object> dict)
2422

2523
public static string ToQueryString(this Dictionary<string, object> parameters)
2624
{
27-
NameValueCollection query = HttpUtility.ParseQueryString(string.Empty);
25+
List<string> query = new List<string>();
2826

2927
foreach (KeyValuePair<string, object> parameter in parameters)
3028
{
@@ -34,16 +32,16 @@ public static string ToQueryString(this Dictionary<string, object> parameters)
3432
{
3533
foreach(object entry in (dynamic) parameter.Value)
3634
{
37-
query.Add(parameter.Key + "[]", entry.ToString());
35+
query.Add(parameter.Key + "[]=" + Uri.EscapeUriString(entry.ToString()));
3836
}
3937
}
4038
else
4139
{
42-
query.Add(parameter.Key, parameter.Value.ToString());
40+
query.Add(parameter.Key + "=" + Uri.EscapeUriString(parameter.Value.ToString()));
4341
}
4442
}
4543
}
46-
return query.ToString();
44+
return string.Join("&", query);
4745
}
4846

4947
}

tests/SDKTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class SDKTest extends TestCase
6464
'mkdir -p tests/sdks/dotnet/src/test',
6565
'cp tests/languages/dotnet/tests.ps1 tests/sdks/dotnet/src/test/tests.ps1',
6666
'cp -R tests/sdks/dotnet/io/appwrite/src/* tests/sdks/dotnet/src',
67-
'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dotnet/src mcr.microsoft.com/dotnet/sdk:5.0.101-alpine3.12-amd64 dotnet publish -c Release -o test',
67+
'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dotnet/src mcr.microsoft.com/dotnet/sdk:5.0.101-alpine3.12-amd64 dotnet publish -c Release -o test -f netstandard2.0',
6868
],
6969
'envs' => [
7070
'powershell' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dotnet/src/test/ mcr.microsoft.com/powershell:alpine-3.11 pwsh tests.ps1',

0 commit comments

Comments
 (0)