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, IClientAuthorizationRepository { public ClientAuthorizationRepository(ISessionSource sessionSource) : base(sessionSource) { } public IEnumerable GetNotExpiredBy(string clientIdentifier, string userId, DateTime issuedUtc) { var session = this.GetSession(); return session.Linq().Where( c => c.Client.ClientIdentifier == clientIdentifier && c.CreatedOn <= issuedUtc && (c.ExpirationDate == null || c.ExpirationDate >= DateTime.UtcNow) && c.UserId == userId); } public IEnumerable GetNotExpiredBy(string clientIdentifier, string userId, string scope) { var session = this.GetSession(); return session.Linq().Where( c => c.Client.ClientIdentifier == clientIdentifier && c.Scope == scope && (c.ExpirationDate == null || c.ExpirationDate >= DateTime.UtcNow) && c.UserId == userId); } } }