PIbd-21_MasenkinMS_SUBD_Rou.../RouteGuide/RouteGuideMongoDBImplement/RouteGuideDatabase.cs

69 lines
2.0 KiB
C#
Raw Normal View History

2024-04-23 19:38:25 +04:00
using MongoDB.Driver;
using RouteGuideMongoDBImplement.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RouteGuideMongoDBImplement
{
/// <summary>
/// Класс для взаимодействия с базой данных
/// </summary>
public class RouteGuideDatabase : IDisposable
{
/// <summary>
/// Клиент
/// </summary>
public readonly MongoClient _client;
/// <summary>
/// База данных
/// </summary>
private readonly IMongoDatabase _database;
/// <summary>
/// Конструктор
/// </summary>
/// <param name="connectionString">Параметры подключения к базе данных</param>
/// <param name="databaseName">Название базы данных</param>
public RouteGuideDatabase(string connectionString = "mongodb://localhost:27017",
string databaseName = "RouteGuideDatabase")
{
_client = new MongoClient(connectionString);
_database = _client.GetDatabase(databaseName);
}
/// <summary>
/// Коллекция "Водители"
/// </summary>
public IMongoCollection<Driver> Drivers => _database.GetCollection<Driver>("Drivers");
/// <summary>
/// Коллекция "Транспорт"
/// </summary>
public IMongoCollection<Transport> Transport => _database.GetCollection<Transport>("Transport");
/// <summary>
/// Коллекция "Маршруты"
/// </summary>
public IMongoCollection<Route> Routes => _database.GetCollection<Route>("Routes");
/// <summary>
/// Коллекция "Остановки"
/// </summary>
public IMongoCollection<Stop> Stops => _database.GetCollection<Stop>("Stops");
/// <summary>
/// Коллекция "Расписания"
/// </summary>
public IMongoCollection<Schedule> Schedules => _database.GetCollection<Schedule>("Schedules");
/// <summary>
/// Освободить ресурсы
/// </summary>
public void Dispose() { }
}
}