Skip to content

Instantly share code, notes, and snippets.

@jonsagara
jonsagara / OpmlStats.cs
Created May 24, 2014 17:31
Count OPML folders and feeds
using System;
using System.Linq;
using System.Xml.Linq;
namespace OpmlStats.ConsoleApp
{
class Program
{
private const string OpmlFile = @"C:\Path\To\Your\OpmlFile.opml";
@jonsagara
jonsagara / AnyKeyQuit.xml
Created October 30, 2014 16:30
Snippet for a "Press any key to quit..." prompt in a Visual Studio C# console application
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>AnyKeyQuit</Title>
<Author>Jon Sagara</Author>
<Description>Inserts a &quot;Press any key to quit...&quot; prompt</Description>
<Shortcut>quit</Shortcut>
</Header>
@jonsagara
jonsagara / SampleStruct.cs
Created May 7, 2011 21:02
Sample immutable struct that shows how to override Equals and GetHashCode, as well as the == and != operators
/// <summary>
/// Sample struct that shows how to override GetHashCode and Equals, as well as the == and !=
/// operators.
/// </summary>
/// <remarks>
/// This type is immutable.
/// </remarks>
public struct SampleStruct
{
#region Private Backing Fields
@jonsagara
jonsagara / Pinger.ps1
Created May 26, 2011 06:02
Pinger - Repeatedly pings the specified server until the ping is successful.
# -------------------------------------------------------------------------------------------------
# Pinger.ps1
#
# Repeatedly pings the specified server until the ping is successful.
# -------------------------------------------------------------------------------------------------
# Script params
param([String]$server)
# Script param validation
@jonsagara
jonsagara / SystemTime.cs
Created June 16, 2011 17:51
Abstracting DateTime.Now and DateTime.UtcNow
public static class SystemTime
{
public static Func<DateTime> Now = () => DateTime.Now;
public static Func<DateTime> UtcNow = () => DateTime.UtcNow;
}
@jonsagara
jonsagara / LuceneNetDemo.cs
Created December 20, 2011 17:31
Bare bones Lucene.net console application
using System;
using Lucene.Net.Analysis;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Store;
/// <summary>
/// Checks to see if source is in the items collection.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="source"></param>
/// <param name="items"></param>
/// <returns></returns>
public static bool In<T>(this T source, params T[] items)
{
if (items == null)
@jonsagara
jonsagara / LinqExtensions.cs
Created September 16, 2012 17:16
IQueryable<T> Extensions
public static class LinqExtensions
{
public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, bool isAscending)
{
return isAscending
? source.OrderBy(keySelector)
: source.OrderByDescending(keySelector);
}
public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, bool isAscending)
@jonsagara
jonsagara / SqlVersionToByteArray.cs
Created July 3, 2013 15:55
Convert a SQL Server version to a byte array in C#
var hexNum = "0x000000000000E295";
long result;
long.TryParse(
hexNum.Substring(2),
System.Globalization.NumberStyles.HexNumber | System.Globalization.NumberStyles.AllowHexSpecifier,
System.Globalization.CultureInfo.CurrentCulture,
out result
);
//result.Dump();
var resultBytes = BitConverter.GetBytes(result);
@jonsagara
jonsagara / iPhoneMediaSorter.cs
Created October 13, 2013 23:26
Copy a flat directory of iPhone pictures and videos into a YYYYMM folder structure, based on the date the picture/video was taken.
class Program
{
private const string SourceDirectory = @"D:\iPhoneMedia";
private const string DestDirectory = @"D:\iPhoneMediaSorted";
static void Main(string[] args)
{
var sourceDir = new DirectoryInfo(SourceDirectory);
// Group by YYYYMM