// Copyright (C) Stichting Deltares 2016. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Data; using Application.Ringtoets.Migration.Core.Properties; using Core.Common.Base.IO; using Core.Common.Base.Storage; using Core.Common.IO.Readers; namespace Application.Ringtoets.Migration.Core { /// /// Class that provides methods for the migration database source file. /// public class RingtoetsDatabaseSourceFile : SqLiteDatabaseReaderBase { /// /// Creates a new instance of the class. /// /// The path to the source file. /// Thrown when: /// /// The contains invalid characters. /// No file could be found at . /// Unable to open database file. /// /// public RingtoetsDatabaseSourceFile(string databaseFilePath) : base(databaseFilePath) {} /// /// Gets the version of the Ringtoets database source file at location . /// /// The version of the file. /// Thrown when the file is not a valid /// Ringtoets database source file. public string GetVersion() { string versionQuery = RingtoetsDatabaseQueryBuilder.GetVersionQuery(); try { using (IDataReader dataReader = CreateDataReader(versionQuery, null)) { if (!dataReader.Read()) { return string.Empty; } return dataReader.Read(VersionTableDefinitions.Version); } } catch (SystemException exception) { throw new StorageValidationException(string.Format(Resources.RingtoetsDatabaseSourceFile_Invalid_Ringtoets_File_Path_0, Path), exception); } } } }