Example #1
0
 public QuestionService(ISaver saver, IMappingProvider mapper, IRepository <Answer> answers, IRepository <Question> questions)
 {
     this.saver     = saver;
     this.mapper    = mapper;
     this.answers   = answers;
     this.questions = questions;
 }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HtmlDownloader"/> class
        /// </summary>
        /// <param name="contentSaver">Content saver</param>
        /// <param name="fileExtensionConstrain">File extension constraints</param>
        /// <param name="transactionConstraints">Transaction constraints</param>
        /// <param name="pageUrl">Url of the page</param>
        /// <param name="depthLevel">Maximal level of transactions</param>
        /// <param name="token">Cancellation token</param>
        public HtmlDownloader(ISaver contentSaver,
                              IFileExtensionConstraint fileExtensionConstrain,
                              ITransactionConstraint transactionConstraints,
                              string pageUrl,
                              int depthLevel,
                              CancellationToken token)
        {
            if (depthLevel < 0)
            {
                throw new ArgumentException($"{nameof(depthLevel)} cannot be less than zero.");
            }

            if (string.IsNullOrEmpty(pageUrl))
            {
                throw new ArgumentException($"{nameof(pageUrl)} cannot be null or emptry.");
            }

            _transactionConstraints   = transactionConstraints ?? throw new ArgumentNullException($"{nameof(transactionConstraints)} cannot be null.");
            _fileExtensionConstraints = fileExtensionConstrain ?? throw new ArgumentNullException($"{nameof(fileExtensionConstrain)} cannot be null.");
            _contentSaver             = contentSaver ?? throw new ArgumentNullException($"{nameof(contentSaver)} cannot be null.");

            _token = token;

            _maxDepthLevel = depthLevel;

            _primaryUri = new Uri(pageUrl);
        }
Example #3
0
        public RollbackManager(ISaver saveTo)
        {
            _saver = saveTo;
            _data  = new Stack <RollbackInfo>();

            Load();
        }
Example #4
0
        public RollbackManager(ISaver saveTo)
        {
            _saver = saveTo;
            _data = new Stack<RollbackInfo>();

            Load();
        }
		protected override void OnCreate (Bundle savedInstanceState)
		{
			base.OnCreate (savedInstanceState);
			SetContentView (Resource.Layout.MainLayout);

			// Create the picker instance
			saver = Saver.CreateSaver (OneDriveAppId);

			// Add the start saving listener
			FindViewById (Resource.Id.startSaverButton).Click += async delegate {
				FindViewById (Resource.Id.result_table).Visibility = ViewStates.Invisible;

				var filename = FindViewById<EditText> (Resource.Id.file_name_edit_text).Text;
				var fileSizeString = FindViewById<EditText> (Resource.Id.file_size_edit_text).Text;
				int size;
				if (!int.TryParse (fileSizeString, out size)) {
					size = DefaultFileSizeKb;
				}

				// Create a file
				var file = await CreateExternalSdCardFile (filename, size);

				// Start the saver
				saver.StartSaving (this, filename, Android.Net.Uri.Parse ("file://" + file));
			};
		}
Example #6
0
 public ReceiptController(
     IReceiptProvider receiptProvider,
     ISaver <Receipt> saver)
 {
     this.receiptProvider = receiptProvider;
     this.saver           = saver;
 }
Example #7
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            ILevelDesignView designView  = new LevelDesignForm();
            IErrorHandler    designCheck = new ErrorHandler();
            IMapEditor       designModel = new MapEditor(designCheck);

            ILevelDesignController designController = new Controller(designView, designModel);

            FileHandlerNS.IFiler filer = new FileHandler();
            ISaver  saver  = (ISaver)filer;
            ILoader loader = (ILoader)filer;

            IView gameView = new WindowsFormView();

            GameNS.Game    gameModel = new GameNS.Game();
            GameController gControl  = new GameController(gameModel, gameView);
            GameBoardForm  gameBoard = new GameBoardForm(gameView, gControl);

            FilerForm filerView = new FilerForm();

            FilerNS.IFiler        gameFiler    = new FilerNS.Filer();
            FileHandlerController filerControl = new FileHandlerController(saver, loader, filer, gameFiler, gameModel, filerView);

            MainForm f = new MainForm(designController, filerControl, gameBoard);

            Application.Run(f);
        }
Example #8
0
        public void ShouldCallParsingForEachPageFromPreviousIteration()
        {
            // Arrange
            string              baseUrl           = "https://en.wikipedia.org";
            string              path1             = "Resources/test.html";
            string              path2             = "Resources/Red_fox.html";
            string              initialUrl        = "https://en.wikipedia.org/test.html";
            string              innerUrl          = "https://en.wikipedia.org/wiki/Red_fox";
            string              expectedString    = "IterationCall() done!";
            string              notExpectedString = "Something went wrong in IterationCall().";
            ISaver              saver             = Substitute.For <ISaver>();
            IDownloader         downloader        = Substitute.For <IDownloader>();
            ICleaner            cleaner           = Substitute.For <ICleaner>();
            UrlCollectorService iterationService  = new UrlCollectorService(saver, downloader, cleaner);

            downloader.Download(Arg.Is <string>(innerUrl))
            .Returns("someDownloadedHtmlText");
            downloader.Download(Arg.Is <string>(initialUrl))
            .Returns("initialtext");
            downloader.SaveIntoFile(Arg.Is <string>("initialtext"))
            .Returns(path1);
            downloader.SaveIntoFile(Arg.Is <string>("someDownloadedHtmlText"))
            .Returns(path2);

            // Act
            var result = iterationService.Solothread(initialUrl, baseUrl);

            // Assert
            Assert.IsTrue(result.Result.Contains(expectedString), "IterationCall works wrong!");
            Assert.IsFalse(result.Result.Contains(notExpectedString), "IterationCall works wrong!");
        }
Example #9
0
 public UserService(ISaver saver, IRepository <TwitterUser> twitterUsers, IRepository <User> aspUsers, IRepository <UserTwitterUser> usersTwitterUsers)
 {
     this.saver            = saver ?? throw new ArgumentNullException();
     this.twitterUsers     = twitterUsers ?? throw new ArgumentNullException();
     this.aspUsers         = aspUsers ?? throw new ArgumentNullException();
     this.userTwitterUsers = usersTwitterUsers ?? throw new ArgumentNullException();
 }
 public void Setup()
 {
     _credentialRepositoryList = Substitute.For <ICredentialRepositoryList>();
     _loader            = Substitute.For <ILoader <IEnumerable <ICredentialRepository> > >();
     _saver             = Substitute.For <ISaver <IEnumerable <ICredentialRepository> > >();
     _credentialService = new CredentialServiceFacade(_credentialRepositoryList, _loader, _saver);
 }
Example #11
0
        public void Pick(ISaver saver, int order)
        {
            IsResolved = true;
            var choice = SelectFrame;

            double score;

            if (choice == null)
            {
                choice = _frames.OrderByDescending(frame => frame.Score).First();
                score  = choice.Score / 100d;
            }
            else
            {
                score = choice.Score;
            }

            using (var result = new LayerResult(_rect)) {
                result.Order = order;
                result.Name  = choice.Name;
                result.Score = score;
                choice.CopyTo(result);

                saver.Set(result);
            }
        }
Example #12
0
        public ResultForm(SaveType type)
        {
            InitializeComponent();

            this.FormClosing  += SaveData;
            this.StartPosition = FormStartPosition.Manual;

            CreateControls();

            switch (type)
            {
            case SaveType.XML:
                saver = new SaverXml();
                break;

            case SaveType.TXT:
                saver = new SaverTxt();
                break;

            case SaveType.Binary:
                saver = new SaverBinary();
                break;

            case SaveType.Register:
                saver = new SaverRegister();
                break;

            default:
                break;
            }

            GetSavedData();
        }
Example #13
0
        public FileLogger(ISaver saver, Settings settings)
        {
            _saver    = saver;
            _settings = settings;

            CreateLogsDirectory();
        }
 public PatternsDispatcher(ISettings settings, ISaver saver)
 {
     _settings = settings;
     _saver    = saver;
     _settings.SettingUpdated += SettingUpdated;
     SettingUpdated(this, new SettingUpdated(OsuMemoryEventSourceBase.SaveLiveTokensOnDisk.Name));
 }
Example #15
0
 public AdminService(ISaver saver, IMappingProvider mapper, IRepository <Test> tests, IRepository <UserTest> userTests)
 {
     this.saver     = saver ?? throw new ArgumentNullException("Saver can not be null");
     this.mapper    = mapper ?? throw new ArgumentNullException("Mapper can not be null");
     this.tests     = tests ?? throw new ArgumentNullException("Tests repo can not be null");
     this.userTests = userTests ?? throw new ArgumentNullException("Tests repo can not be null");
 }
Example #16
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Game Player
            IGameView      gameView       = new GameFormView();
            Game           gameModel      = new Game();
            GameController gameController = new GameController(gameModel, gameView);
            GameBoardForm  gameBoard      = new GameBoardForm(gameView, gameController);

            // File Handler
            IFiler  filer  = new Filer();
            ISaver  saver  = (ISaver)filer;
            ILoader loader = (ILoader)filer;

            FilerForm       filerView    = new FilerForm();
            IGameFiler      gameFiler    = new GameFiler();
            FilerController filerControl = new FilerController(saver, loader, filer, gameFiler, gameModel, filerView);

            // Level Designer
            ILevelDesignView designView  = new LevelDesignerForm();
            IChecker         designCheck = new Checker();
            ILevelDesigner   designModel = new LevelDesigner(designCheck);

            ILevelDesignController designController = new LevelDesignController(designView, designModel);


            BaseForm baseForm = new BaseForm(gameBoard, filerControl, designController);

            Application.Run(baseForm);
        }
Example #17
0
        /// <summary>
        /// Replays the changes in the current <see cref="Book"/> that have taken place since the <paramref name="savePoint"/> has been created.
        /// </summary>
        /// <param name="dataAdapter">The <see cref="ISaver"/> to which to replay the changes.</param>
        /// <param name="savePoint">The <see cref="SavePoint"/> from which the changes should be replayed.  If null, the entirety of the current <see cref="Book"/> will be replayed.</param>
        public void Replay(ISaver dataAdapter, SavePoint savePoint = null)
        {
            if (dataAdapter == null)
            {
                throw new ArgumentNullException(nameof(dataAdapter));
            }

            SaveTrack track;

            lock (this.lockMutex)
            {
                if (savePoint != null)
                {
                    if (!this.saveTracks.ContainsKey(savePoint))
                    {
                        throw new InvalidOperationException(Localization.Localization.SAVE_POINT_NOT_FOUND);
                    }

                    track = this.saveTracks[savePoint];
                }
                else
                {
                    track = this.baseSaveTrack;
                }
            }

            lock (track)
            {
                track.Replay(dataAdapter);
            }
        }
Example #18
0
 public DocumentController(IUserBusiness repository, IHelper helper, IDocumentBusiness repositoryDocument)
 {
     _repository         = repository;
     _repositoryDocument = repositoryDocument;
     _helper             = helper;
     _saver = _helper.GetSaver();
 }
Example #19
0
 public DocumentsController // easy to read, but many parameters
     (ISaver saver,
     IReader reader)
 {
     this.saver  = saver; // constructor injection
     this.reader = reader;
 }
Example #20
0
 public PhoneStore(IReader reader, IBinder <Phone> binder, IValidator <Phone> validator, ISaver <Phone> saver)
 {
     this.reader    = reader;
     this.binder    = binder;
     this.validator = validator;
     this.saver     = saver;
 }
        public MainPresenter(IMainForm view)
        {
            this.log   = new Log();
            this.score = new Score();
            log.ReadFile();
            score.StartWindow();
            this.player     = new Player(score.NamePlayer);
            this.bot        = new Bot();
            this.save       = new Saver();
            this.load       = new Loader();
            this.view       = view;
            this.controller = new GameController(player, bot);
            this.messange   = new Messanger(player, bot, view);
            if (score.LoadStatus == true)
            {
                controller.LoadPlayer(load.LoadPlayer(score.NamePlayer));
                RefreshProgress();
            }
            StringBuilder str = new StringBuilder();

            str.Append("У вас осталось ");
            str.Append(player.Bonus);
            str.Append(" свободных статов");
            view.LabelStat = str.ToString();
            controller.SetBotStat();
            messange.Message();
            View();
            view.Fight             += view_Fight;
            view.NextBatle         += view_NextBatle;
            view.PlayerStrengthAdd += view_PlayerStrengthAdd;
            view.PlayerArmorAdd    += view_PlayerArmorAdd;
            view.Save += view_Save;
        }
        public void TestProcess()
        {
            var expectedArray = new List <TaskModel>
            {
                CreateTask(0, 1, 2),
                CreateTask(1, 1, 4),
                CreateTask(2, 2, 4)
            };
            const int simulationLength = 10000;
            const int tickLength       = 10;

            ITaskListGenerator taskListGenerator = Substitute.For <ITaskListGenerator>();

            taskListGenerator.GenerateTaskList(simulationLength / tickLength, tickLength).Returns(expectedArray);


            ISaver saver = Substitute.For <ISaver>();

            IConfiguration configuration = Substitute.For <IConfiguration>();

            configuration.SimulationLength.Returns(simulationLength);
            configuration.TickLength.Returns(tickLength);

            var engine = new Engine(taskListGenerator, saver, configuration);


            engine.Process();

            taskListGenerator.Received().GenerateTaskList(simulationLength / tickLength, tickLength);
            saver.Received().Save(Arg.Is <IEnumerable <TaskModel> >(x => x == expectedArray));
        }
Example #23
0
 public void SetLogic(ISaver saver, string login, string passwaord)
 {
     if (login == "1" && passwaord == "1")
     {
         Logic = saver;
     }
 }
Example #24
0
        private void Start()
        {
            playerMonoBehaviour = playerMonoBehaviour ?? GameObject.FindObjectOfType <PlayerMonoBehaviour>();
            obstacleManager     = GetComponent <ObstacleManager>();
            // TODO
            Vector3 destinationPosition = FindDestinationPoint();

            directionTransform = uiDirection.transform as RectTransform;

            var directionArrowUi = new UiDirectionArrow(
                directionTransform,
                destinationObj.transform,
                playerMonoBehaviour.PlayerModel,
                Screen.width,
                Screen.height / 5);
            var textUiManager = new UiTextManager(playerMonoBehaviour.PlayerModel, uiTimeText, uiHappinessText);

            uiManager     = new UiManager(textUiManager, directionArrowUi);
            ScreenManager = new ScreenManager(screens);

            saver       = new BinarySaver();
            SavedScores = saver.Load <Scores>() ?? new Scores();

            FillStates();
            SetGameState(gameStateType);

            //TODO: Assert game states - to have all value implemented
            Debug.Log("End of Start method");
        }
Example #25
0
 public AnswerService(IRepository <Question> questionRepository, IRepository <Answer> answerRepository, ISaver saver, IMappingProvider mapper)
 {
     this.questionRepository = questionRepository;
     this.answerRepository   = answerRepository;
     this.saver  = saver;
     this.mapper = mapper;
 }
Example #26
0
 public void ChangeSaver(ISaver saver)
 {
     if (_saver is IDisposable)
         ((IDisposable)_saver).Dispose();
     _saver = null;
     _saver = saver;
 }
Example #27
0
 //protected IChecker Checker;
 public Filer(ILoader loader, ISaver saver, IConverter converter)//, IChecker checker)
 {
     Loader    = loader;
     Saver     = saver;
     Converter = converter;
     //Checker = checker;
 }
Example #28
0
        public BrowserOverlay(IContextAwareLogger logger, ISettings settings, ISaver saver, List <Lazy <IHighFrequencyDataConsumer> > dataConsumers, Delegates.Restart restarter)
        {
            _logger        = logger;
            _settings      = settings;
            _saver         = saver;
            _dataConsumers = dataConsumers;
            _restarter     = restarter;
            _browserOverlayConfiguration = _settings.GetConfiguration <Configuration>(BrowserOverlayConfigurationConfigEntry);
            _browserOverlayConfiguration.OverlayTabs ??= new List <OverlayTab> {
                new OverlayTab()
            };

            if (_browserOverlayConfiguration.Enabled && TextOverlayIsEnabled(_settings))
            {
                _browserOverlayConfiguration.Enabled = false;
                var infoText = $"TextIngameOverlay and BrowserIngameOverlay can't be ran at the same time.{Environment.NewLine} BrowserIngameOverlay was disabled in order to prevent osu! crash.";
                _logger.Log(infoText, LogLevel.Warning);
                MessageBox.Show(infoText, "BrowserIngameOverlay Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            if (_browserOverlayConfiguration.Enabled)
            {
                Initialize().HandleExceptions();
            }

            SendConfiguration();
        }
Example #29
0
        private void OnGameLaunched(object sender, GameLaunchedEventArgs e)
        {
            IConvenientChestsAPI convenientChestsAPI = Helper.ModRegistry.GetApi <IConvenientChestsAPI>("aEnigma.ConvenientChests");

            if (convenientChestsAPI != null)
            {
                Monitor.Log("Convenient Chests found, integration enabled");
            }
            else
            {
                convenientChestsAPI = new MockConvenientChestsAPI();
            }

            var itemPatcher     = new ItemPatcher(Helper, Monitor);
            var spritePatcher   = new SpritePatcher(Helper, Monitor);
            var farmhandMonitor = new FarmhandMonitor(Helper, Monitor);
            var savers          = new ISaver[]
            {
                new InventorySaver(Helper, Monitor, convenientChestsAPI),
                new FarmhandInventorySaver(Helper, Monitor, convenientChestsAPI),
                new LocationSaver(Helper, Monitor, convenientChestsAPI),
                new LocationInventorySaver(Helper, Monitor, convenientChestsAPI)
            };
            var saveManager = new SaveManager(Helper, Monitor, farmhandMonitor, savers);

            Helper.ReadConfig <ModConfig>();
            Helper.Content.AssetEditors.Add(spritePatcher);
            itemPatcher.Start();
            saveManager.Start();
        }
Example #30
0
        public SiteDownloader(IEnumerable <IConstraint> constraints,
                              ISaver saver,
                              ILogger logger,
                              int maxDeepLevel = 0)
        {
            if (constraints == null)
            {
                throw new ArgumentNullException(nameof(constraints));
            }

            _constraints = new Dictionary <ConstraintType, IEnumerable <IConstraint> >
            {
                [ConstraintType.File] = constraints.Where(c => (c.ConstraintType & ConstraintType.File) != 0).ToArray(),
                [ConstraintType.Url]  = constraints.Where(c => (c.ConstraintType & ConstraintType.Url) != 0).ToArray()
            };

            _saver  = saver ?? throw new ArgumentNullException(nameof(saver));
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            if (maxDeepLevel < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(maxDeepLevel));
            }

            MaxDeepLevel = maxDeepLevel;
        }
Example #31
0
        public FileLogger(ISaver saver, Settings settings)
        {
            _saver = saver;
            _settings = settings;
            CurrentLogSaveLocation = GetRelativeSaveLocation();

            CreateLogsDirectory();
        }
Example #32
0
        public FileLogger(ISaver saver, Settings settings)
        {
            _saver    = saver;
            _settings = settings;
            CurrentLogSaveLocation = GetRelativeSaveLocation();

            CreateLogsDirectory();
        }
 public Counters(ISaver saver, int latencyStep = 100, int latencyLength = 10)
 {
     LatencyStep   = latencyStep;
     LatencyLength = latencyLength;
     _counterSaver = saver;
     InnerCounters = new ConcurrentDictionary <string, int>();
     ResetCounters();
 }
Example #34
0
 public CreateTestService(ISaver saver, IMappingProvider mapper, IRepository <Answer> answers, IRepository <Question> questions, IRepository <Test> tests)
 {
     this.saver     = saver;
     this.mapper    = mapper;
     this.answers   = answers;
     this.questions = questions;
     this.tests     = tests;
 }
Example #35
0
        public Mp3Syncing(IEnumerable<IMp3File> files, string mask, ICommunication communication, ISaver saver)
        {
            _files = files.ToArray();
            _communication = communication;
            _mask = mask;

            _data = new List<KeyValuePair<string, KeyValuePair<string, Dictionary<TagType, string>>>>();
            _saver = saver;
        }
Example #36
0
        public Mp3TagChanger(IMp3File mp3File, string mask, ISaver backuper)
        {
            Mp3 = mp3File;

            Backuper = backuper;
            _mask = mask;

            Mp3RealName = Path.GetFileNameWithoutExtension(mp3File.FilePath);
            _dataExtracter = new DataExtracter(_mask);
        }
Example #37
0
        public ConsoleApp(CommandLineArgs arguments, Config configuration, IFileParser fileParser, IDrawer drawer, 
			IWordPreparer wordPreparer, ISaver imageSaver)
        {
            _args = arguments;
            _config = configuration;
            _parser = fileParser;
            _drawer = drawer;
            _wordPreparer = wordPreparer;
            _imageSaver = imageSaver;
        }
Example #38
0
        public Mp3File(string file, ISaver saver)
        {
            if (!System.IO.File.Exists(file)) throw new FileNotFoundException("Mp3File not found", file);
            FilePath = file;

            _oldFilePath = file.Clone() as string;
            _saver = saver;

            File = TagLib.File.Create(file);
            Tag = File.GetTag(TagTypes.Id3v2);
        }
Example #39
0
        public Mp3FileNameChanger(IMp3File file, string mask, ISaver saver, bool fastChanges = false)
        {
            _mp3File = file;
            Id3Data = new Dictionary<TagType, string>();

            _dataExtracter = new DataExtracter(mask);

            _fastChanges = fastChanges;

            _saver = saver;
            _mask = mask;
        }
Example #40
0
        /// <summary>
        /// Replays the changes in the current <see cref="Book"/> that have taken place since the <paramref name="savePoint"/> has been created.
        /// </summary>
        /// <param name="dataAdapter">The <see cref="ISaver"/> to which to replay the changes.</param>
        /// <param name="savePoint">The <see cref="SavePoint"/> from which the changes should be replayed.  If null, the entirety of the current <see cref="Book"/> will be replayed.</param>
        public void Replay(ISaver dataAdapter, SavePoint savePoint = null)
        {
            SaveTrack track;

            lock (this.lockMutex)
            {
                if (savePoint != null)
                {
                    if (!this.saveTracks.ContainsKey(savePoint))
                    {
                        throw new InvalidOperationException("Could replay the book's modifications, because the save point could not be found.");
                    }

                    track = this.saveTracks[savePoint];
                }
                else
                {
                    track = this.baseSaveTrack;
                }
            }

            lock (track)
            {
                track.Replay(dataAdapter);
            }
        }
 public void SetSaveHandle(ISaver saver)
 {
     _saver = saver;
 }
Example #42
0
 /// <summary>
 /// Replays the actions in this save track into an <see cref="ISaver"/>.
 /// </summary>
 /// <param name="dataAdapter">The adapter into which to replay the actions.</param>
 public void Replay(ISaver dataAdapter)
 {
     foreach (var action in this.actions)
     {
         switch (action.ActionType)
         {
             case ActionType.SetSetting:
                 var pair = (KeyValuePair<string, string>)action.Item;
                 dataAdapter.SetSetting(pair.Key, pair.Value);
                 break;
             case ActionType.RemoveSetting:
                 dataAdapter.RemoveSetting((string)action.Item);
                 break;
             case ActionType.AddSecurity:
                 dataAdapter.AddSecurity((SecurityData)action.Item);
                 break;
             case ActionType.RemoveSecurity:
                 dataAdapter.RemoveSecurity((Guid)action.Item);
                 break;
             case ActionType.AddPriceQuote:
                 dataAdapter.AddPriceQuote((PriceQuoteData)action.Item);
                 break;
             case ActionType.RemovePriceQuote:
                 dataAdapter.RemovePriceQuote((Guid)action.Item);
                 break;
             case ActionType.AddAccount:
                 dataAdapter.AddAccount((AccountData)action.Item);
                 break;
             case ActionType.RemoveAccount:
                 dataAdapter.RemoveAccount((Guid)action.Item);
                 break;
             case ActionType.AddTransaction:
                 dataAdapter.AddTransaction((TransactionData)action.Item);
                 break;
             case ActionType.RemoveTransaction:
                 dataAdapter.RemoveTransaction((Guid)action.Item);
                 break;
         }
     }
 }
Example #43
0
 public HomeState(ISaver<HomeState> saver)
     : this()
 {
     _saver = saver;
 }