diff --git a/src/FishyFlip/ATProtocol.cs b/src/FishyFlip/ATProtocol.cs
index 8461bbd..3dc38d6 100644
--- a/src/FishyFlip/ATProtocol.cs
+++ b/src/FishyFlip/ATProtocol.cs
@@ -115,6 +115,11 @@ public ATProtocol(ATProtocolOptions options)
///
public bool IsSubscriptionActive => this.webSocketProtocol.IsConnected;
+ ///
+ /// Gets the base address for the underlying HttpClient.
+ ///
+ public Uri? BaseAddress => this.client.BaseAddress;
+
///
/// Gets the Internal HttpClient.
///
@@ -170,7 +175,14 @@ public void UpdateOptions(ATProtocolOptions options)
this.sessionManager.Dispose();
this.webSocketProtocol = new ATWebSocketProtocol(this);
this.webSocketProtocol.OnConnectionUpdated += this.WebSocketProtocolOnConnectionUpdated;
- this.sessionManager = new SessionManager(this);
+ if (options.Session is not null)
+ {
+ this.sessionManager = new SessionManager(this, options.Session);
+ }
+ else
+ {
+ this.sessionManager = new SessionManager(this);
+ }
}
///
@@ -207,7 +219,7 @@ internal void OnUserLoggedIn(Session session)
/// Sets the current session.
///
/// .
- public void SetSession(Session session)
+ internal void SetSession(Session session)
=> this.sessionManager?.SetSession(session);
private void Dispose(bool disposing)
diff --git a/src/FishyFlip/ATProtocolBuilder.cs b/src/FishyFlip/ATProtocolBuilder.cs
index a9a37a3..7fbc4c2 100644
--- a/src/FishyFlip/ATProtocolBuilder.cs
+++ b/src/FishyFlip/ATProtocolBuilder.cs
@@ -2,6 +2,8 @@
// Copyright (c) Drastic Actions. All rights reserved.
//
+using System.Security.Cryptography.X509Certificates;
+
namespace FishyFlip;
///
@@ -96,6 +98,17 @@ public ATProtocolBuilder WithSessionRefreshInterval(TimeSpan interval)
return this;
}
+ ///
+ /// Sets an initial session to use.
+ ///
+ /// .
+ ///
+ public ATProtocolBuilder WithInitialSession(Session session)
+ {
+ this.atProtocolOptions.Session = session;
+ return this;
+ }
+
///
/// Set the ATProtocol to use admin credentials.
///
diff --git a/src/FishyFlip/ATProtocolOptions.cs b/src/FishyFlip/ATProtocolOptions.cs
index f8ca59e..953c2d4 100644
--- a/src/FishyFlip/ATProtocolOptions.cs
+++ b/src/FishyFlip/ATProtocolOptions.cs
@@ -53,6 +53,11 @@ public ATProtocolOptions()
///
public ILogger? Logger { get; internal set; }
+ ///
+ /// Gets the initial session.
+ ///
+ public Session? Session { get; internal set; }
+
///
/// Gets the instance Url.
///