-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve docs: add dotnet examples to record APIs doc.
- Loading branch information
Showing
9 changed files
with
251 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/code-style-rule-options | ||
|
||
############################### | ||
# Core EditorConfig Options # | ||
############################### | ||
root = true | ||
# All files | ||
[*] | ||
indent_style = space | ||
end_of_line = lf | ||
charset = utf-8 | ||
|
||
# XML project files | ||
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] | ||
indent_size = 2 | ||
|
||
# XML config files | ||
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] | ||
indent_size = 2 | ||
|
||
# Code files | ||
[*.{cs,csx,vb,vbx}] | ||
indent_size = 2 | ||
insert_final_newline = true | ||
|
||
############################### | ||
# .NET Coding Conventions # | ||
############################### | ||
# [*.{cs,vb}] | ||
# # Organize usings | ||
# dotnet_sort_system_directives_first = true | ||
# # this. preferences | ||
# dotnet_style_qualification_for_field = false:silent | ||
# dotnet_style_qualification_for_property = false:silent | ||
# dotnet_style_qualification_for_method = false:silent | ||
# dotnet_style_qualification_for_event = false:silent | ||
# # Language keywords vs BCL types preferences | ||
# dotnet_style_predefined_type_for_locals_parameters_members = true:silent | ||
# dotnet_style_predefined_type_for_member_access = true:silent | ||
# # Parentheses preferences | ||
# dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent | ||
# dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent | ||
# dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent | ||
# dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent | ||
# # Modifier preferences | ||
# dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent | ||
# dotnet_style_readonly_field = true:suggestion | ||
# # Expression-level preferences | ||
# dotnet_style_object_initializer = true:suggestion | ||
# dotnet_style_collection_initializer = true:suggestion | ||
# dotnet_style_explicit_tuple_names = true:suggestion | ||
# dotnet_style_null_propagation = true:suggestion | ||
# dotnet_style_coalesce_expression = true:suggestion | ||
# dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent | ||
# dotnet_style_prefer_inferred_tuple_names = true:suggestion | ||
# dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion | ||
# dotnet_style_prefer_auto_properties = true:silent | ||
# dotnet_style_prefer_conditional_expression_over_assignment = true:silent | ||
# dotnet_style_prefer_conditional_expression_over_return = true:silent | ||
# ############################### | ||
# # Naming Conventions # | ||
# ############################### | ||
# # Style Definitions | ||
# dotnet_naming_style.pascal_case_style.capitalization = pascal_case | ||
# # Use PascalCase for constant fields | ||
# dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion | ||
# dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields | ||
# dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style | ||
# dotnet_naming_symbols.constant_fields.applicable_kinds = field | ||
# dotnet_naming_symbols.constant_fields.applicable_accessibilities = * | ||
# dotnet_naming_symbols.constant_fields.required_modifiers = const | ||
# ############################### | ||
# # C# Coding Conventions # | ||
# ############################### | ||
# [*.cs] | ||
# # var preferences | ||
# csharp_style_var_for_built_in_types = true:silent | ||
# csharp_style_var_when_type_is_apparent = true:silent | ||
# csharp_style_var_elsewhere = true:silent | ||
# # Expression-bodied members | ||
# csharp_style_expression_bodied_methods = false:silent | ||
# csharp_style_expression_bodied_constructors = false:silent | ||
# csharp_style_expression_bodied_operators = false:silent | ||
# csharp_style_expression_bodied_properties = true:silent | ||
# csharp_style_expression_bodied_indexers = true:silent | ||
# csharp_style_expression_bodied_accessors = true:silent | ||
# # Pattern matching preferences | ||
# csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion | ||
# csharp_style_pattern_matching_over_as_with_null_check = true:suggestion | ||
# # Null-checking preferences | ||
# csharp_style_throw_expression = true:suggestion | ||
# csharp_style_conditional_delegate_call = true:suggestion | ||
# # Modifier preferences | ||
# csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:suggestion | ||
# # Expression-level preferences | ||
# csharp_prefer_braces = true:silent | ||
# csharp_style_deconstructed_variable_declaration = true:suggestion | ||
# csharp_prefer_simple_default_expression = true:suggestion | ||
# csharp_style_prefer_local_over_anonymous_function = true:suggestion | ||
# csharp_style_inlined_variable_declaration = true:suggestion | ||
|
||
# ############################### | ||
# # C# Formatting Rules # | ||
# ############################### | ||
# # New line preferences | ||
#csharp_new_line_before_open_brace = all:warning | ||
csharp_new_line_before_open_brace = false | ||
# csharp_new_line_before_else = true | ||
# csharp_new_line_before_catch = true | ||
# csharp_new_line_before_finally = true | ||
# csharp_new_line_before_members_in_object_initializers = true | ||
# csharp_new_line_before_members_in_anonymous_types = true | ||
# csharp_new_line_between_query_expression_clauses = true | ||
# # Indentation preferences | ||
# csharp_indent_case_contents = true | ||
# csharp_indent_switch_labels = true | ||
# csharp_indent_labels = flush_left | ||
# # Space preferences | ||
# csharp_space_after_cast = false | ||
# csharp_space_after_keywords_in_control_flow_statements = true | ||
# csharp_space_between_method_call_parameter_list_parentheses = false | ||
# csharp_space_between_method_declaration_parameter_list_parentheses = false | ||
# csharp_space_between_parentheses = false | ||
# csharp_space_before_colon_in_inheritance_clause = true | ||
# csharp_space_after_colon_in_inheritance_clause = true | ||
# csharp_space_around_binary_operators = before_and_after | ||
# csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | ||
# csharp_space_between_method_call_name_and_opening_parenthesis = false | ||
# csharp_space_between_method_call_empty_parameter_list_parentheses = false | ||
|
||
# Wrapping preferences | ||
csharp_preserve_single_line_statements = true | ||
csharp_preserve_single_line_blocks = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
bin/ | ||
obj/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
using TrailBase; | ||
using System.Text.Json.Nodes; | ||
|
||
public partial class Examples { | ||
public static async Task<RecordId> Create(Client client) { | ||
return await client.Records("simple_strict_table").Create(JsonNode.Parse("""{"text_not_null": "test"}""")); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
using TrailBase; | ||
|
||
public partial class Examples { | ||
public static async Task Delete(Client client, RecordId id) { | ||
await client.Records("simple_strict_table").Delete(id); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
using Xunit; | ||
using TrailBase; | ||
|
||
public class ExamplesTestFixture : IDisposable { | ||
public ExamplesTestFixture() { } | ||
|
||
public void Dispose() { } | ||
} | ||
|
||
public class ExamplesTest : IClassFixture<ExamplesTestFixture> { | ||
ExamplesTestFixture fixture; | ||
|
||
public ExamplesTest(ExamplesTestFixture fixture) { | ||
this.fixture = fixture; | ||
} | ||
|
||
public async Task<Client> Connect() { | ||
var client = new Client("http://localhost:4000", null); | ||
await client.Login("admin@localhost", "secret"); | ||
return client; | ||
} | ||
|
||
[Fact] | ||
public async Task BasicTest() { | ||
var client = await Connect(); | ||
|
||
var id = await Examples.Create(client); | ||
|
||
Console.WriteLine($"ID: {id}"); | ||
|
||
{ | ||
var record = await Examples.Read(client, id); | ||
Console.WriteLine($"ID: {record}"); | ||
Assert.Equal("test", record!["text_not_null"]!.ToString()); | ||
} | ||
|
||
{ | ||
await Examples.Update(client, id); | ||
var record = await Examples.Read(client, id); | ||
Assert.Equal("updated", record!["text_not_null"]!.ToString()); | ||
} | ||
|
||
await Examples.Delete(client, id); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
using TrailBase; | ||
using System.Text.Json.Nodes; | ||
|
||
public partial class Examples { | ||
public static async Task<JsonNode?> Read(Client client, RecordId id) { | ||
return await client.Records("simple_strict_table").Read<JsonNode>(id); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
using TrailBase; | ||
using System.Text.Json.Nodes; | ||
|
||
public partial class Examples { | ||
public static async Task Update(Client client, RecordId id) { | ||
await client.Records("simple_strict_table").Update(id, JsonNode.Parse("""{"text_not_null": "updated"}""")); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net9.0</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="../../../client/trailbase-dotnet/src/TrailBase.csproj" /> | ||
|
||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" /> | ||
<PackageReference Include="xunit" Version="2.9.3" /> | ||
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.1"> | ||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
<PrivateAssets>all</PrivateAssets> | ||
</PackageReference> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters