Taylohtio/GeneralSSO/GeneralSSO.Server/CodeFiles/Repositories/Impl/ClientAuthorizationReposito...

39 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using NHibernate.Linq;
using Taloyhtio.GeneralSSO.Server.CodeFiles.Entities;
using Taloyhtio.GeneralSSO.Server.CodeFiles.Infrastructure.DataAccess;
namespace Taloyhtio.GeneralSSO.Server.CodeFiles.Repositories.Impl
{
public class ClientAuthorizationRepository : AtomicRepositoryBase<ClientAuthorization, int>, IClientAuthorizationRepository
{
public ClientAuthorizationRepository(ISessionSource sessionSource)
: base(sessionSource)
{
}
public IEnumerable<ClientAuthorization> GetNotExpiredBy(string clientIdentifier, string userId, DateTime issuedUtc)
{
var session = this.GetSession();
return session.Linq<ClientAuthorization>().Where(
c =>
c.Client.ClientIdentifier == clientIdentifier &&
c.CreatedOn <= issuedUtc &&
(c.ExpirationDate == null || c.ExpirationDate >= DateTime.UtcNow) &&
c.UserId == userId);
}
public IEnumerable<ClientAuthorization> GetNotExpiredBy(string clientIdentifier, string userId, string scope)
{
var session = this.GetSession();
return session.Linq<ClientAuthorization>().Where(
c =>
c.Client.ClientIdentifier == clientIdentifier &&
c.Scope == scope &&
(c.ExpirationDate == null || c.ExpirationDate >= DateTime.UtcNow) &&
c.UserId == userId);
}
}
}