Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ResourceModel.cs 23.36 KiB
using Coscine.Configuration;
using Coscine.Database.DataModel;
using Coscine.Database.ReturnObjects;
using Coscine.Database.Util;
using LinqKit;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
namespace Coscine.Database.Models
{
public class ResourceModel : DatabaseModel<Resource>
{
public override Resource GetById(Guid id)
{
var expression = GetIdFromObject();
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db).AsExpandable()
where expression.Invoke(tableEntry) == id
&& !tableEntry.Deleted
select tableEntry).FirstOrDefault();
});
}
public Resource GetByIdIncludingDeleted(Guid id)
{
var expression = GetIdFromObject();
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db).AsExpandable()
where expression.Invoke(tableEntry) == id
select tableEntry).FirstOrDefault();
});
}
public override Resource GetWhere(Expression<Func<Resource, bool>> whereClause)
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db).AsExpandable()
where whereClause.Invoke(tableEntry)
&& !tableEntry.Deleted
select tableEntry).FirstOrDefault();
});
}
public override IEnumerable<Resource> GetAll()
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db)
where !tableEntry.Deleted
select tableEntry).ToList();
});
}
public override IEnumerable<Resource> GetAllWhere(Expression<Func<Resource, bool>> whereClause)
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db).AsExpandable()
where whereClause.Invoke(tableEntry)
&& !tableEntry.Deleted