manager-service/ManagerService/Services/ResourceDatabaseService.cs

60 lines
1.7 KiB
C#

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 ResourceDatabaseService
{
private readonly IMongoCollection<Resource> _Resources;
public ResourceDatabaseService(IConfiguration config)
{
var client = new MongoClient(config.GetConnectionString("TabletDb"));
var database = client.GetDatabase("TabletDb");
_Resources = database.GetCollection<Resource>("Resources");
}
public List<Resource> GetAll(string instanceId)
{
return _Resources.Find(r => r.InstanceId == instanceId).ToList();
}
public List<Resource> GetAllByType(string instanceId, List<ResourceType> types)
{
return _Resources.Find<Resource>(r => r.InstanceId == instanceId && types.Contains(r.Type)).ToList();
}
public Resource GetById(string id)
{
return _Resources.Find<Resource>(r => r.Id == id).FirstOrDefault();
}
public bool IsExist(string id)
{
return _Resources.Find<Resource>(r => r.Id == id).FirstOrDefault() != null ? true : false;
}
public Resource Create(Resource resource)
{
_Resources.InsertOne(resource);
return resource;
}
public Resource Update(string id, Resource resourceIn)
{
_Resources.ReplaceOne(r => r.Id == id, resourceIn);
return resourceIn;
}
public void Remove(string id)
{
_Resources.DeleteOne(r => r.Id == id);
}
}
}