Skip to content

Instantly share code, notes, and snippets.

View theorigin's full-sized avatar

Andy Robinson theorigin

View GitHub Profile
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)
@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
@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 / 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 / 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 / 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 / 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 / IFile.cs
Created October 29, 2013 13:41
An interface definition for the System.IO.File class. Allows mocking of code that uses any of these methods
namespace namespace VS.Library.Interfaces
{
public interface IFile
{
void Move(string sourceFileName, string destFileName);
bool Exists(string fileName);
void Delete(string fileName);
}
@theorigin
theorigin / SPTemplate.sql
Created January 10, 2014 17:11
TSQL stored procedure template
CREATE PROCEDURE [dbo].[xxx]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @transactionName VARCHAR(32) = REPLACE((CAST(NEWID() AS VARCHAR(36))),'-','')
BEGIN TRY
DECLARE @TranCounter INT;
<!DOCTYPE html>
<html>
<head>
<script src="https://npmcdn.com/react@0.14.2/dist/react.min.js"></script>
<script src="https://npmcdn.com/react-dom@0.14.2/dist/react-dom.min.js"></script>
<script src="https://npmcdn.com/google-map-react@0.14.6/dist/GoogleMapReact.js"></script>
<meta charset="utf-8">