Skip to content

Instantly share code, notes, and snippets.

View theorigin's full-sized avatar

Andy Robinson theorigin

View GitHub Profile
@theorigin
theorigin / IDirectory.cs
Created October 29, 2013 13:41
An interface definition for the System.IO.Directory class. Allows mocking of code that uses any of these methods
namespace VS.Library.Interfaces
{
using System.Collections.Generic;
using System.IO;
using System.Security.AccessControl;
public interface IDirectory
{
bool Exists(string path);
@theorigin
theorigin / DatasetToJson.cs
Created October 3, 2013 16:36
Converts a dataset (containing many datatables) into a List<Dictionary<string, object>> which can be converted into JSON and returned from an API. Stored procedure returns the required data in a known format which is then read in C# and push out in JSON. Should be fairly generic i.e. what ever you return from the database will be converted and s…
private IEnumerable<Dictionary<string, object>> DataSetToOrder(DataSet orderDetails)
{
var s = orderDetails.Tables[0].Rows[0][0].ToString();
var tableDefinitions = s.Replace(", ", ",").Split(',');
var tables = tableDefinitions.Select(tableDefinition => tableDefinition.Split('/')).Select(temp => new Tuple<int, int, string>(int.Parse(temp[0]), int.Parse(temp[1]), temp[2])).ToList();
var parent = tables.First(t => t.Item1.Equals(1));
@theorigin
theorigin / UDT.sql
Created September 27, 2013 09:39
SQL table types - example of passing them to an SP
declare @p2 dbo.Dictionary
insert into @p2 values(N'orderReference',N'654')
insert into @p2 values(N'earliestRequestedDeliveryDate',N'2013-09-02')
insert into @p2 values(N'transactionId',N'123')
declare @p3 dbo.IndexedDictionary
insert into @p3 values(1,N'productCode',N'59510')
insert into @p3 values(1,N'orderedQty',N'1')
insert into @p3 values(2,N'productCode',N'62754')
insert into @p3 values(2,N'orderedQty',N'3')
@theorigin
theorigin / CsvParse.vb
Created July 30, 2013 15:08
Parse CSV using Microsoft.VisualBasic.FileIO.TextFieldParser
Using MyReader As New _
Microsoft.VisualBasic.FileIO.TextFieldParser("C:\testfile.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
@theorigin
theorigin / NamingConventions
Created July 30, 2013 10:17
SQL Server naming conventions
-- Tables
-- Basically the table name (singular)
CREATE TABLE [dbo].[Product] (...)
-- Columns
-- Identity
[Id] INT NOT NULL IDENTITY (1, 1) -- Id column with auto increment
@theorigin
theorigin / gist:5344279
Created April 9, 2013 09:16
RegEx to wrap [ ] around text. For example when you need to turn a single JSON object into an array.
/// A description of the regular expression:
///
/// Beginning of line or string
/// [1]: A numbered capture group. [[^[].*[^]]]
/// [^[].*[^]]
/// Any character that is NOT in this class: [[]
/// Any character, any number of repetitions
/// Any character that is NOT in this class: []]
/// End of line or string
[Test]
public void ShouldReturnModelWithValuesSetCorrectly()
{
var formCollection = new NameValueCollection
{
{ "page", "5" },
{ "rp", "8" },
{ "query", "smith" },
{ "sortname", "sname" },
{ "sortorder", "sorder" }
public class SomeViewModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
int currentPage = 1;
int itemsPerPage = 8;
var page = bindingContext.ValueProvider.GetValue("page");
if (page != null)
@echo off
echo Pre req checks...
echo|set /p=... Running as ADMIN ...
reg query "HKU\S-1-5-19" >nul 2>&1
if %errorlevel% == 1 echo FAILED : Not runing as ADMIN
if %errorlevel% == 0 echo Passed
echo|set /p=... SQL Server ...
osql.exe -? >nul 2>&1
@theorigin
theorigin / gist:3258287
Created August 4, 2012 15:11
Json TDD get at rows
var rows = (List<object><p>
)data.GetType().GetProperty("rows").GetValue(data, null);&nbsp;
rows.Count.Should().Be(1);
this.GetValue(rows[0], "id").Should().Be("98732312");
var cell = rows[0].GetType().GetProperty("cell").GetValue(rows[0], null);
this.GetValue(cell, "prop1").Should().Be("a");