public static IList <TModel> GetEntryList <TModel>(this ARProxy <TModel> proxy, string qualification, uint StartIndex, uint?RetrieveCount, TotalMatch totalMatch, List <ARSortInfo> sortInfo, params Expression <Func <TModel, object> >[] propertiesTobeUp) where TModel : ARBaseForm { if (propertiesTobeUp == null || propertiesTobeUp.Length == 0) { return(null); } ITypeMetaProvider <TModel> metaProvider = new ExpressionTypeMetaProvider <TModel>(propertiesTobeUp); ModelMeteData <TModel> MetaData = new ModelMeteData <TModel>(); MetaData.FormName = metaProvider.GetFormNameFromModelType(); var props = metaProvider.GetPropertyInfoes(BindingFlags.SetProperty | BindingFlags.Public | BindingFlags.Instance, null); MetaData.Properties = new List <PropertyAndField <TModel> >(); foreach (var p in props) { if ((p.AccessLevel & ModelBinderAccessLevel.OnlyBind) == ModelBinderAccessLevel.OnlyBind) { MetaData.Properties.Add(p); } } return(proxy.GetEntryList(StartIndex, qualification, MetaData, RetrieveCount, totalMatch, sortInfo)); }
public static void SetEntry <TModel>( this ARProxy <TModel> proxy, TModel model, params Expression <Func <TModel, object> >[] propertiesTobeUp) where TModel : ARBaseForm { if (propertiesTobeUp == null || propertiesTobeUp.Length == 0) { return; } ITypeMetaProvider <TModel> metaProvider = new ExpressionTypeMetaProvider <TModel>(propertiesTobeUp); ModelMeteData <TModel> MetaData = new ModelMeteData <TModel>(); MetaData.FormName = metaProvider.GetFormNameFromModelType(); var entryIdProp = metaProvider.GetEntryIdPropertyInfo(); if (entryIdProp == null) { throw new CustomAttributeFormatException("Can not find EntryId's PropertyInfo."); } MetaData.EntryId = (string)entryIdProp.GetValue(model); MetaData.Model = model; var props = metaProvider.GetPropertyInfoes(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance, null); MetaData.Properties = new List <PropertyAndField <TModel> >(); foreach (var p in props) { if ((p.AccessLevel & ModelBinderAccessLevel.OnlyUnBind) == ModelBinderAccessLevel.OnlyUnBind) { MetaData.Properties.Add(p); } } proxy.SetEntry(MetaData); }
public static TModel GetEntry <TModel>( this ARProxy <TModel> proxy, string EntryId, params Expression <Func <TModel, object> >[] propertiesTobeUp) where TModel : ARBaseForm { if (propertiesTobeUp == null || propertiesTobeUp.Length == 0) { return(null); } ITypeMetaProvider <TModel> metaProvider = new ExpressionTypeMetaProvider <TModel>(propertiesTobeUp); ModelMeteData <TModel> MetaData = new ModelMeteData <TModel>(); MetaData.FormName = metaProvider.GetFormNameFromModelType(); MetaData.EntryId = EntryId; var props = metaProvider.GetPropertyInfoes(BindingFlags.SetProperty | BindingFlags.Public | BindingFlags.Instance, null); MetaData.Properties = new List <PropertyAndField <TModel> >(); foreach (var p in props) { if ((p.AccessLevel & ModelBinderAccessLevel.OnlyBind) == ModelBinderAccessLevel.OnlyBind) { MetaData.Properties.Add(p); } } return(proxy.GetEntry(MetaData)); }
public static void SetEntryList <TModel>( this ARProxy <TModel> proxy, string qualification, TModel model, params Expression <Func <TModel, object> >[] propertiesTobeUp) where TModel : ARBaseForm { if (propertiesTobeUp == null || propertiesTobeUp.Length == 0) { return; } ITypeMetaProvider <TModel> metaProvider = new ExpressionTypeMetaProvider <TModel>(propertiesTobeUp); ModelMeteData <TModel> MetaData = new ModelMeteData <TModel>(); MetaData.FormName = metaProvider.GetFormNameFromModelType(); MetaData.Model = model; var props = metaProvider.GetPropertyInfoes(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance, null); MetaData.Properties = new List <PropertyAndField <TModel> >(); foreach (var p in props) { if ((p.AccessLevel & ModelBinderAccessLevel.OnlyUnBind) == ModelBinderAccessLevel.OnlyUnBind) { MetaData.Properties.Add(p); } } int total = -1; List <AREntry> entries = proxy.GetARServer().GetEntryList(MetaData.FormName, qualification, null, 0, null, ref total, null); foreach (var entry in entries) { string entryid = string.Join("|", entry.EntryIds.ToArray()); MetaData.EntryId = entryid; proxy.SetEntry(MetaData); } }