Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ProjectModel.cs 21.05 KiB
using Coscine.Database.DataModel;
using Coscine.Database.ReturnObjects;
using Coscine.Database.Util;
using LinqKit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text.RegularExpressions;
namespace Coscine.Database.Models
{
public class ProjectModel : DatabaseModel<Project>
{
public bool IsDeleted(Guid id)
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db)
where tableEntry.Id == id
&& tableEntry.Deleted == true
select tableEntry).Count() == 1;
});
}
public override Project GetById(Guid id)
{
var expression = GetIdFromObject();
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db).AsExpandable()
where expression.Invoke(tableEntry) == id
&& tableEntry.Deleted == false
select tableEntry).FirstOrDefault();
});
}
public Project GetBySlug(String slug)
{
return GetWhere((tableEntry) => tableEntry.Slug == slug);
}
public Project 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 Project GetWhere(Expression<Func<Project, bool>> whereClause)
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in GetITableFromDatabase(db).AsExpandable()
where whereClause.Invoke(tableEntry)
&& tableEntry.Deleted == false
select tableEntry).FirstOrDefault();
});
}
public override IEnumerable<Project> GetAll()
{