public void Store_WithStateStateWithOptions_OptionsShouldEqualInput()
        {
            FileStateStore store      = GetStateStore();
            var            testState  = new StorableMaintenanceState();
            StorableOption testOption = new StorableOption
            {
                StringValue = "test",
                TypeName    = "testType"
            };

            testState.MiddlewareOptions = new List <StorableOption>
            {
                testOption
            };

            store.SetState(testState);

            store.GetState().MiddlewareOptions
            .ShouldNotBeNull()
            .ShouldNotBeEmpty();
            StorableOption firstOption = store.GetState()
                                         .MiddlewareOptions.First();

            firstOption.StringValue
            .ShouldBe(testOption.StringValue);
            firstOption.TypeName
            .ShouldBe(testOption.TypeName);
        }
        public void SetState(StorableMaintenanceState state)
        {
            string filePath = GetFileFullPath();

            string serialized = JsonSerializer.Serialize(state, new JsonSerializerOptions
            {
                WriteIndented = true
            });

            IO.File.WriteAllText(filePath, serialized);
        }
        public void Store_WithStateStateWithDate_DateShouldEqualInput()
        {
            FileStateStore store     = GetStateStore();
            var            testState = new StorableMaintenanceState
            {
                ExpirationDate = DateTime.Now
            };

            store.SetState(testState);

            store.GetState().ExpirationDate
            .ShouldBe(testState.ExpirationDate);
        }
        public void Store_WithStateState_StateShouldEqualInput(bool isOn)
        {
            FileStateStore store     = GetStateStore();
            var            testState = new StorableMaintenanceState
            {
                IsMaintenanceOn = isOn
            };

            store.SetState(testState);

            store.GetState().IsMaintenanceOn
            .ShouldBe(isOn);
        }
        private void StoreState()
        {
            StorableMaintenanceState storableState = new StorableMaintenanceState
            {
                ExpirationDate  = _state.ExpirationDate,
                IsMaintenanceOn = _state.IsMaintenanceOn
            };

            IMiddlewareOptionsContainer optionsContainer = _state;

            storableState.MiddlewareOptions = optionsContainer.MiddlewareOptions
                                              ?.GetAll <ISerializableOption>()
                                              .Select(o => new StorableOption
            {
                StringValue = o.GetStringValue(),
                TypeName    = o.TypeName
            })
                                              .ToList();

            _stateStore.SetState(storableState);
        }
        private void RestoreState()
        {
            StorableMaintenanceState restored = _stateStore.GetState();

            if (restored != null)
            {
                OptionCollection restoredOptions = null;
                if (restored.MiddlewareOptions != null)
                {
                    restoredOptions = new OptionCollection(
                        restored.MiddlewareOptions
                        .Select(o => RestoreOption(o)));
                }

                _state = new MaintenanceState(restored.ExpirationDate,
                                              restored.IsMaintenanceOn,
                                              restoredOptions);
            }
            else
            {
                _state = new MaintenanceState();
            }
        }
Exemple #7
0
 public void SetState(StorableMaintenanceState state)
 {
     _state = state ?? throw new ArgumentNullException(nameof(state));
 }