From 1fcc010f14a7dfbbc2650d4aef14b4143acff539 Mon Sep 17 00:00:00 2001 From: Brady Kirby Date: Fri, 26 Apr 2024 16:46:12 -0500 Subject: [PATCH 1/2] Added BaseUri property to SessionResource, supporting relative url when processing for capabilities. --- RetsSdk/Models/SessionResource.cs | 10 ++++++++-- RetsSdk/Services/RetsSession.cs | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/RetsSdk/Models/SessionResource.cs b/RetsSdk/Models/SessionResource.cs index ce3b4d3..833d32e 100644 --- a/RetsSdk/Models/SessionResource.cs +++ b/RetsSdk/Models/SessionResource.cs @@ -7,6 +7,7 @@ namespace CrestApps.RetsSdk.Models { public class SessionResource { + public string BaseUri { get; set; } public string SessionId { get; set; } public string Cookie { get; set; } @@ -19,19 +20,24 @@ public SessionResource() public void AddCapability(Capability name, string url) { + if (url.StartsWith("/")) + { + url = BaseUri + url; + } + var uri = new Uri(url); if (Capabilities.ContainsKey(name) || !uri.IsWellFormedOriginalString()) { return; } - + Capabilities.TryAdd(name, uri); } public Uri GetCapability(Capability name) { - if(!Capabilities.ContainsKey(name)) + if (!Capabilities.ContainsKey(name)) { throw new MissingCapabilityException(); } diff --git a/RetsSdk/Services/RetsSession.cs b/RetsSdk/Services/RetsSession.cs index 783b27e..5ee872d 100644 --- a/RetsSdk/Services/RetsSession.cs +++ b/RetsSdk/Services/RetsSession.cs @@ -76,6 +76,7 @@ protected SessionResource GetRetsResource(string[] parts, string cookie) { var resource = new SessionResource() { + BaseUri = LoginUri.AbsoluteUri.Substring(0, LoginUri.AbsoluteUri.Length - LoginUri.PathAndQuery.Length), SessionId = MakeRetsSessionId(cookie), Cookie = cookie, }; @@ -102,7 +103,7 @@ private string MakeRetsSessionId(string cookie) { string sessionId = ExtractSessionId(cookie); - if(string.IsNullOrWhiteSpace(sessionId)) + if (string.IsNullOrWhiteSpace(sessionId)) { return null; } From 40bba7c0977f382ea8dabd72dee8577de79f726a Mon Sep 17 00:00:00 2001 From: Brady Kirby Date: Tue, 7 May 2024 17:29:36 -0500 Subject: [PATCH 2/2] fixed misspelling --- RetsSdk/Models/ConnectionOptions.cs | 2 +- RetsSdk/Services/RetsSession.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RetsSdk/Models/ConnectionOptions.cs b/RetsSdk/Models/ConnectionOptions.cs index e002984..7fce51b 100644 --- a/RetsSdk/Models/ConnectionOptions.cs +++ b/RetsSdk/Models/ConnectionOptions.cs @@ -9,7 +9,7 @@ public class ConnectionOptions public string Password { get; set; } public AuthenticationType Type { get; set; } public string UserAgent { get; set; } - public string UserAgentPassward { get; set; } + public string UserAgentPassword { get; set; } public SupportedRetsVersion RetsServerVersion { get; set; } = SupportedRetsVersion.Version_1_7_2; public string LoginUrl { get; set; } public TimeSpan Timeout { get; set; } diff --git a/RetsSdk/Services/RetsSession.cs b/RetsSdk/Services/RetsSession.cs index 5ee872d..4fcf060 100644 --- a/RetsSdk/Services/RetsSession.cs +++ b/RetsSdk/Services/RetsSession.cs @@ -108,7 +108,7 @@ private string MakeRetsSessionId(string cookie) return null; } - string agentData = Str.Md5(Options.UserAgent + ":" + Options.UserAgentPassward); + string agentData = Str.Md5(Options.UserAgent + ":" + Options.UserAgentPassword); return $"{agentData}::{sessionId}:{Options.Version.AsHeader()}"; }