Example #1
0
        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));
        }
Example #2
0
        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);
        }