Skip to content

Instantly share code, notes, and snippets.

View rido-min's full-sized avatar
💭
coding

Rido rido-min

💭
coding
View GitHub Profile
@rido-min
rido-min / DTDLParserExtensions.cs
Last active April 8, 2022 17:50
DTDLParserExtensions.cs
namespace dtdl_dotnet
{
using Microsoft.Azure.DigitalTwins.Parser;
using Microsoft.Azure.DigitalTwins.Parser.Models;
public static class DtmiExtensions
{
public static string ToPath(this Dtmi dtmi) => $"{dtmi.ToString().ToLowerInvariant().Replace(":", "/").Replace(";", "-")}.json";
}
public static class ModelParserExtensions
Convert.ToBase64String(Encoding.UTF8.GetBytes(Guid.Empty.ToString("N")))
@rido-min
rido-min / X.Y.Z.Sources.csproj
Created October 12, 2021 06:37 — forked from attilah/X.Y.Z.Sources.csproj
X.Y.Z.Sources nuget package
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netstandard1.0</TargetFramework>
<IsPackable>true</IsPackable>
<IncludeBuildOutput>false</IncludeBuildOutput>
<ContentTargetFolders>contentFiles</ContentTargetFolders>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
@rido-min
rido-min / JSONExtensions.cs
Created September 30, 2021 22:28
JSONExtensions
// https://stackoverflow.com/questions/58138793/system-text-json-jsonelement-toobject-workaround
// https://stackoverflow.com/questions/61553962/getting-nested-properties-with-system-text-json
static class JsonExtensions
{
public static JsonElement GetJsonElement(this JsonElement jsonElement, string path)
{
if (jsonElement.ValueKind is JsonValueKind.Null or JsonValueKind.Undefined)
return default;
string[] segments = path.Split('.', StringSplitOptions.RemoveEmptyEntries);
@rido-min
rido-min / maps.json
Last active July 11, 2021 19:36
DTDL Maps
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:rido:maps;1",
"@type": "Interface",
"displayName": "maps",
"contents": [
{
"@type": "Property",
"writable": true,
"name": "networkConfig",
@rido-min
rido-min / DefaultTwinProps.cs
Created July 7, 2021 00:46
DefaultTwinProps
using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices.Shared;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Text;
using System.Threading.Tasks;
namespace STS.Device
{
@rido-min
rido-min / validateAll.ps1
Created April 21, 2021 02:04
powershell one liner
gci -r dtmi/**/*.json | foreach { dmr-client validate -m $_.FullName --strict --repo . --debug }
@rido-min
rido-min / Resolver.cs
Last active April 20, 2021 22:56
Resolver
using Microsoft.Azure.DigitalTwins.Parser;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
namespace ResolutionSample
{
class Resolver
{
@rido-min
rido-min / UpdateComplexObjectWithDT.cs
Created April 13, 2021 20:31
UpdateComplexObjectWithDT
using Microsoft.Azure.Devices;
using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices.Serialization;
using Microsoft.Azure.Devices.Shared;
using Newtonsoft.Json;
using System;
using System.Threading.Tasks;
namespace rido_learn_WritableProperties
{
@rido-min
rido-min / SelfDescribingDevice.md
Created April 13, 2021 20:09
Self Describing Device

Self Describing Device

This PoC shows how to use a base interface to describe the capabilities needed to implement self describing devices