using System.Collections.Generic; using Ocelot.Library.Infrastructure.Responses; namespace Ocelot.Library.Infrastructure.HostUrlRepository { public class InMemoryHostUrlMapRepository : IHostUrlMapRepository { private readonly Dictionary _routes; public InMemoryHostUrlMapRepository() { _routes = new Dictionary(); } public Response AddBaseUrlMap(HostUrlMap baseUrlMap) { if(_routes.ContainsKey(baseUrlMap.UrlPathTemplate)) { return new ErrorResponse(new List(){new HostUrlMapKeyAlreadyExists()}); } _routes.Add(baseUrlMap.UrlPathTemplate, baseUrlMap.UpstreamHostUrl); return new OkResponse(); } public Response GetBaseUrlMap(string urlPathTemplate) { string upstreamUrl = null; if(_routes.TryGetValue(urlPathTemplate, out upstreamUrl)) { return new OkResponse(new HostUrlMap(urlPathTemplate, upstreamUrl)); } return new ErrorResponse(new List(){new HostUrlMapKeyDoesNotExist()}); } } }