public ActionResult AdvSearch(bool initial = false, bool isChemical = false, int groupId = 0)
        {
            BreadcrumbNavigation nav = System.Web.HttpContext.Current.Session["Navigation"] as BreadcrumbNavigation;

            if (initial)
            {
                nav = new BreadcrumbNavigation();
                System.Web.HttpContext.Current.Session["Navigation"] = nav;
            }
            else
            {
                //if (nav != null)
                //{
                //    AdvancedSearchResults res = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearchResults").FirstOrDefault() as AdvancedSearchResults;
                //    if (res != null)
                //    {
                //        AdvSearchFiltersAll filters = res.PageData as AdvSearchFiltersAll;
                //        if (filters != null && filters.StructureSearch != null && (!string.IsNullOrEmpty(filters.StructureSearch.Exactsearch) || !string.IsNullOrEmpty(filters.StructureSearch.Query) || !string.IsNullOrEmpty(filters.StructureSearch.Stereo)))
                //        {
                //            isChemical = true;
                //        }
                //    }
                //}
                isChemical = (bool)Session["isChemical"];
            }
            AdvancedSearch model = new AdvancedSearch()
            {
                SearchCondition = new SearchCondition(), PropertyUnits = new List <PropertyUnitModel>()
            };
            var sources = materialContextUow.Sources.AllAsNoTracking.ToList();

            model.SearchCondition.FullText            = "";
            model.SearchCondition.Sources             = sources;
            model.SearchCondition.ClassificationTypes = materialContextUow.Trees.GetFullTreeFor();

            if (groupId != 1 && groupId != 0)
            {
                model.SearchCondition.ClassificationTypes = model.SearchCondition.ClassificationTypes.Where(m => m.TypeClassId == groupId).ToList();
            }
            if (isChemical)
            {
                model.SearchCondition.ClassificationTypes = model.SearchCondition.ClassificationTypes.Where(m => m.TypeClassId == 609397 || m.TypeClassId == 609441).ToList();
            }

            model.SearchCondition.PropertyGroups = materialContextUow.Trees.GetFullPropertyGroups(groupId);


            model.SearchModel = new BaseSearchModel()
            {
                Descriptor = new GridDescriptor(new SortDescriptor()
                {
                    PropertyName = "Name", Order = SortOrder.Ascending
                })
            };
            model.PropertyUnits   = BreadcrumbNavigationGetSet();
            model.IsChemical      = isChemical;
            Session["isChemical"] = isChemical;
            new TableFiltersBinder().resetAllTableFilters();
            return(View("AdvSearch", model));
        }
        private void BreadcrumbNavigationGetSet()
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            ExporterNav en = nav.GetOrderedItems().Where(n => n.NavigableID == "Exporter").FirstOrDefault() as ExporterNav;

            if (en != null)
            {
                en.IsVisible = false;
            }
            ComparisonNav cn = nav.GetOrderedItems().Where(n => n.NavigableID == "Comparison").FirstOrDefault() as ComparisonNav;

            if (cn == null)
            {
                cn = new ComparisonNav();
            }
            else
            {
            }
            cn.IsVisible      = true;
            nav.LastNavigable = "Comparison";
            nav.Push(cn);
            System.Web.HttpContext.Current.Session["Navigation"] = nav;
        }
        public int BreadcrumbNavigationGetSet()
        {
            // BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];
            BreadcrumbNavigation nav = new BreadcrumbNavigation();
            int ret = 0;

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
                HomePage hp = new HomePage();
                hp.PageData = 0;

                nav.LastNavigable = "HomePage";
                nav.Push(hp);
                ret = (int)hp.PageData;
            }
            else
            {
                HomePage hp = nav.GetOrderedItems().Where(n => n.NavigableID == "HomePage").FirstOrDefault() as HomePage;
                if (hp == null)
                {
                    hp          = nav.GetOrderedItems().Where(n => n.NavigableID == "HomePage").FirstOrDefault() as HomePage;
                    hp          = new HomePage();
                    hp.PageData = 0;
                }

                nav.LastNavigable = "HomePage";
                nav.Push(hp);
                ret = (int)hp.PageData;
            }
            System.Web.HttpContext.Current.Session["Navigation"] = nav;
            return(ret);
        }
        public ActionResult Subgroup(SearchSubgroupsFilters filters)
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];
            bool fromFullText        = false;

            if (nav.LastNavigable == "FullSearch")
            {
                fromFullText = true;
            }

            filters = _subgroupBinder.BreadcrumbNavigationGetSet(filters);

            SubgroupsModel model = _subgroupBinder.GetSubgroupsModel(new GridDescriptor(new SortDescriptor()
            {
                PropertyName = "SourceId", Order = SortOrder.Ascending
            }), filters, materialContextUow);

            if (model.Materials.Count == 1 && fromFullText)
            {
                return(RedirectToAction("GetMaterialDetails", "MaterialDetails", new { materialId = model.Materials[0].MaterialId, subgroupId = model.Materials[0].SubgroupId, sourceId = model.Materials[0].SourceId, sourceMaterialId = model.Materials[0].SourceMaterialId, searchText = model.Filters.FullText, tabId = "divProperties" }));
            }

            model.ChemicalElsProperties = new ElsevierMaterialsMVC.BL.Binders.PropertyDescriptionBinder().GetProperties(filters.MaterialId, materialContextUow);

            return(View("Subgroups", model));
        }
        public JsonResult ClearAdvSearchFilters()
        {
            IList <PropertyUnitModel> model = new List <PropertyUnitModel>();
            BreadcrumbNavigation      nav   = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            AdvancedSearchResults res = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearchResults").FirstOrDefault() as AdvancedSearchResults;

            if (res != null)
            {
                nav.Pop();
            }

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

            adv.PageData = new List <PropertyUnitModel>();
            nav.Push(adv);
            nav.LastNavigable = "AdvancedSearch";


            System.Web.HttpContext.Current.Session["Navigation"] = nav;

            return(Json(ResponseStatus.Success, RenderPartialViewToString("ConditionsContainer", model), JsonRequestBehavior.AllowGet));
        }
        private void BreadcrumbNavigationGetSet(ref int materialId, ref int subgroupId, ref int sourceId, ref int sourceMaterialId, ref string searchText, ref int type)
        {
            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();
            }

            MaterialDetails1 hp = nav.GetOrderedItems().Where(n => n.NavigableID == "MaterialDetails1").FirstOrDefault() as MaterialDetails1;

            if (hp == null)
            {
                hp = new MaterialDetails1();
                IDictionary <string, object> idic = new Dictionary <string, object>();
                idic.Add("materialId", materialId);
                idic.Add("subgroupId", subgroupId);
                idic.Add("sourceId", sourceId);
                idic.Add("sourceMaterialId", sourceMaterialId);
                idic.Add("searchText", searchText);
                if (sourceId == 1)
                {
                    idic.Add("unitType", 1);
                }
                else
                {
                    idic.Add("unitType", 2);
                }


                hp.PageData = idic;
            }
            else
            {
                if (materialId == 0 && subgroupId == 0 && sourceId == 0 && sourceMaterialId == 0 && searchText == "")
                {
                    IDictionary <string, object> idic = hp.PageData as Dictionary <string, object>;
                    materialId       = (int)idic["materialId"];
                    subgroupId       = (int)idic["subgroupId"];
                    sourceId         = (int)idic["sourceId"];
                    sourceMaterialId = (int)idic["sourceMaterialId"];
                    searchText       = idic["searchText"].ToString();
                    type             = (int)idic["unitType"];
                }
            }

            nav.LastNavigable = "MaterialDetails1";
            nav.Push(hp);
            System.Web.HttpContext.Current.Session["Navigation"] = nav;
        }
        public ActionResult ConvertValues(int type)
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            MaterialDetails1             hp   = nav.GetOrderedItems().Where(n => n.NavigableID == "MaterialDetails1").FirstOrDefault() as MaterialDetails1;
            IDictionary <string, object> idic = hp.PageData as Dictionary <string, object>;

            idic["unitType"] = type;
            return(Json(ResponseStatus.Success, new { sucess = true }, JsonRequestBehavior.AllowGet));
        }
Example #8
0
        public SearchSubgroupsFilters BreadcrumbNavigationGetSet(SearchSubgroupsFilters 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();
            }

            ElsevierMaterialsMVC.BL.Global.Subgroups hp = nav.GetOrderedItems().Where(n => n.NavigableID == "Subgroups").FirstOrDefault() as ElsevierMaterialsMVC.BL.Global.Subgroups;
            if (hp == null)
            {
                hp          = new ElsevierMaterialsMVC.BL.Global.Subgroups();
                hp.PageData = filters;
            }
            else
            {
                if (filters.MaterialId == 0)
                {
                    filters = hp.PageData as SearchSubgroupsFilters;
                }
                else
                {
                    hp.PageData = filters;
                }
            }

            nav.LastNavigable = "Subgroups";
            hp.IsVisible      = true;
            nav.Push(hp);

            System.Web.HttpContext.Current.Session["Navigation"] = nav;
            return(filters);
        }
        private AdvSearchFiltersAll GenerateFilters()
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            AdvancedSearchNav adv = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearch").FirstOrDefault() as AdvancedSearchNav;

            IList <PropertyUnitModel> units = (IList <PropertyUnitModel>)adv.PageData;

            AdvSearchFiltersAll ret = new AdvSearchFiltersAll()
            {
                AllFilters = new List <AdvSearchFilters>()
            };

            foreach (var item in units)
            {
                AdvSearchFilters fil = new AdvSearchFilters()
                {
                    propertyId = item.PropertyID, propertyName = item.PropertyName, propertyType = item.PropertyType, unitId = item.SelectedUnit
                };
                if (item.SelectedUnit != -1)
                {
                    fil.unitName = item.Units.FirstOrDefault(i => i.UnitKey == item.SelectedUnit).UnitLabel;
                }

                //fil.valueFrom = Decimal.Parse(item.ValueFrom);
                //fil.valueTo = Decimal.Parse(item.ValueTo);
                //ret.AllFilters.Add(fil);

                decimal vFrom;
                bool    isDecimalFrom = decimal.TryParse(item.ValueFrom, out vFrom);
                vFrom = isDecimalFrom ? vFrom : 0;
                ;
                decimal vTo;
                bool    isDecimalTo = decimal.TryParse(item.ValueFrom, out vTo);
                vTo = isDecimalTo ? vTo : 0;
                ;
                fil.valueFrom = vFrom;
                fil.valueTo   = vTo;
                ret.AllFilters.Add(fil);
            }
            return(ret);
        }
        public IList <PropertyUnitModel> BreadcrumbNavigationGetSet()
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            IList <PropertyUnitModel> retVal;

            foreach (var item in nav.GetOrderedItems().Where(n => n.NavigableID != "HomePage"))
            {
                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;
            }


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

            if (adv == null)
            {
                //  nav = new BreadcrumbNavigation();
                HomePage hp = new HomePage();
                hp.PageData         = 0;
                ViewBag.TabSelected = hp.PageData;
                nav.LastNavigable   = "HomePage";
                nav.Push(hp);
                adv    = new AdvancedSearchNav();
                retVal = new List <PropertyUnitModel>();
            }
            else
            {
                retVal = (IList <PropertyUnitModel>)adv.PageData == null ? new List <PropertyUnitModel>() : (IList <PropertyUnitModel>)adv.PageData;
            }
            nav.LastNavigable = "AdvancedSearch";
            adv.IsVisible     = true;
            nav.Push(adv);

            System.Web.HttpContext.Current.Session["Navigation"] = nav;
            return(retVal);
        }
        public ActionResult Browse(HasSearchFiltersEnum HasSearchFilters = HasSearchFiltersEnum.No, int groupId = 0)
        {
            System.Web.HttpContext.Current.Session["BrowsedDb"] = groupId;

            ViewBag.Title = "Elsevier :: Browse";
            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();
            }
            foreach (var item in nav.GetOrderedItems().Where(n => n.NavigableID != "HomePage"))
            {
                item.IsVisible = false;
            }


            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
                BrowseHome bh = new BrowseHome();

                nav.LastNavigable = "BrowseHome";
                bh.IsVisible      = true;
                nav.Push(bh);
            }
            else
            {
                if (nav.GetOrderedItems().Where(n => n.NavigableID == "FullSearch").Any())
                {
                    nav.GetOrderedItems().Where(n => n.NavigableID == "FullSearch").FirstOrDefault().IsVisible = false;
                    HasSearchFilters = HasSearchFiltersEnum.Yes;
                }

                BrowseHome bh = nav.GetOrderedItems().Where(n => n.NavigableID == "BrowseHome").FirstOrDefault() as BrowseHome;
                if (bh == null)
                {
                    bh = new BrowseHome();
                }
                bh.IsVisible      = true;
                nav.LastNavigable = "BrowseHome";
                nav.Push(bh);
            }
            System.Web.HttpContext.Current.Session["Navigation"] = nav;

            new TableFiltersBinder().resetAllTableFilters();
            return(View("Browse", HasSearchFilters));
        }
        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);
        }
        public JsonResult ApplyPager(GridDescriptor request)
        {
            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            AdvSearchFiltersAll filters = new AdvSearchFiltersAll();

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

            if (res != null)
            {
                filters = res.PageData as AdvSearchFiltersAll;
            }
            nav.LastNavigable = "AdvancedSearchResults";
            System.Web.HttpContext.Current.Session["Navigation"] = nav;

            BaseSearchModel model = new BaseSearchModel();

            if (request.Pager == null)
            {
                request = new GridDescriptor(new SortDescriptor()
                {
                    PropertyName = "Name", Order = SortOrder.Ascending
                });
            }
            model.Descriptor = request;
            if (filters.StructureSearch != null)
            {
                StringBuilder sb = new StringBuilder(65536);

                byte[] bytesData = Encoding.ASCII.GetBytes("query=" + filters.StructureSearch.Query + ";exactsearch=" + filters.StructureSearch.Exactsearch + ";stereo=" + filters.StructureSearch.Stereo + "\0");

                var    result    = StructureSearch(bytesData, sb, sb.Capacity);
                string recordIds = sb.Replace(";", ",").ToString().Trim().TrimEnd(',');

                if (!string.IsNullOrEmpty(recordIds))
                {
                    model.ListOfMaterials = _searchResultsBinder.GetResultsStructureAdvSearch(recordIds, request, materialContextUow);
                }
                model.IsStructureSearch = true;
            }
            else
            {
                model.ListOfMaterials = _searchResultsBinder.GetResultsAdvSearch(filters, request, materialContextUow);
            }
            SearchResultsCondition filterModel = new SearchResultsCondition();

            //filterModel.ClasificationId = filters.ClasificationId;
            //filterModel.ClasificationTypeId = filters.ClasificationTypeId;
            filterModel.FullText = "";
            filterModel.ShowPropertiesFilters = false;
            filterModel.FromBrowse            = false;
            filterModel.FromAdvanced          = true;
            // add Sources to model
            filterModel.Sources        = materialContextUow.Sources.AllAsNoTracking.OrderBy(m => m.Id).ThenBy(n => n.Name).ToList();
            filterModel.SelectedSource = filters.SelectedSource;
            model.Filter = filterModel;
            //BreadcrumbNavigationGetSet(filters);

            return(Json(ResponseStatus.Success, RenderPartialViewToString("AdvResultsContainer", model), JsonRequestBehavior.AllowGet));
        }
        public ActionResult FullTextSearchOnly(SearchFilters filters)
        {
            BaseSearchModel model = new BaseSearchModel();

            model = _searchResultsBinder.GetResultsFullTextSearch(filters, new GridDescriptor(new SortDescriptor()
            {
                PropertyName = "Name", Order = SortOrder.Ascending
            }), materialContextUow);

            model.HasSearchFilters = HasSearchFiltersEnum.Yes;


            BreadcrumbNavigation nav = (BreadcrumbNavigation)System.Web.HttpContext.Current.Session["Navigation"];

            if (nav == null)
            {
                nav = new BreadcrumbNavigation();
            }
            if (nav.Contains("AdvancedSearch"))
            {
                AdvancedSearchNav asn = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearch").FirstOrDefault() as AdvancedSearchNav;
                asn.PageData  = null;
                asn.IsVisible = false;
            }
            if (nav.Contains("AdvancedSearchResults"))
            {
                AdvancedSearchResults asn = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearchResults").FirstOrDefault() as AdvancedSearchResults;
                asn.PageData  = null;
                asn.IsVisible = false;
            }
            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();
            }
            System.Web.HttpContext.Current.Session["AdvancedSearchFilter"] = null;

            Session["ClassificationSelection"] = null;
            Session["ClassificationIds"]       = "";
            IDictionary <string, object> allFilters = new Dictionary <string, object>();

            allFilters.Add("filters", filters);
            allFilters.Add("advFilters", null);
            FullSearch fs = nav.GetOrderedItems().Where(n => n.NavigableID == "FullSearch").FirstOrDefault() as FullSearch;

            if (fs == null)
            {
                fs = new FullSearch();
            }
            fs.IsVisible      = true;
            fs.PageData       = allFilters;
            nav.LastNavigable = "FullSearch";
            nav.Push(fs);
            new TableFiltersBinder().resetAllTableFilters();
            return(View("Search", model));
        }
        public IDictionary <string, object> BreadcrumbNavigationGetSet(SearchFilters filters, AdvSearchFiltersAll advFilters, bool browse = false, string classIds = "")
        {
            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();
            }
            IDictionary <string, object> allFilters = new Dictionary <string, object>();

            foreach (var item in nav.GetOrderedItems().Where(n => n.NavigableID != "HomePage"))
            {
                item.IsVisible = false;
            }
            if (browse)
            {
                allFilters.Add("filters", filters);

                nav.GetOrderedItems().Where(n => n.NavigableID == "BrowseHome").FirstOrDefault().IsVisible = true;

                BrowseFacets bf = nav.GetOrderedItems().Where(n => n.NavigableID == "BrowseFacets").FirstOrDefault() as BrowseFacets;
                if (bf == null)
                {
                    bf = new BrowseFacets();

                    bf.PageData = allFilters;
                }
                else
                {
                    if (filters.ClasificationId == 0)
                    {
                        allFilters = (Dictionary <string, object>)bf.PageData;
                    }
                    else
                    {
                        bf.PageData = allFilters;
                    }
                }
                bf.IsVisible      = true;
                nav.LastNavigable = "BrowseFacets";
                nav.Push(bf);
            }
            else
            {
                allFilters.Add("filters", filters);
                allFilters.Add("advFilters", advFilters);


                if (nav.Contains("AdvancedSearch"))
                {
                    AdvancedSearchNav asn = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearch").FirstOrDefault() as AdvancedSearchNav;
                    asn.PageData  = null;
                    asn.IsVisible = false;
                }
                if (nav.Contains("AdvancedSearchResults"))
                {
                    AdvancedSearchResults asn = nav.GetOrderedItems().Where(n => n.NavigableID == "AdvancedSearchResults").FirstOrDefault() as AdvancedSearchResults;
                    asn.PageData  = null;
                    asn.IsVisible = false;
                }
                FullSearch fs = nav.GetOrderedItems().Where(n => n.NavigableID == "FullSearch").FirstOrDefault() as FullSearch;
                if (fs == null)
                {
                    HomePage hp = new HomePage();
                    hp.PageData         = 0;
                    ViewBag.TabSelected = hp.PageData;
                    nav.LastNavigable   = "HomePage";
                    hp.IsVisible        = true;
                    nav.Push(hp);

                    fs          = new FullSearch();
                    fs.PageData = allFilters;
                }
                else
                {
                    if (filters.filter == null && (filters.Source == null || filters.Source == "0") && (advFilters == null || advFilters.AllFilters == null))
                    {
                        allFilters = (Dictionary <string, object>)fs.PageData;
                    }
                    else
                    {
                        fs.PageData = allFilters;
                    }
                    if (!string.IsNullOrWhiteSpace(classIds))
                    {
                        Session["ClassificationIds"] = classIds;
                    }
                }

                fs.IsVisible      = true;
                nav.LastNavigable = "FullSearch";
                nav.Push(fs);
            }

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