Skip to content

Instantly share code, notes, and snippets.

View DamianSuess's full-sized avatar
👍
Enjoying every day

Damian DamianSuess

👍
Enjoying every day
View GitHub Profile
@DamianSuess
DamianSuess / AlertCheckBox.xaml
Last active October 6, 2021 20:41
Sample three-state CheckBox using Paths
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StreamGeometry x:Key="Blank"></StreamGeometry>
<StreamGeometry x:Key="CheckBoxUnchecked">M5.75,3 L18.25,3 C19.7687831,3 21,4.23121694 21,5.75 L21,18.25 C21,19.7687831 19.7687831,21 18.25,21 L5.75,21 C4.23121694,21 3,19.7687831 3,18.25 L3,5.75 C3,4.23121694 4.23121694,3 5.75,3 Z M5.75,4.5 C5.05964406,4.5 4.5,5.05964406 4.5,5.75 L4.5,18.25 C4.5,18.9403559 5.05964406,19.5 5.75,19.5 L18.25,19.5 C18.9403559,19.5 19.5,18.9403559 19.5,18.25 L19.5,5.75 C19.5,5.05964406 18.9403559,4.5 18.25,4.5 L5.75,4.5 Z</StreamGeometry>
<StreamGeometry x:Key="CheckBoxChecked">M18.25,3 C19.7687831,3 21,4.23121694 21,5.75 L21,18.25 C21,19.7687831 19.7687831,21 18.25,21 L5.75,21 C4.23121694,21 3,19.7687831 3,18.25 L3,5.75 C3,4.23121694 4.23121694,3 5.75,3 L18.25,3 Z M18.25,4.5 L5.75,4.5 C5.05964406,4.5 4.5,5.05964406 4.5,5.75 L4.5,18.25 C4.5,18.9403559 5.05964406
@DamianSuess
DamianSuess / SwitchExpressions.cs
Last active October 22, 2021 18:42
Switch Expressions
// Switch Expression with partial string matching
var dict = new Dictionary<int, string>();
var files = new List<string> { "cloud-records.cfg", "ex1-usergroups.cfg", "ex1-users.cfg", "doesntbelong.cfg" };
foreach (var file in files)
{
var keyName = file switch
{
string s when s.Contains("cloud") => ConfigType.CloudConnection,
string s when s.Contains("usergroups") => ConfigType.FrameSerialNumber,
string s when s.Contains("users") => ConfigType.PCSerialNumber,
@DamianSuess
DamianSuess / DIAutoWireActors.cs
Created January 12, 2022 22:49
Auto detect classes with the suffix 'Actor' and register as Singleton with DI
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
namespace Xeno.StateMachine.Extensions
{
public static class DependencyExtension
{
/// <summary>Auto-wire state machine actors, directors, or coordinators.</summary>
/// <param name="service">MS IOC service.</param>

Git Cheat Sheet

Cloning and set User

$ git clone [REPO-URL]

Setup User Name and Email

@DamianSuess
DamianSuess / Sample REST API Docu.md
Last active July 25, 2022 14:51
Sample RESTful API Documentation Guidelines

TITLE - Web API vX.Y(.Z)

Introduction

Lorem ipsum dolor sit amet, consectetur adipiscing elit

Table of Contents

Prepration (OPTIONAL)

@DamianSuess
DamianSuess / asp.nlog.config
Created July 28, 2022 18:14
Sample NLog Config for ASP.NET
<?xml version="1.0" encoding="utf-8" ?>
<!--
REPLACE: "MyApp" with your app name
Logging Help:
Base log level is set by, 'internalLogLevel'. ASP.NET can override via, 'appsettings.json'
Log Levels: Off|Trace|Debug|Info|Warn|Error|Fatal
-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@DamianSuess
DamianSuess / BuildingDotDevelop.md
Last active August 8, 2022 16:46
Building DotDevelop and MonoDevelop from scratch

Building DotDevelop

Build Steps

Ubuntu 22.04 doesn’t support .NET Core 3.1 or 2.0 since the distro only supports openSSL 3.

sudo apt update
sudo apt install wget
sudo apt install intltool fsharp gtk-sharp2
@DamianSuess
DamianSuess / IJsonService.cs
Created September 14, 2022 20:27
C# Json Service
// <copyright file="IJsonService.cs" company="Xeno Innovations, Inc.">
// Copyright (c) 2022 Xeno Innovations, Inc. All rights reserved.
//
// Reproduction or transmission in whole or in part, in
// any form or by any means, electronic, mechanical, or otherwise, is
// prohibited without the prior written consent of the copyright owner.
// </copyright>
// <author>Damian Suess</author>
using System.Threading.Tasks;
@DamianSuess
DamianSuess / MessageDialogView.axaml
Created February 5, 2023 01:16
Prism.Avalonia - MessageDialogView
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
MaxHeight="{Binding MaxHeight}"
MaxWidth="{Binding MaxWidth}"
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="150"
x:Class="SampleApp.Views.MessageDialogView">
<UserControl.Styles>
<Style Selector="TextBox">
@DamianSuess
DamianSuess / threads.md
Last active January 2, 2024 22:30
Awaiting a task with timeout

C# - Awaiting Task with Timeout

Source Article

Scenerio, you have an awaitable object and you want to await it with a timeout. How would you build that?

What you can do is use a when_any-like function in combination with a timeout coroutine. For C# this would be something like

await Task.WhenAny(