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 / 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

@rido-min
rido-min / device.cs
Last active April 13, 2021 05:22
self-describing-devices
using Microsoft.Azure.Devices.Client;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace rido_self_describing
{
@rido-min
rido-min / TwinWritablePropsWithPatch.cs
Last active March 27, 2021 00:44
TwinWritablePropsWithPatch
using Microsoft.Azure.Devices;
using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices.Shared;
using Newtonsoft.Json;
using System;
using System.Threading.Tasks;
namespace rido_learn_WritableProperties
{
class Program
@rido-min
rido-min / device.cs
Created March 11, 2021 06:03
C2DModules
using Microsoft.Azure.Devices.Client;
using System;
using System.IO;
using System.Threading.Tasks;
namespace c2d_device
{
class Program
{
static async Task Main(string[] args)