public void SavePanelState(PanelStateModel model)
        {
            if (model is null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            using var unitOfWork = _unitOfWorkFactory.Create();
            var repository = unitOfWork.GetRepository <PanelModel>();
            var dbModel    = CreateFrom(model);

            repository.Upsert(_panelKey, dbModel);

            unitOfWork.SaveChanges();
        }
        public void TestSettingsPersistence()
        {
            var collection     = new List <TabModel>();
            var repositoryMock = new Mock <IRepository <PanelModel> >();

            repositoryMock
            .Setup(m => m.GetById(PanelKey))
            .Returns(new PanelModel {
                Tabs = collection
            });
            repositoryMock
            .Setup(m => m.Upsert(PanelKey, It.IsAny <PanelModel>()))
            .Callback <string, PanelModel>((key, panelState) =>
            {
                collection.Clear();
                collection.AddRange(panelState.Tabs);
            });

            var unitOfWorkFactory = GetUnitOfWorkFactory(repositoryMock);

            IFilesPanelStateService filesPanelStateService = new FilesPanelStateService(
                unitOfWorkFactory, PanelKey);

            var tabs = Enumerable
                       .Range(0, 10)
                       .Select(_ => new TabStateModel
            {
                SortingSettings = new SortingSettingsStateModel()
            })
                       .ToList();
            var state = new PanelStateModel {
                Tabs = tabs
            };

            filesPanelStateService.SavePanelState(state);

            var savedState = filesPanelStateService.GetPanelState();

            Assert.NotNull(savedState);
            Assert.NotNull(savedState.Tabs);
            Assert.Equal(tabs.Count, savedState.Tabs.Count);
        }
 private static PanelModel CreateFrom(PanelStateModel model) =>
 new PanelModel
 {
     SelectedTabIndex = model.SelectedTabIndex,
     Tabs             = model.Tabs.Select(CreateFrom).ToList()
 };
Exemple #4
0
 private static PanelModel CreateFrom(PanelStateModel model) =>