public async Task <ActionResult> Index(FieldMasterInfo fminfo) { //Set up IEnumerable <FieldMasterInfo> items; Type myType = fminfo.GetType(); properties = fminfo.GetType().GetProperties(); var predicate = PredicateBuilder.True <FieldMasterInfo>(); foreach (var i in fminfo.store_dd) { if (i.Value != null && i.Value != "") { foreach (PropertyInfo property in properties) { //var localI = i; //FieldMasterInfo localFMI = fminfo; if (i.Key == property.Name) { var value = fminfo.store_dd[i.Key]; var expr = GeneratePredicate.GenerateFieldExpression <FieldMasterInfo>(property.Name, value); myType.GetProperty(property.Name).SetValue(fminfo, value); predicate = predicate.And(expr); break; } } } } items = await DocumentDBRepository <FieldMasterInfo> .GetItemsAsync(predicate, fminfo.TenantId); return(View("~/Views/Home/ResultsView.cshtml", items)); }
public FieldMasterInfo SetUp(IEnumerable <FieldMasterInfo> allItems) { FieldMasterInfo fmi = new FieldMasterInfo(); this.properties = fmi.GetType().GetProperties(); foreach (PropertyInfo property in properties) { if (Attribute.IsDefined(property, typeof(DropdownAttribute))) { fmi.populate_dd.Add(property.Name, allItems.Select(m => m.GetType().GetProperty(property.Name).GetValue(m, null)).Distinct()); } } return(fmi); }