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