RequestListViewModel SettingToRequestListVM(ListViewModelSetting setting)
        {
            FilterEntitySetting filterSetting = new FilterEntitySetting();

            LoadSetting <FilterEntitySetting>(setting.CurrentFilterName, filterSetting);

            RequestListFilterEntity filter    = SettingToFilter(filterSetting);
            RequestListViewModel    viewModel = _mainController.CreateRequestListViewModel(filter, setting.ReadOnly);

            viewModel.InitialCurrentRequestId = setting.CurrentRequestId;

            return(viewModel);
        }
        ListViewModelSetting RequestListVMToSetting(RequestListViewModel viewModel)
        {
            ListViewModelSetting setting = new ListViewModelSetting();

            setting.CurrentRequestId  = viewModel.RequestList.Current != null ? viewModel.RequestList.Current.Id : null;
            setting.ReadOnly          = viewModel.ReadOnly;
            setting.GridData          = viewModel.GridData;
            setting.CurrentFilterName = viewModel.Filter.InternalName;
            FilterEntitySetting filterSetting = FilterToSetting(viewModel.Filter);

            SaveSetting(setting.CurrentFilterName, filterSetting);

            return(setting);
        }
        public void Save()
        {
            using (DbTransaction transaction = new DbTransaction(_dbMgr))
            {
                Clear();

                RootSetting rootSetting = new RootSetting();

                if (_filterEntityList != null)
                {
                    foreach (RequestListFilterEntity filter in _filterEntityList)
                    {
                        FilterEntitySetting filterSetting = FilterToSetting(filter);
                        SaveSetting(filter.InternalName, filterSetting);
                        rootSetting.FilterList.Add(filter.InternalName);
                    }
                }

                if (_requestEditVMList != null)
                {
                    foreach (RequestEditViewModel viewModel in _requestEditVMList)
                    {
                        EditViewModelSetting viewModelSetting = RequstEditVMToSetting(viewModel);
                        SaveSetting(viewModel.Name, viewModelSetting);
                        rootSetting.EditViewModelList.Add(viewModel.Name);
                    }
                }
                if (_requestListVMList != null)
                {
                    foreach (RequestListViewModel viewModel in _requestListVMList)
                    {
                        ListViewModelSetting viewModelSetting = RequestListVMToSetting(viewModel);
                        SaveSetting(viewModel.Name, viewModelSetting);
                        rootSetting.ListViewModelList.Add(viewModel.Name);
                    }
                }

                SaveSetting(RootSettingName, rootSetting);
                transaction.Success = true;
            }
        }
        public void Load()
        {
            Init();

            RootSetting rootSetting = new RootSetting();

            LoadSetting <RootSetting>(RootSettingName, rootSetting);

            if (rootSetting.FilterList != null)
            {
                foreach (string filterName in rootSetting.FilterList)
                {
                    FilterEntitySetting filterSetting = new FilterEntitySetting();
                    LoadSetting <FilterEntitySetting>(filterName, filterSetting);
                    _filterEntityList.Add(SettingToFilter(filterSetting));
                }
            }

            if (rootSetting.EditViewModelList != null)
            {
                foreach (string editVMName in rootSetting.EditViewModelList)
                {
                    EditViewModelSetting editVMSetting = new EditViewModelSetting();
                    LoadSetting <EditViewModelSetting>(editVMName, editVMSetting);
                    _requestEditVMList.Add(SettingToRequestEditVM(editVMSetting));
                }
            }

            if (rootSetting.ListViewModelList != null)
            {
                foreach (string ListVMName in rootSetting.ListViewModelList)
                {
                    ListViewModelSetting listVMSetting = new ListViewModelSetting();
                    LoadSetting <ListViewModelSetting>(ListVMName, listVMSetting);
                    RequestListViewModel viewModel = SettingToRequestListVM(listVMSetting);
                    viewModel.Name = ListVMName;
                    _requestListVMList.Add(viewModel);
                }
            }
        }