Skip to content

Instantly share code, notes, and snippets.

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.Collections.Generic;
@ShawInnes
ShawInnes / MonoCecilReferenceCount.cs
Created July 11, 2014 06:38
Mono.Cecil Get Method Reference Count
private static int GetReferenceCount(Type type, string undesiredTypeName)
{
UriBuilder uri = new UriBuilder(type.Assembly.CodeBase);
string path = Uri.UnescapeDataString(uri.Path);
AssemblyDefinition assemblyDefinition = AssemblyDefinition.ReadAssembly(path);
TypeDefinition vm = assemblyDefinition.Modules.SelectMany(m => m.GetTypes().Where(p => p.FullName == type.FullName)).Single();
int referenceCount = vm.Methods.Where(p => p.HasBody)
.SelectMany(p => p.Body.Instructions.Where(i => i.OpCode.Code == Mono.Cecil.Cil.Code.Call &&
((Mono.Cecil.MethodReference)i.Operand).DeclaringType.FullName.Equals(undesiredTypeName))).Count();
@ShawInnes
ShawInnes / LocalDbTestHelper.cs
Created July 14, 2014 06:00
LocalDb helper for unit testing with EF
public class LocalDb : IDisposable
{
public static string DatabaseDirectory = "Data";
public string ConnectionStringName { get; private set; }
public string DatabaseName { get; private set; }
public string OutputFolder { get; private set; }
public string DatabaseMdfPath { get; private set; }
public string DatabaseLogPath { get; private set; }
public LocalDb(string databaseName = null)
@ShawInnes
ShawInnes / LambdaGenericPropertySetter.cs
Created July 17, 2014 05:53
Lambda Generic Property Setter
void Main()
{
Test instance = new Test();
instance.Dump("Before");
instance.GetSetting(p => p.Thing);
instance.GetSetting(p => p.AnotherThing);
instance.GetSetting(p => p.StringThing);
instance.Dump("After");
}
@ShawInnes
ShawInnes / .gitignore
Last active August 29, 2015 14:16
logstash api importer
.DS_Store
data/
@ShawInnes
ShawInnes / sff2015.md
Last active August 29, 2015 14:17
Spanish Film Festival 2015
@ShawInnes
ShawInnes / background.less
Created April 20, 2015 10:30
Background Gradient
@background: #0A10AB;
html {
background: @background;
background: linear-gradient(to bottom, lighten(@background, 0%), darken(@background, 100%));
min-height: 100%;
}
body {
//// define this on the app module
.factory('notify', ['$rootScope', function($rootScope) {
var sharedService = {};
sharedService.message = '';
sharedService.prepForBroadcast = function(msg) {
this.message = msg;
this.broadcastItem();
};
@ShawInnes
ShawInnes / masstransit4node.js
Created April 21, 2015 12:36
Node.js MassTransit Listener
var amqp = require('amqp');
console.log('create connection');
var connection = amqp.createConnection({ host: '10.0.1.59' });
console.log('done');
// Wait for connection to become established.
connection.on('ready', function () {
@ShawInnes
ShawInnes / QueryAD.cs
Created January 30, 2016 07:00
Some AD Querying Magic
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.DirectoryServices;
namespace ADQuery
{