Skip to content

Instantly share code, notes, and snippets.

@alonam
alonam / ToolWindowStyles.xaml
Created November 18, 2016 08:46 — forked from timsneath/ToolWindowStyles.xaml
Resource dictionary to map VS themes onto standard WPF controls
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vs="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0">
<Style TargetType="UserControl">
<Setter Property="Background" Value="{DynamicResource {x:Static vs:EnvironmentColors.ToolWindowBackgroundBrushKey}}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static vs:EnvironmentColors.ToolWindowTextBrushKey}}"/>
</Style>
@alonam
alonam / Preconditions.cs
Created December 8, 2016 11:34
Preconditions
using System;
namespace Preconditions
{
/// <summary>
/// Preconditions for checking method arguments, state etc.
/// </summary>
public static class Preconditions
{
/// <summary>
@alonam
alonam / Ping.cs
Last active May 11, 2018 18:22
AnyStatus Plugin
using AnyStatus.API;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
[DisplayName("Health Check Example")]
[DisplayColumn("My Category")]
[Description("My health check description.")]
public class MyHealthCheck : Widget, IHealthCheck, IWebPage, ISchedulable, IStartable, IStoppable, IRestartable
{
[Required]
@alonam
alonam / Pong.cs
Last active May 11, 2018 18:27
AnyStatus Handler
using AnyStatus.API;
using System.Threading.Tasks;
public class MyHealthChecker : ICheckHealth<MyHealthCheck>
{
public async Task Handle(HealthCheckRequest<MyHealthCheck> request, CancellationToken cancellationToken)
{
var myHealthCheck = request.DataContext;
await Task.Delay(1).ConfigureAwait(false);
@alonam
alonam / WindowPlacement.cs
Last active September 6, 2022 03:39 — forked from anonymous/WindowPlacement.cs
WPF Window Placement
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
using System.Windows.Interop;
using System.Xml;
using System.Xml.Serialization;
namespace WindowPlacementExample
@alonam
alonam / app.config.xml
Created January 30, 2018 08:48 — forked from yoeun/app.config.xml
NLog settings in app.config and web.config files
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="default" xsi:type="File"
fileName="C:\logs\app-log.txt"
archiveFileName="C:\logs\archives\app-log.{#}.txt"
@alonam
alonam / jekyll-liquid-random-number.html
Created March 12, 2018 19:45 — forked from sweisgerber-dev/jekyll-liquid-random-number.html
Jekyll/Liquid Random number generation hack
<!-- Random ID generation -->
{% assign min = 0 %}
{% assign max = 1000 %}
{% assign diff = max | minus: min %}
{% assign randomNumber = "now" | date: "%N" | modulo: diff | plus: min %}
<!-- /Random ID generation -->
using AnyStatus.API;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
[DisplayName("My Widget")]
[DisplayColumn("My Category")]
[Description("My widget description.")]
public class MyWidget : Widget, IHealthCheck, ISchedulable, IStartable, IStoppable
{
[Required]
using AnyStatus.API;
using System.Threading.Tasks;
public class MyWidgetHealthCheck : ICheckHealth<MyWidget>
{
public async Task Handle(HealthCheckRequest<MyWidget> request, CancellationToken cancellationToken)
{
var myWidget = request.DataContext;
await Task.Delay(1).ConfigureAwait(false);
@alonam
alonam / CollectionSynchronizer.cs
Last active June 8, 2019 09:17
Collection Synchronizer
public class CollectionSynchronizer<TSource, TDestination>
{
public Action<TSource> Add { get; set; }
public Action<TDestination> Remove { get; set; }
public Action<TSource, TDestination> Update { get; set; }
public Func<TSource, TDestination, bool> Compare { get; set; }
/// <summary>
/// Synchronize changes from source to destination collection.
/// Source collection is not changed.