IVSession.cs 951 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using VCommon.VApplication.Authorization;
  3. namespace VCommon.VApplication
  4. {
  5. public interface IVSession
  6. {
  7. Guid? UserId { get; }
  8. Guid? TenantId { get; }
  9. string Token { get; }
  10. void DemandAuth();
  11. public Guid GetUserId()
  12. {
  13. if (!UserId.HasValue) throw new VApplicationAuthException("UserId is null! Probably, user is not logged in.", AuthReason.AuthRequired);
  14. return UserId.Value;
  15. }
  16. public Guid GetTenantId()
  17. {
  18. if (!TenantId.HasValue)
  19. throw new VApplicationAuthException("TenantId is null! Possible problems: No user logged in or current logged in user in a host user (TenantId is always null for host users).", AuthReason.AuthRequired);
  20. return TenantId.Value;
  21. }
  22. public MultiTenancySides Side => TenantId.HasValue ? MultiTenancySides.Tenant : MultiTenancySides.Host;
  23. }
  24. }