public void SaveConfiguration()
        {
            SearchResultProcessingConfiguration config = GlobalData.Instance.Configuration.SearchResultProcessing;

            config.Sorting = Containers
                             .Select(x => new SearchResultSortItemConfiguration
            {
                Name      = x.Name,
                Criterias = x.SortItems.Select(s => s.SortCriteria).ToArray()
            })
                             .ToArray();

            int index = -1;

            for (int i = 0; i < Containers.Count; i++)
            {
                if (Containers[i].IsActive)
                {
                    index = i;
                    break;
                }
            }
            config.ActiveSortingIndex = index;

            ConfigurationManager.Save(GlobalData.Instance.Configuration);
        }
        private void LoadConfiguration()
        {
            SearchResultProcessingConfiguration config = GlobalData.Instance.Configuration.SearchResultProcessing;

            if (config.Sorting != null)
            {
                Containers.Clear();
                foreach (SearchResultSortItemConfiguration x in config.Sorting)
                {
                    var container = new SearchResultProcessingContainerViewModel(this)
                    {
                        Name = x.Name
                    };

                    foreach (SearchResultSortCriteria criteria in x.Criterias)
                    {
                        container.AddSortItem(new SearchResultSortItemViewModel(container)
                        {
                            SortCriteria = criteria
                        });
                    }

                    Containers.Add(container);
                }

                if (config.ActiveSortingIndex >= 0 && config.ActiveSortingIndex < Containers.Count)
                {
                    MakeContainerActive(Containers[config.ActiveSortingIndex]);
                }
            }
        }