Skip to content

Instantly share code, notes, and snippets.

View dbuksbaum's full-sized avatar

David Buksbaum dbuksbaum

View GitHub Profile
@dbuksbaum
dbuksbaum / DebugLogger.cs
Created August 21, 2010 19:41
Simple debug logger to use in Calibrun.Micro
internal class DebugLogger : Caliburn.Micro.ILog
{
#region Implementation of ILog
public void Info(string format, params object[] args)
{
System.Diagnostics.Debug.Write("[" + DateTime.Now.ToString("o") + "] ", "INFO");
System.Diagnostics.Debug.WriteLine(format, args);
}
public void Warn(string format, params object[] args)
{
@dbuksbaum
dbuksbaum / MefBootStrapper.cs
Created August 21, 2010 19:43
Caliburn.Micro BootStrapper that uses MEF
public class MefBootStrapper<TRootModelView> : Bootstrapper<TRootModelView>
{
#region Fields
private readonly ILog _logger = LogManager.GetLog(typeof(MefBootStrapper<TRootModelView>));
private CompositionContainer _container;
#endregion
#region Overrides
protected override void Configure()
{ // configure container
@dbuksbaum
dbuksbaum / CaliburnMicroViewModel.cs
Last active January 17, 2016 05:03
ReSharper File Template to create Caliburn.Micro View-Models
<TemplatesExport family="File Templates">
<Template uid="3d240306-9708-46d9-955c-4f06c2f803a7"
shortcut=""
description="Caliburn Micro View Model"
text="using System;&#xD;&#xA;using Caliburn.Micro;&#xD;&#xA;using $ROOTNAMESPACE$.Messages;&#xD;&#xA;&#xD;&#xA;namespace $NAMESPACE$&#xD;&#xA;{&#xD;&#xA; public class $CLASS$ : $BASECLASS$&#xD;&#xA; {&#xD;&#xA; #region Fields&#xD;&#xA; private readonly IEventAggregator _messageBus;&#xD;&#xA; #endregion&#xD;&#xA; &#xD;&#xA; #region Constructors&#xD;&#xA; public $CLASS$(IEventAggregator messageBus)&#xD;&#xA; {&#xD;&#xA; _messageBus = messageBus;&#xD;&#xA; // Uncomment this if you want to handle any messages&#xD;&#xA; //_messageBus.Subscribe(this);&#xD;&#xA; }&#xD;&#xA; #endregion&#xD;&#xA; $END$&#xD;&#xA; }&#xD;&#xA;}"
reformat="True"
shortenQualifiedReferences="True">
<Context>
<ProjectLanguageContext language="CSharp" />
</Context>
@dbuksbaum
dbuksbaum / ILogExtended.cs
Created July 5, 2011 03:07
ILog derivation for Caliburn.Micro
/// <summary>
/// Extension to the ILog interface to allow for richer Error messages.
/// Based on a discussion in the Caliburn.Micro discussion forum on Codeplex.
/// See <see cref="http://caliburnmicro.codeplex.com/discussions/261656"/>.
/// </summary>
public interface ILogExtended : ILog
{
/// <summary>
/// Logs the message as error.
/// </summary>
@dbuksbaum
dbuksbaum / EventAggregatorExtensions.cs
Created August 19, 2011 15:58
Caliburn.Micro Event Aggregator Extensions
public static class EventAggregatorExtensions
{
public static void Subscribe(this IEventAggregator eventAggregator, params IHandle[] handlers)
{
Subscribe(eventAggregator, (IEnumerable<IHandle>)handlers);
}
public static void Subscribe(this IEventAggregator eventAggregator, IEnumerable<IHandle> handlers)
{
foreach(var handler in handlers)
@dbuksbaum
dbuksbaum / ObjectExtensions.cs
Created January 11, 2012 19:46
Useful ObjectExtensions
public static class ObjectExtensions
{
/// <summary>
/// Returns the result of <paramref name="func"/> if <paramref name="obj"/> is not null.
/// <example>
/// <code>
/// Request.Url.Evaluate(x => x.Query)
/// </code>
/// </example>
/// </summary>
@dbuksbaum
dbuksbaum / SingleInstanceManager.cs
Created January 11, 2012 19:47
SingleInstanceManager
using System;
using System.Linq;
using System.Windows;
using Microsoft.VisualBasic.ApplicationServices;
using StartupEventArgs = Microsoft.VisualBasic.ApplicationServices.StartupEventArgs;
namespace Utility
{
public class SingleInstanceManager : WindowsFormsApplicationBase
{
@dbuksbaum
dbuksbaum / Loader.cs
Created January 11, 2012 19:48
Loader for loading embedded assemblies
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
namespace Utility
{
public class Loader
using Autofac;
using Autofac.Core;
using ReactiveUI;
using Splat;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace ReactiveUI
@dbuksbaum
dbuksbaum / TypeTrackingExtension.cs
Created April 26, 2015 01:38
Type Tracking Extension for Unity
using System;
using Microsoft.Practices.Unity;
using System.Collections.Generic;
namespace Hazware.Commons.Unity
{
public class TypeTrackingExtension : UnityContainerExtension
{
#region Fields
private readonly Dictionary<Type, HashSet<string>> _registeredTypes = new Dictionary<Type, HashSet<string>>();