Beispiel #1
0
        public void Initialize()
        {
            if (_initialized)
            {
                return;
            }

            var configurator = new DatabaseConfigurationBuilder <TDatabase>();

            OnDatabaseInitializing(configurator);

            if (configurator.DatabaseFactory == null)
            {
                throw new InvalidOperationException("database factory is undefined");
            }

            _databaseEncryption = configurator.DatabaseEncryption ?? new NoDatabaseEncryption();
            _databaseSerializer = configurator.DatabaseSerializer ?? new DataContractDatabaseSerializer <TDatabase>();

            var file = _directoryContext.GetFile(_fileName);

            if (file != null)
            {
                try
                {
                    _database = _databaseSerializer.Deserialize(_databaseEncryption.Decrypt(file.Content));
                }
                catch (CryptographicException)
                {
                    _database = configurator.DatabaseFactory.Create();
                }
                catch (FormatException)
                {
                    _database = configurator.DatabaseFactory.Create();
                }
                catch (SerializationException)
                {
                    _database = configurator.DatabaseFactory.Create();
                }
                catch (InvalidCastException)
                {
                    _database = configurator.DatabaseFactory.Create();
                }
            }
            else
            {
                _database = _database = configurator.DatabaseFactory.Create();
            }

            _initialized = true;
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConsoleRepository" /> class.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="directoryUtility">The directory utility.</param>
 /// <param name="fileUtility">The file utility.</param>
 /// <param name="pathUtility">The path utility.</param>
 /// <param name="consoleSerializer">The console serializer.</param>
 /// <param name="databaseSerializer">The database serializer.</param>
 /// <param name="gameValidator">The game validator.</param>
 /// <param name="consoleValidator">The console validator.</param>
 public ConsoleRepository(
     IHyperValidatorSettings settings,
     ILogger logger,
     IDirectoryUtility directoryUtility,
     IFileUtility fileUtility,
     IPathUtility pathUtility,
     IConsoleSerializer consoleSerializer,
     IDatabaseSerializer databaseSerializer,
     IGameValidator gameValidator,
     IConsoleValidator consoleValidator)
 {
     Settings           = settings;
     Logger             = logger;
     DirectoryUtility   = directoryUtility;
     FileUtility        = fileUtility;
     PathUtility        = pathUtility;
     ConsoleSerializer  = consoleSerializer;
     DatabaseSerializer = databaseSerializer;
     GameValidator      = gameValidator;
     ConsoleValidator   = consoleValidator;
 }
Beispiel #3
0
 public void Configure(IDatabaseSerializer <TDatabase> databaseSerializer)
 {
     DatabaseSerializer = databaseSerializer;
 }