コード例 #1
0
        // Fill PropertyConditions for selected property
        public IList <PropertyConditionModel> FillPropertyConditions(int propertyId)
        {
            IList <PropertyConditionModel>      ret = new List <PropertyConditionModel>();
            IList <AdvSearchPropertyConditions> pcs = materialContextUow.AdvSearchPropertyConditionsAll.AllAsNoTracking.Where(p => p.PropertyID == propertyId).ToList();

            foreach (AdvSearchPropertyConditions pc in pcs)
            {
                PropertyConditionModel pcm = new PropertyConditionModel();
                pcm.Condition = new AdvSearchPropertyConditions()
                {
                    PropertyID = pc.PropertyID,
                    UnitGroup  = pc.UnitGroup,
                    X_label    = pc.X_label.Trim()
                };
                pcm.FillUnits();

                ret.Add(pcm);
            }
            return(ret);
        }
コード例 #2
0
        public AdvSearchFiltersAll BreadcrumbNavigationGetSet(AdvSearchFiltersAll filters)
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            if (nav.Contains("Exporter"))
            {
                nav.Pop();
            }
            if (nav.Contains("Comparison"))
            {
                nav.Pop();
            }
            if (nav.Contains("MaterialDetails1"))
            {
                nav.Pop();
            }
            if (nav.Contains("Subgroups"))
            {
                nav.Pop();
            }
            if (nav.Contains("BrowseFacets"))
            {
                nav.Pop();
            }
            if (nav.Contains("BrowseHome"))
            {
                nav.Pop();
            }



            AdvancedSearchNav adv = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearch").FirstOrDefault() as AdvancedSearchNav;

            if (adv == null)
            {
                adv.IsVisible = true;
                adv           = new AdvancedSearchNav();
            }


            IList <PropertyUnitModel> units = new List <PropertyUnitModel>();

            foreach (var item in nav.GetOrderedItems().Where(n => n.NavigableID != "HomePage" && n.NavigableID != "AdvancedSearch"))
            {
                item.IsVisible = false;
            }
            if (nav.Contains("FullSearch"))
            {
                FullSearch fs = nav.GetOrderedItems().Where(n => n.NavigableID == "FullSearch").FirstOrDefault() as FullSearch;
                fs.IsVisible = false;
                fs.PageData  = null;
            }

            AdvancedSearchResults res = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearchResults").FirstOrDefault() as AdvancedSearchResults;

            if (res == null)
            {
                AdvancedSearchResults hp = new AdvancedSearchResults();
                hp.PageData = filters;
                nav.Push(hp);
            }
            else
            {
                if (filters == null ||
                    (filters != null && filters.AllFilters == null && filters.StructureSearch == null) ||
                    (filters != null && filters.AllFilters != null && filters.AllFilters.Count == 0 && filters.StructureSearch == null)
                    )
                {
                    string selectedSource = filters.SelectedSource;
                    filters = res.PageData as AdvSearchFiltersAll;
                    if (selectedSource != null)
                    {
                        filters.SelectedSource = selectedSource;
                    }
                }
                else
                {
                    res.PageData  = filters;
                    res.IsVisible = true;
                    nav.Push(res);
                }
            }

            nav.LastNavigable = "AdvancedSearchResults";

            if (filters != null && filters.AllFilters != null)
            {
                foreach (var item in filters.AllFilters)
                {
                    var pUnits            = materialContextUow.PropertyUnits.AllAsNoTracking.Where(n => n.PropertyID == item.propertyId).ToList();
                    PropertyUnitModel pum = new PropertyUnitModel()
                    {
                        PropertyType = item.propertyType,
                        UniqueID     = Guid.NewGuid().ToString("N"),
                        PropertyID   = item.propertyId,
                        PropertyName = item.propertyName,
                        IsPropertyConditionsActive = item.isPropertyConditionsActive,
                        Units = new List <UnitModel>()
                    };
                    foreach (var u in pUnits.Where(i => i.UnitKey != null))
                    {
                        pum.Units.Add(new UnitModel()
                        {
                            Factor = (double)u.Factor, Metric = (bool)u.Metric, Offset = (double)u.Offset, UnitKey = (int)u.UnitKey, UnitLabel = u.UnitLabel
                        });
                    }
                    pum.SelectedUnit    = item.unitId;
                    pum.SelectedBinary  = item.binaryOperators;
                    pum.SelectedLogical = item.logicalOperators;
                    pum.ValueFrom       = item.valueFrom_orig == null ? "" : item.valueFrom_orig.ToString();
                    pum.ValueTo         = item.valueTo_orig == null ? "" : item.valueTo_orig.ToString();

                    // Fill property conditions
                    pum.PropertyConditions = new List <PropertyConditionModel>();

                    foreach (var cond in item.PropertyConditions)
                    {
                        PropertyConditionModel oneCondition = new PropertyConditionModel()
                        {
                            Condition = new AdvSearchPropertyConditions()
                            {
                                PropertyID = cond.Condition.PropertyID,
                                X_label    = cond.Condition.X_label,
                                UnitGroup  = cond.Condition.UnitGroup
                            },
                            SelectedLogical = cond.SelectedLogical,
                            ValueFrom       = cond.ValueFrom,
                            ValueTo         = cond.ValueTo
                        };
                        oneCondition.FillUnits();

                        pum.PropertyConditions.Add(oneCondition);
                    }


                    units.Add(pum);
                }

                adv.PageData = units;
            }



            System.Web.HttpContext.Current.Session["Navigation"] = nav;
            return(filters);
        }