/// <summary> /// Registers the array lookup helper. /// arguments[0] = /// arguments[1] = /// arguments[2] = /// </summary> /// <param name="hbs">The HBS.</param> private void RegisterArrayLookupHelper(HandlebarsDotNet.IHandlebars hbs) { hbs.RegisterHelper("lookup", (writer, options, context, arguments) => { object[] arr; if (arguments[0] is IEnumerable <object> ) { var en = arguments[0] as IEnumerable <object>; arr = en.ToArray(); } else { arr = (object[])arguments[0]; } var field = arguments[1].ToString(); var value = arguments[2].ToString(); foreach (var arrayItem in arr) { object member = DynamicUtils.GetMemberValue(arrayItem, field); if (value.Equals(member)) { options.Template(writer, (object)arrayItem); } } options.Inverse(writer, (object)context); }); /* * hbs.RegisterHelper("arraylookup", (writer, context, parameters) => * { * try * { * object[] arr; * if (parameters[0] is IEnumerable<Object>) * { * var en = parameters[0] as IEnumerable<Object>; * arr = en.ToArray(); * } * else * { * arr = (object[])parameters[0]; * } * * var value = parameters[1].ToString(); * var text = parameters[2].ToString(); * var key = parameters[3].ToString(); * foreach (var item in collection) * { * * } * object res = b[i]; * string c = parameters[2].ToString(); * HandlebarsDotNet.HandlebarsExtensions. * //HandlebarsDotNet.HandlebarsExtensions.WriteSafeString(writer, res.ToString()); * } * catch (Exception) * { * HandlebarsDotNet.HandlebarsExtensions.WriteSafeString(writer, ""); * } * }); */ }