View ConvertCsvToList.cs
private IList<T> ConvertCsvToList<T>(IList<string> csv, string[] header) { | |
var list = new List<T>(); | |
foreach (var row in csv) { | |
var columns = row.Split(','); | |
T obj = (T)Activator.CreateInstance(typeof(T)); | |
for (int i = 0; i < columns.Length; i++) { | |
var h = Regex.Match(header[i].Replace("@", "_"), @"(?<="")(?:\\.|[^""\\])*(?="")").Value; | |
var c = Regex.Match(columns[i], @"(?<="")(?:\\.|[^""\\])*(?="")").Value; | |
var prop = typeof(Em.Schools.Data.Domain.Match).GetProperty(h); |
View DynamicSqlQuery.cs
/// <summary> | |
/// Reads database schema from query, generates assembly in the memory, and returns dynamic object | |
/// </summary> | |
public static System.Collections.IEnumerable DynamicSqlQuery(this Database database, string sql, params object[] parameters) | |
{ | |
TypeBuilder builder = DynamicMapper.createTypeBuilder( | |
"MyDynamicAssembly", "MyDynamicModule", "MyDynamicType"); | |
using (System.Data.IDbCommand command = database.Connection.CreateCommand()) | |
{ |
View Trolliminator! Bookmarklet.js
javascript: (function () { | |
var trolls = [ | |
'troll', // <-- add troll names here | |
]; | |
var el = document.createElement('div'), | |
b = document.getElementsByTagName('body')[0]; | |
otherlib = false, msg = ''; | |
el.style.position = 'fixed'; | |
el.style.height = '32px'; |
View toggle-data.js
var d = $("input[data-toggle-class]"); | |
$.each(d, function (idx, data) { | |
console.log(idx, data); | |
}); |
View FilterExtension.cs
///<remarks> | |
/// Turns out this wasn't needed - and far less elegant than the existing extension method. | |
/// However, it is still an example of a generic way to match a given property with a value | |
/// and how to select that property by name (string) and compare its value to the value | |
/// that is passed in. It works... | |
///</remarks> | |
public static IList<T> ApplyFilter<T>(this IList<T> list, FilterDescriptor filter) { | |
// We wont allow filtering on anything but string type properties | |
if (filter.MemberType != typeof(string)) throw new ArgumentException("Filtering is only allowed for properties with a type of 'string'."); |
View em.js
window.Em = window.Em || {}; | |
Em = { | |
setFocusOutValidation: function (form) { | |
var s = $.data(form, "validator").settings; | |
s.onfocusout = function (element) { | |
if ($(element).val().length > 0) { | |
$(element).valid(); | |
} | |
}; |
View Adapter.js
(function ($) { | |
$.validator.addMethod("notequal", function (value, element, param) { | |
if (param.indexOf("#") == -1) return value != param; | |
return value != $(param).val(); | |
}, $.validator.messages.notequal); | |
$.validator.unobtrusive.adapters.add("notequal", ["field"], function (options) { | |
options.rules["notequal"] = options.params.field; | |
if (options.message) options.messages["notequal"] = options.message; | |
}); |
View jquery.text3d.js
/** | |
* 3D Text plugin for jQuery | |
* v1.0 | |
* Creates 3D text using CSS3 text-shadows | |
* | |
* By Craig Buckler, @craigbuckler, http://optimalworks.net | |
* | |
* As featured on SitePoint.com: | |
* http://www.sitepoint.com/css3-3d-text-jquery-plugin/ | |
* |
View AjaxRedirect.cs
using System; | |
using System.Web; | |
using System.Web.Mvc; | |
/// <summary> | |
/// See http://stackoverflow.com/questions/1171035/asp-net-mvc-custom-error-handling-application-error-global-asax/5952774#5952774 | |
/// for implementation details | |
/// </summary> | |
public class AjaxRedirectResult : RedirectResult { |
View MaximumWeightAttribute.js
<script type="text/javascript"> | |
$.validator.addMethod("maximumweight", | |
function (value, element, parameters) { | |
var carrier = $("#" + parameters["dependentproperty"]).val(); | |
var carriervalue = parameters["dependentvalue"].toString(); | |
var weightvalue = Number(parameters["weightvalue"]); | |
if (carrier == carriervalue && value > weightvalue) { | |
return false; | |
} | |
return true; |