Skip to content

Instantly share code, notes, and snippets.

@cdroulers
cdroulers / RazorTemplateRenderer.cs
Last active June 24, 2020 23:40
Simple replacement for RazorLight in .NET Core 2.0 (licensed under The Unlicense https://choosealicense.com/licenses/unlicense/)
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
@cdroulers
cdroulers / opencover-to-ncover.xlst
Created August 24, 2017 19:07
XSLT file to transform opencover output to nCover output.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" standalone="yes"/>
<xsl:template match="/CoverageSession/Modules">
<coverage>
<xsl:for-each select="Module[not(@skippedDueTo)]">
<module name="{ModuleName}">
<xsl:for-each select="Classes/Class">
<xsl:if test="count(Methods/Method) &gt; 0">
<class name="{FullName}">
@cdroulers
cdroulers / trx-to-junit.xslt
Last active February 28, 2020 14:52
Transform dotnet test output (TRX) to jUnit format for CI purposes.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a ="http://microsoft.com/schemas/VisualStudio/TeamTest/2006" xmlns:b ="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" >
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<testsuites>
<xsl:variable name="buildName" select="//a:TestRun/@name"/>
<xsl:variable name="numberOfTests" select="count(//a:UnitTestResult/@testId) + count(//b:UnitTestResult/@testId)"/>
<xsl:variable name="numberOfFailures" select="count(//a:UnitTestResult/@outcome[.='Failed']) + count(//b:UnitTestResult/@outcome[.='Failed'])" />
<xsl:variable name="numberOfErrors" select="count(//a:UnitTestResult[not(@outcome)]) + count(//b:UnitTestResult[not(@outcome)])" />
<xsl:variable name="numberSkipped" select="count(//a:UnitTestResult/@outcome[.!='Passed' and .!='Failed']) + count(//b:UnitTestResult/@outcome[.!='Passed' and .!='Failed'])" />
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" cdata-section-elements="message stack-trace"/>
<xsl:template match="/">
<testsuites>
<xsl:for-each select="//assembly">
<testsuite>
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
<xsl:attribute name="tests"><xsl:value-of select="@total"/></xsl:attribute>
<xsl:attribute name="failures"><xsl:value-of select="@failed"/></xsl:attribute>
@cdroulers
cdroulers / PostBuild.cmd
Created February 1, 2016 15:01
Post-build event to generate list of files for Chutzpah and all.d.ts.
if $(ConfigurationName) == Debug (
copy /Y "$(ProjectDir)..\Helpers\bin\$(ConfigurationName)\Helpers.exe" "$(TargetDir)"
copy /Y "$(TargetPath).config" "$(TargetDir)Helpers.exe.config"
$(TargetDir)Helpers.exe "$(TargetPath)" "Web.Helpers.Web.BundleHelper" "Main"
)
@cdroulers
cdroulers / XmlType.cs
Created May 29, 2015 11:56
An NHibernate Mutable Type for XML in SQL Server.
[Serializable]
public class XmlType<T> : MutableType
where T : class
{
public XmlType()
: base(new XmlSqlType())
{
}
@cdroulers
cdroulers / build.fsx
Created May 7, 2015 00:11
FAKE target to run code coverage on NUnit tests
open Fake.OpenCoverHelper
let buildDir = "./build/"
let coverageDir = buildDir + "coverage/"
let testsDir = buildDir + "tests/"
Target "RunNUnitTests" (fun _ ->
let assembliesToTest = (" ", (!! (buildDir + "/*.Tests.dll"))) |> System.String.Join
CreateDir coverageDir
CreateDir testsDir
@cdroulers
cdroulers / Sample.tsv
Last active February 23, 2024 11:38
A sample tab separated file.
Some parameter Other parameter Last parameter
CONST 123456 12.45
@cdroulers
cdroulers / BaseEntity.ts
Last active May 23, 2016 21:53
BaseEntity for blog post about TypeScript and JSON.stringify (http://cdroulers.com/blog/2015/04/22/typescript-properties-and-json-stringify/)
module shared {
"use strict";
export interface IMapOptions {
Properties: { [key: string]: (x: any) => any };
Ignore?: string[];
PropertyNames?: { [key: string]: string };
}
function includeProperty(mapOptions: IMapOptions, prop: string) {
<div>
<input type="text" ng-model="ctrl.SomeProperty"><br>
<input type="text" ng-model="ctrl.SomeModel.SomeField" ng-show="ctrl.ShouldShow()"><br>
</div>
// Usage of the directive:
<my-directive model="Whatever"></my-directive>