// 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.Data.Entity;
using System.Data.Entity.Core;
using System.Data.Entity.Core.Objects;
namespace Application.Ringtoets.Storage.DbContext
{
///
/// Interface that describes the properties and methods that must be implemented on classes that extend from a database context.
///
public interface IRingtoetsEntities
{
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet ProjectEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet AssessmentSectionEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet FailureMechanismEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet FailureMechanismSectionEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet FailureMechanismSectionPointEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet HydraulicLocationEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet ReferenceLinePointEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet StochasticSoilModelEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet StochasticSoilProfileEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet SoilProfileEntities { get; }
///
/// Gets a of containing
/// every entity found in the database.
///
DbSet SoilLayerEntities { get; }
///
/// Gets a of containing
/// every piping surface line entity in the database.
///
DbSet SurfaceLineEntities { get; }
///
/// Gets a of
/// containing every piping surface line geometry point in the database.
///
DbSet SurfaceLinePointEntities { get; }
///
/// Gets a of
/// containing every characteristic point of piping surface lines in the database.
///
DbSet CharacteristicPointEntities { get; }
///
/// Persists all updates to the database and resets change tracking in the object context, see .
///
/// The number of state entries written to the underlying database. This can include state entries for entities and/or relationships.
/// Relationship state entries are created for many-to-many relationships and relationships where there is no foreign key property included in the entity class
/// (often referred to as independent associations).
/// An optimistic concurrency violation has occurred while saving changes.
int SaveChanges();
}
}