namespace ChatTwo.Http; public static class WebserverUtil { public static async Task FrameworkWrapper(Func> func) { return await Plugin.Framework.RunOnTick(func).ConfigureAwait(false); } // From: https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Request.cs#L176 /// /// Gets the cookie data from the provided string if it exists /// /// The string containing cookie data /// Cookies dictionary public static Dictionary GetCookieData(string cookieHeader) { var cookieDictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); if (cookieHeader.Length == 0) return cookieDictionary; var values = cookieHeader.TrimEnd(';').Split(';'); foreach (var parts in values.Select(c => c.Split(['='], 2))) { var cookieName = parts[0].Trim(); var cookieValue = parts.Length == 1 ? string.Empty : parts[1]; //Cookie attribute cookieDictionary[cookieName] = cookieValue; } return cookieDictionary; } }