public static void IsMeta_Value(UriSegment elementAt) { var segment = elementAt.As <UriSegment.Meta>(); segment.Should().NotBeNull(); segment.item.IsValue.Should().BeTrue(); }
public static void IsEntityType(UriSegment seg, string Key, string Name, ResourceType resource) { var segment = seg.As <UriSegment.EntityType>(); segment.Should().NotBeNull(); segment.item.Key.Should().Be(Key); segment.item.Name.Should().Be(Name); segment.item.ResourceType.Should().Be(resource); }
private static IEnumerable<Link> GetLinks(Order order, string baseAddress) { var baseUri = new UriSegment(baseAddress); var linker = new ResourceLinker(baseAddress); var get = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.SlashOrderId, new {orderId = order.Id}), baseUri + "docs/order-get.htm", MediaTypes.Default); var update = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.SlashOrderId, new {orderId = order.Id}), baseUri + "docs/order-update.htm", MediaTypes.Default); var cancel = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.SlashOrderId, new {orderId = order.Id}), baseUri + "docs/order-cancel.htm", MediaTypes.Default); var pay = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.PaymentPath, new {orderId = order.Id}), baseUri + "docs/order-pay.htm", MediaTypes.Default); var receipt = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.ReceiptPath, new {orderId = order.Id}), baseUri + "docs/receipt-coffee.htm", MediaTypes.Default); switch (order.Status) { case OrderStatus.Unpaid: yield return get; yield return update; yield return cancel; yield return pay; break; case OrderStatus.Paid: case OrderStatus.Delivered: yield return get; break; case OrderStatus.Ready: yield return receipt; break; case OrderStatus.Canceled: yield break; default: yield break; } }
public static void IsPropertyCollection(UriSegment elementAt, string Name, ResourceType resource) { var segment = elementAt.As <UriSegment.PropertyAccessCollection>(); segment.Should().NotBeNull(); segment.item.Property.Name.Should().Be(Name); segment.item.ResourceType.Should().NotBeNull(); segment.item.ResourceType.Should().Be(resource); segment.item.Key.Should().BeNull(); }
public static void IsPropertySingle(UriSegment elementAt, string name, string key = null) { var segment = elementAt.As <UriSegment.PropertyAccessSingle>(); segment.Should().NotBeNull(); segment.item.Property.Name.Should().Be(name); segment.item.ResourceType.Should().NotBeNull(); if (key == null) { segment.item.Key.Should().BeNull(); } else { segment.item.Key.Should().NotBeNull(); segment.item.Key.Should().Be(key); } }
private void ResolveUriSegments() { bool isFirstQuery = true; for (int i = 0; i < _segments.Count; i++) { UriSegment uriSegment = _segments[i]; switch (uriSegment.Type) { case UriSegmentType.UriSegment: _result.Append(uriSegment.SegmentValue); break; case UriSegmentType.Replacement: if (_uriPathParameters.TryGetValue(uriSegment.SegmentValue, out object replacement)) { _result.Append(Encode(replacement.ToString())); } break; case UriSegmentType.PathSegment: if (_uriPathParameters.TryGetValue(uriSegment.SegmentValue, out object segment)) { _result.Append($"/{Encode(segment.ToString())}"); } break; case UriSegmentType.Query: if (_uriPathParameters.TryGetValue(uriSegment.SegmentValue, out object query)) { _result.Append(isFirstQuery ? '?' : '&'); isFirstQuery = false; _result.Append($"{uriSegment.SegmentValue}={ResolveValue(query)}"); } break; default: throw new InvalidOperationException("invalid uri segment type"); } } }
private static IEnumerable <Link> GetLinks(Order order, string baseAddress) { var baseUri = new UriSegment(baseAddress); var linker = new ResourceLinker(baseAddress); var get = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.SlashOrderId, new { orderId = order.Id }), baseUri + "docs/order-get.htm", MediaTypes.Default); var update = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.SlashOrderId, new { orderId = order.Id }), baseUri + "docs/order-update.htm", MediaTypes.Default); var cancel = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.SlashOrderId, new { orderId = order.Id }), baseUri + "docs/order-cancel.htm", MediaTypes.Default); var pay = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.PaymentPath, new { orderId = order.Id }), baseUri + "docs/order-pay.htm", MediaTypes.Default); var receipt = new Link(linker.BuildUriString(OrderResourceHandler.Path, OrderResourceHandler.ReceiptPath, new { orderId = order.Id }), baseUri + "docs/receipt-coffee.htm", MediaTypes.Default); switch (order.Status) { case OrderStatus.Unpaid: yield return(get); yield return(update); yield return(cancel); yield return(pay); break; case OrderStatus.Paid: case OrderStatus.Delivered: yield return(get); break; case OrderStatus.Ready: yield return(receipt); break; case OrderStatus.Canceled: yield break; default: yield break; } }
public static void IsPropertySingle(UriSegment elementAt, string name, string key = null) { var segment = elementAt.As<UriSegment.PropertyAccessSingle>(); segment.Should().NotBeNull(); segment.item.Property.Name.Should().Be(name); segment.item.ResourceType.Should().NotBeNull(); if (key == null ) segment.item.Key.Should().BeNull(); else { segment.item.Key.Should().NotBeNull(); segment.item.Key.Should().Be(key); } }
public static void IsPropertyCollection(UriSegment elementAt, string Name, ResourceType resource) { var segment = elementAt.As<UriSegment.PropertyAccessCollection>(); segment.Should().NotBeNull(); segment.item.Property.Name.Should().Be(Name); segment.item.ResourceType.Should().NotBeNull(); segment.item.ResourceType.Should().Be(resource); segment.item.Key.Should().BeNull(); }
public static void IsMeta_Value(UriSegment elementAt) { var segment = elementAt.As<UriSegment.Meta>(); segment.Should().NotBeNull(); segment.item.IsValue.Should().BeTrue(); }
public static void IsEntityType(UriSegment seg, string Key, string Name, ResourceType resource) { var segment = seg.As<UriSegment.EntityType>(); segment.Should().NotBeNull(); segment.item.Key.Should().Be(Key); segment.item.Name.Should().Be(Name); segment.item.ResourceType.Should().Be(resource); }
public static void FirstSegmentIsServiceDirectory(UriSegment[] segments) { ExpectingSegmentsCount(segments, 1); segments.ElementAt(0).IsServiceDirectory.Should().BeTrue(); }
public static void FirstSegmentIsMetadata(UriSegment[] segments) { ExpectingSegmentsCount(segments, 1); segments.ElementAt(0).IsMeta.Should().BeTrue(); segments.ElementAt(0).As<UriSegment.Meta>().item.IsMetadata.Should().BeTrue(); }
public static void ExpectingSegmentsCount(UriSegment[] segments, int count) { segments.Should().NotBeNull(); segments.Should().HaveCount(count); }