manager-service/ManagerService/Services/SectionDatabaseService.cs
2025-03-19 08:57:29 +01:00

88 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Manager.Interfaces.Models;
using ManagerService.Data;
using ManagerService.DTOs;
using Microsoft.Extensions.Configuration;
using MongoDB.Driver;
namespace Manager.Services
{
public class SectionDatabaseService
{
private readonly IMongoCollection<OldSection> _Sections;
public SectionDatabaseService(IConfiguration config)
{
var client = new MongoClient(config.GetConnectionString("TabletDb"));
var database = client.GetDatabase("TabletDb");
_Sections = database.GetCollection<OldSection>("Sections");
}
public List<OldSection> GetAll(string instanceId)
{
return _Sections.Find(s => !s.IsSubSection && s.InstanceId == instanceId).ToList();
}
public List<OldSection> GetAllFromConfiguration(string configurationId)
{
return _Sections.Find(s => !s.IsSubSection && s.ConfigurationId == configurationId).ToList();
}
public List<OldSection> GetAllFromConfigurationEvenSubsection(string configurationId)
{
return _Sections.Find(s => s.ConfigurationId == configurationId).ToList();
}
public List<string> GetAllIdsFromConfiguration(string configurationId)
{
return _Sections.Find(s => !s.IsSubSection && s.ConfigurationId == configurationId).ToList().Select(s => s.Id).ToList();
}
public List<OldSection> GetAllWeatherSectionsFromConfiguration(string configurationId)
{
return _Sections.Find(s => s.ConfigurationId == configurationId && s.Type == SectionType.Weather).ToList();
}
public List<OldSection> GetAllSubSection(string parentId)
{
return _Sections.Find(s => s.IsSubSection && s.ParentId == parentId).ToList();
}
public OldSection GetById(string id)
{
return _Sections.Find<OldSection>(s => s.Id == id).FirstOrDefault();
}
public bool IsExist(string id)
{
return _Sections.Find<OldSection>(s => s.Id == id).FirstOrDefault() != null ? true : false;
}
public OldSection Create(OldSection section)
{
_Sections.InsertOne(section);
return section;
}
public OldSection Update(string id, OldSection sectionIn)
{
_Sections.ReplaceOne(s => s.Id == id, sectionIn);
return sectionIn;
}
public void Remove(string id)
{
_Sections.DeleteOne(s => s.Id == id);
}
public void DeleteAllFromConfiguration(string configurationId)
{
_Sections.DeleteMany(s => s.ConfigurationId == configurationId);
}
}
}