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() };
private static PanelModel CreateFrom(PanelStateModel model) =>