public void SetConfiguration(IBookablePairIdTemplate template, SingleIdTemplate <SellerIdComponents> sellerTemplate) { if (template as BookablePairIdTemplate <TComponents> == null) { throw new NotSupportedException($"{template.GetType().ToString()} does not match {typeof(BookablePairIdTemplate<TComponents>).ToString()}. All types of IBookableIdComponents (T) used for BookablePairIdTemplate<T> assigned to feeds via settings.IdConfiguration must match those used for RPDEFeedGenerator<T> in settings.OpenDataFeeds."); } base.SetConfiguration((BookablePairIdTemplate <TComponents>)template, sellerTemplate); }
public void SingleIdTemplate_GetIdComponents_UrlEncoded() { var template = new SingleIdTemplate <SessionSeriesComponents>( "{+BaseUrl}api/{EventType}/{SessionSeriesId}/events/{ScheduledSessionId}" ); template.RequiredBaseUrl = new Uri("https://example.com/"); var components = template.GetIdComponents(new Uri("https://example.com/api/session-series/2020-02-23T17%3A30%3A00Z/events/123")); Assert.Equal("session-series", components.EventType); Assert.Equal("2020-02-23T17:30:00Z", components.SessionSeriesId); Assert.Equal(123, components.ScheduledSessionId); }
public void SingleIdTemplate_GetIdComponents() { var template = new SingleIdTemplate <SessionSeriesComponents>( "{+BaseUrl}api/{EventType}/{SessionSeriesId}/events/{ScheduledSessionId}" ); template.RequiredBaseUrl = new Uri("https://example.com/"); var components = template.GetIdComponents(new Uri("https://example.com/api/session-series/asdf/events/123")); Assert.Equal("session-series", components.EventType); Assert.Equal("asdf", components.SessionSeriesId); Assert.Equal(123, components.ScheduledSessionId); }
public void SingleIdTemplate_RenderId_UrlEncoded() { var template = new SingleIdTemplate <SessionSeriesComponents>( "{+BaseUrl}api/{EventType}/{SessionSeriesId}/events/{ScheduledSessionId}" ); template.RequiredBaseUrl = new Uri("https://example.com/"); var uri = new Uri("https://example.com/api/session-series/2020-02-23T17%3A30%3A00Z/events/123"); var components = template.GetIdComponents(uri); var outputUri = template.RenderId(components); Assert.Equal(uri, outputUri); }
internal void SetConfiguration(SingleIdTemplate <SellerIdComponents> template) { this.IdTemplate = template; }
protected internal void SetConfiguration(BookablePairIdTemplate <TComponents> template, SingleIdTemplate <SellerIdComponents> sellerTemplate) { this.IdTemplate = template; this.SellerIdTemplate = sellerTemplate; }
public void SetConfiguration(OpportunityTypeConfiguration opportunityTypeConfiguration, Uri jsonLdIdBaseUrl, int rpdePageSize, IBookablePairIdTemplate bookablePairIdTemplate, SingleIdTemplate <SellerIdComponents> sellerTemplate, Uri openDataFeedBaseUrl) { if (!(bookablePairIdTemplate is BookablePairIdTemplate <TComponents>)) { throw new InternalOpenBookingException(new InternalLibraryConfigurationError(), $"{bookablePairIdTemplate.GetType()} does not match {typeof(BookablePairIdTemplate<TComponents>)}. All types of IBookableIdComponents (T) used for BookablePairIdTemplate<T> assigned to feeds via settings.IdConfiguration must match those used for RPDEFeedGenerator<T> in settings.OpenDataFeeds."); } if (opportunityTypeConfiguration.SameAs.AbsolutePath.Trim('/') != typeof(TClass).Name) { throw new InternalOpenBookingException(new InternalLibraryConfigurationError(), $"'{GetType()}' does not have this expected OpenActive model type as generic parameter: '{opportunityTypeConfiguration.SameAs.AbsolutePath.Trim('/')}'"); } base.SetConfiguration((BookablePairIdTemplate <TComponents>)bookablePairIdTemplate, sellerTemplate); RpdePageSize = rpdePageSize; // Allow these to be overridden by implementations if customisation is required FeedUrl = FeedUrl ?? new Uri(openDataFeedBaseUrl + opportunityTypeConfiguration.DefaultFeedPath); FeedPath = FeedPath ?? opportunityTypeConfiguration.DefaultFeedPath; }
internal void SetConfiguration(int rpdePageSize, OrderIdTemplate orderIdTemplate, SingleIdTemplate <SellerIdComponents> sellerIdTemplate, Uri ordersFeedBaseUrl, OrderType feedType) { base.SetConfiguration(orderIdTemplate, sellerIdTemplate); this.RPDEPageSize = rpdePageSize; // Allow these to be overridden by implementations if customisation is required this.FeedUrl = new Uri(ordersFeedBaseUrl.ToString() + "/" + (feedType == OrderType.Order ? "orders" : "order-proposals") + "-rpde"); }
internal void SetConfiguration(int rpdePageSize, OrderIdTemplate orderIdTemplate, SingleIdTemplate <SellerIdComponents> sellerIdTemplate, Uri offersFeedUrl) { this.OrderIdTemplate = orderIdTemplate; this.SellerIdTemplate = sellerIdTemplate; this.RPDEPageSize = rpdePageSize; // Allow these to be overridden by implementations if customisation is required this.FeedUrl = offersFeedUrl; }
protected internal void SetConfiguration(OrderIdTemplate orderIdTemplate, SingleIdTemplate <SellerIdComponents> sellerIdTemplate) { this.OrderIdTemplate = orderIdTemplate; this.SellerIdTemplate = sellerIdTemplate; }