public static DatagridResult <T> ToDatagridResult <T>(this IEasyuiList <T> source, int total) { return(new DatagridResult <T>(source) { Total = total }); }
ComboboxResult IComboboxResultFactory.Build <T>(IEasyuiList <T> items) { var enumerable = items.AsEnumerable() as T[] ?? items?.AsEnumerable()?.ToArray(); if (!enumerable?.Any() == true) { return(new ComboboxResult(Enumerable.Empty <ComboboxItem>())); } var item = enumerable.First(); var valueResolver = _comboboxValueResolvers.FirstOrDefault(x => x.CanResolve(item)); if (valueResolver == null) { throw new AvaliableResolverNotFoundException(); } var textResolver = _comboboxTextResolvers.FirstOrDefault(x => x.CanResolve(item)); if (textResolver == null) { throw new AvaliableResolverNotFoundException(); } var re = enumerable.Select(x => new ComboboxItem { Text = textResolver.ResolveText(x), Value = valueResolver.ResolveValue(x), }).ToList(); return(new ComboboxResult(re)); }
public DatagridResult(IEasyuiList <T> rows) { var enumerable = rows.AsEnumerable() as T[] ?? rows.AsEnumerable().ToArray(); Rows = enumerable; Total = enumerable.Count(); }
public static TreeResult <T> ToTreeResult <T>(this IEasyuiList <T> source, EasyuiTreeBuildOptions <T> buildOptions) { var treeResultFactory = Container.Global.Resolve <ITreeResultFactory>(); var re = treeResultFactory.Build(source, buildOptions); return(re); }
public static ComboboxResult ToComboboxResult <T>(this IEasyuiList <T> source) { var comboboxResultFactory = Container.Global.Resolve <IComboboxResultFactory>(); var re = comboboxResultFactory.Build(source); return(re); }
public static ComboboxResult ToComboboxResult <T>(this IEasyuiList <T> source, ComboboxResultBuildOptions <T> buildOptions) { var re = new ComboboxResult(source.AsEnumerable().Select(x => new ComboboxItem { Text = buildOptions.TextFunc(x), Value = buildOptions.ValueFunc(x), })); return(re); }
/// <summary> /// formate source to easyui responce /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="accept"></param> /// <returns></returns> public static IEasyuiResponce FormateByAccept <T>(this IEasyuiList <T> source, EasyuiAcceptType accept) { switch (accept) { case EasyuiAcceptType.NotSpecificated: return(source); case EasyuiAcceptType.Datagrid: return(ToDatagridResult(source)); case EasyuiAcceptType.Combobox: return(ToComboboxResult(source)); default: throw new ArgumentOutOfRangeException(); } }
TreeResult <T> ITreeResultFactory.Build <T>(IEasyuiList <T> items, EasyuiTreeBuildOptions <T> buildOptions) { var type = typeof(T); var builder = TreeBuilderCache.GetOrAdd(type, type1 => { var r = new TreePropertyResolver(); var properInfos = type.GetRuntimeProperties().ToArray(); r.IdResolver = properInfos.FirstOrDefault( x => x.CustomAttributes.Any(a => a.AttributeType == typeof(EasyuiTreeIdAttribute))); r.TextResolver = properInfos.FirstOrDefault( x => x.CustomAttributes.Any(a => a.AttributeType == typeof(EasyuiTreeTextAttribute))); return(r); }); var re = new TreeResult <T>(items.AsEnumerable().Select(x => { var treeNode = new TreeNode <T>(x, null, null) { Attributes = buildOptions.AttributesFunc?.Invoke(x), }; if (buildOptions.IdFunc == null && builder.IdResolver == null) { throw new ArgumentNullException(nameof(buildOptions.IdFunc)); } treeNode.Id = buildOptions.IdFunc == null ? builder.IdResolver.GetValue(x)?.ToString() : buildOptions.IdFunc(x); if (buildOptions.TextFunc == null && builder.TextResolver == null) { throw new ArgumentNullException(nameof(buildOptions.TextFunc)); } treeNode.Text = buildOptions.TextFunc == null ? builder.TextResolver.GetValue(x)?.ToString() : buildOptions.TextFunc(x); return(treeNode); })); return(re); }
public static DatagridResult <T> ToDatagridResult <T>(this IEasyuiList <T> source) { return(new DatagridResult <T>(source)); }
/// <summary> /// formate source to easyui responce /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="easyuiAccept"></param> /// <returns></returns> public static IEasyuiResponce FormateByAccept <T>(this IEasyuiList <T> source, IEasyuiAccept easyuiAccept) { return(FormateByAccept(source, easyuiAccept.Accept)); }