public void EqualityIsCorrect()
        {
            MetadataSegment segment1 = MetadataSegment.Instance;
            MetadataSegment segment2 = MetadataSegment.Instance;

            Assert.True(segment1.Equals(segment2));
        }
Exemple #2
0
        /// <summary>
        /// Handle a MetadataSegment
        /// </summary>
        /// <param name="segment">the segment to handle</param>
        public override void Handle(MetadataSegment segment)
        {
            Contract.Assert(segment != null);
            _navigationSource = null;

            _pathUriLiteral.Add(ODataSegmentKinds.Metadata);
        }
Exemple #3
0
 public async Task VisitAsync(ODataPath path)
 {
     NotFound       = false;
     BadRequest     = false;
     Result         = null;
     ResultType     = null;
     PropertySetter = null;
     Index          = 0;
     foreach (var segment in path)
     {
         await(segment switch
         {
             TypeSegment typeSegment => VisitAsync(typeSegment),
             NavigationPropertySegment navigationPropertySegment => VisitAsync(navigationPropertySegment),
             EntitySetSegment entitySetSegment => VisitAsync(entitySetSegment),
             SingletonSegment singletonSegment => VisitAsync(singletonSegment),
             KeySegment keySegment => VisitAsync(keySegment),
             PropertySegment propertySegment => VisitAsync(propertySegment),
             AnnotationSegment annotationSegment => VisitAsync(annotationSegment),
             OperationImportSegment operationImportSegment => VisitAsync(operationImportSegment),
             OperationSegment operationSegment => VisitAsync(operationSegment),
             DynamicPathSegment dynamicPathSegment => VisitAsync(dynamicPathSegment),
             CountSegment countSegment => VisitAsync(countSegment),
             FilterSegment filterSegment => VisitAsync(filterSegment),
             ReferenceSegment referenceSegment => VisitAsync(referenceSegment),
             EachSegment eachSegment => VisitAsync(eachSegment),
             NavigationPropertyLinkSegment navigationPropertyLinkSegment => VisitAsync(navigationPropertyLinkSegment),
             ValueSegment valueSegment => VisitAsync(valueSegment),
             BatchSegment batchSegment => VisitAsync(batchSegment),
             BatchReferenceSegment batchReferenceSegment => VisitAsync(batchReferenceSegment),
             MetadataSegment metadataSegment => VisitAsync(metadataSegment),
             PathTemplateSegment pathTemplateSegment => VisitAsync(pathTemplateSegment),
             _ => throw new NotSupportedException()
         });
        public void EqualityIsCorrect()
        {
            MetadataSegment segment1 = MetadataSegment.Instance;
            MetadataSegment segment2 = MetadataSegment.Instance;

            segment1.Equals(segment2).Should().BeTrue();
        }
        public void InequalityIsCorrect()
        {
            MetadataSegment segment1 = MetadataSegment.Instance;
            CountSegment    segment2 = CountSegment.Instance;

            segment1.Equals(segment2).Should().BeFalse();
        }
        public void InequalityIsCorrect()
        {
            MetadataSegment segment1 = MetadataSegment.Instance;
            CountSegment    segment2 = CountSegment.Instance;

            Assert.False(segment1.Equals(segment2));
        }
Exemple #7
0
        /// <summary>
        /// Handle a MetadataSegment
        /// </summary>
        /// <param name="segment">the segment to handle</param>
        public override void Handle(MetadataSegment segment)
        {
            _navigationSource = null;

            _pathTemplate.Add(ODataSegmentKinds.Metadata); // $metadata
            _pathUriLiteral.Add(ODataSegmentKinds.Metadata);
        }
Exemple #8
0
        public static string ToUriLiteral(this MetadataSegment segment)
        {
            if (segment == null)
            {
                throw Error.ArgumentNull("segment");
            }

            return(ODataSegmentKinds.Metadata);
        }
Exemple #9
0
        public void Translate_MetadataSegment_To_MetadataPathSegment_Works()
        {
            // Arrange
            MetadataSegment segment = MetadataSegment.Instance;

            // Act
            IEnumerable <ODataPathSegment> segments = _translator.Translate(segment);

            // Assert
            ODataPathSegment pathSegment = Assert.Single(segments);

            Assert.IsType <MetadataPathSegment>(pathSegment);
        }
Exemple #10
0
        public override void Handle(MetadataSegment segment)
        {
            this.ThrowIfResolved();

            this.NavigationSource = null;
            this.Property         = null;
            this.Type             = null;
            this.ElementType      = this.GetElementType(this.Type);

            this.childSegments.Add(segment);

            this.canonicalSegments.Add(segment);
        }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>UserDefinedValue</returns>
 /// <exception cref="System.ArgumentNullException">Throws if the input segment is null.</exception>
 public override bool Translate(MetadataSegment segment)
 {
     ExceptionUtils.CheckArgumentNotNull(segment, "segment");
     return(false);
 }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Defined by the implementer.</returns>
 public override string Translate(MetadataSegment segment)
 {
     return(string.Empty);
 }
        public override void Handle(MetadataSegment segment)
        {
            this.ThrowIfResolved();

            this.NavigationSource = null;
            this.Property = null;
            this.Type = null;
            this.ElementType = this.GetElementType(this.Type);

            this.childSegments.Add(segment);

            this.canonicalSegments.Add(segment);
        }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Defined by the implementer.</returns>
 public override string Translate(MetadataSegment segment)
 {
     Debug.Assert(segment != null, "segment != null");
     return("/" + segment.Identifier);
 }
 /// <summary>
 /// Handle a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Handle</param>
 public virtual void Handle(MetadataSegment segment)
 {
     throw new NotImplementedException();
 }
Exemple #16
0
 public BeatmapDetails()
 {
     Children = new Drawable[]
     {
         new Box
         {
             RelativeSizeAxes = Axes.Both,
             Colour           = Color4.Black,
             Alpha            = 0.5f,
         },
         new FillFlowContainer <MetadataSegment>()
         {
             Anchor           = Anchor.TopRight,
             Origin           = Anchor.TopRight,
             RelativeSizeAxes = Axes.X,
             AutoSizeAxes     = Axes.Y,
             Width            = 0.4f,
             Direction        = FillDirection.Vertical,
             LayoutDuration   = 200,
             LayoutEasing     = EasingTypes.OutQuint,
             Children         = new[]
             {
                 description = new MetadataSegment("Description"),
                 source      = new MetadataSegment("Source"),
                 tags        = new MetadataSegment("Tags")
             },
         },
         new FillFlowContainer
         {
             RelativeSizeAxes = Axes.X,
             AutoSizeAxes     = Axes.Y,
             Width            = 0.6f,
             Direction        = FillDirection.Vertical,
             Spacing          = new Vector2(0, 15),
             Padding          = new MarginPadding(10)
             {
                 Top = 0
             },
             Children = new Drawable[]
             {
                 new Container
                 {
                     RelativeSizeAxes = Axes.X,
                     AutoSizeAxes     = Axes.Y,
                     Children         = new Drawable[]
                     {
                         new Box
                         {
                             RelativeSizeAxes = Axes.Both,
                             Colour           = Color4.Black,
                             Alpha            = 0.5f,
                         },
                         new FillFlowContainer
                         {
                             RelativeSizeAxes = Axes.X,
                             AutoSizeAxes     = Axes.Y,
                             Direction        = FillDirection.Vertical,
                             Spacing          = new Vector2(0, 5),
                             Padding          = new MarginPadding(10),
                             Children         = new[]
                             {
                                 circleSize        = new DifficultyRow("Circle Size", 7),
                                 drainRate         = new DifficultyRow("HP Drain"),
                                 overallDifficulty = new DifficultyRow("Accuracy"),
                                 approachRate      = new DifficultyRow("Approach Rate"),
                                 stars             = new DifficultyRow("Star Difficulty"),
                             },
                         },
                     },
                 },
                 ratingsContainer = new Container
                 {
                     RelativeSizeAxes = Axes.X,
                     AutoSizeAxes     = Axes.Y,
                     Alpha            = 0,
                     AlwaysPresent    = true,
                     Children         = new Drawable[]
                     {
                         new Box
                         {
                             RelativeSizeAxes = Axes.Both,
                             Colour           = Color4.Black,
                             Alpha            = 0.5f,
                         },
                         new FillFlowContainer
                         {
                             RelativeSizeAxes = Axes.X,
                             AutoSizeAxes     = Axes.Y,
                             Direction        = FillDirection.Vertical,
                             Padding          = new MarginPadding
                             {
                                 Top   = 25,
                                 Left  = 15,
                                 Right = 15,
                             },
                             Children = new Drawable[]
                             {
                                 new OsuSpriteText
                                 {
                                     Text   = "User Rating",
                                     Font   = @"Exo2.0-Medium",
                                     Anchor = Anchor.TopCentre,
                                     Origin = Anchor.TopCentre,
                                 },
                                 ratingsBar = new Bar
                                 {
                                     RelativeSizeAxes = Axes.X,
                                     Height           = 5,
                                 },
                                 new Container
                                 {
                                     RelativeSizeAxes = Axes.X,
                                     AutoSizeAxes     = Axes.Y,
                                     Children         = new[]
                                     {
                                         negativeRatings = new OsuSpriteText
                                         {
                                             Font = @"Exo2.0-Regular",
                                             Text = "0",
                                         },
                                         positiveRatings = new OsuSpriteText
                                         {
                                             Font   = @"Exo2.0-Regular",
                                             Text   = "0",
                                             Anchor = Anchor.TopRight,
                                             Origin = Anchor.TopRight,
                                         },
                                     },
                                 },
                                 new OsuSpriteText
                                 {
                                     Text     = "Rating Spread",
                                     TextSize = 14,
                                     Font     = @"Exo2.0-Regular",
                                     Anchor   = Anchor.TopCentre,
                                     Origin   = Anchor.TopCentre,
                                 },
                                 ratingsGraph = new BarGraph
                                 {
                                     RelativeSizeAxes = Axes.X,
                                     Height           = 50,
                                 },
                             },
                         },
                     },
                 },
                 retryFailContainer = new FillFlowContainer
                 {
                     RelativeSizeAxes = Axes.X,
                     AutoSizeAxes     = Axes.Y,
                     Alpha            = 0,
                     Children         = new Drawable[]
                     {
                         new OsuSpriteText
                         {
                             Text = "Points of Failure",
                             Font = @"Exo2.0-Regular",
                         },
                         new Container <BarGraph>
                         {
                             RelativeSizeAxes = Axes.X,
                             Size             = new Vector2(1 / 0.6f, 50),
                             Children         = new[]
                             {
                                 retryGraph = new BarGraph
                                 {
                                     RelativeSizeAxes = Axes.Both,
                                 },
                                 failGraph = new BarGraph
                                 {
                                     RelativeSizeAxes = Axes.Both,
                                 },
                             },
                         },
                     }
                 },
             },
         },
         loading = new LoadingAnimation()
     };
 }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Defined by the implementer.</returns>
 public override string Translate(MetadataSegment segment)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Handle validating a MetadataSegment
 /// </summary>
 /// <param name="segment">The metadata segment to valdiate.</param>
 public override void Handle(MetadataSegment segment)
 {
     ValidateItem(segment);
 }
Exemple #19
0
        private static IEdmNavigationSource GetTargetNavigationSource(IEdmNavigationSource previous, ODataPathSegment segment)
        {
            if (segment == null)
            {
                return(null);
            }

            EntitySetSegment entitySet = segment as EntitySetSegment;

            if (entitySet != null)
            {
                return(entitySet.EntitySet);
            }

            SingletonSegment singleton = segment as SingletonSegment;

            if (singleton != null)
            {
                return(singleton.Singleton);
            }

            TypeSegment cast = segment as TypeSegment;

            if (cast != null)
            {
                return(cast.NavigationSource);
            }

            KeySegment key = segment as KeySegment;

            if (key != null)
            {
                return(key.NavigationSource);
            }

            OperationSegment opertion = segment as OperationSegment;

            if (opertion != null)
            {
                return(opertion.EntitySet);
            }

            OperationImportSegment import = segment as OperationImportSegment;

            if (import != null)
            {
                return(import.EntitySet);
            }

            PropertySegment property = segment as PropertySegment;

            if (property != null)
            {
                return(previous); // for property, return the previous, or return null????
            }

            MetadataSegment metadata = segment as MetadataSegment;

            if (metadata != null)
            {
                return(null);
            }

            CountSegment count = segment as CountSegment;

            if (count != null)
            {
                return(null);
            }

            OperationImportSegment operationImport = segment as OperationImportSegment;

            if (operationImport != null)
            {
                return(null);
            }

            throw new Exception("Not supported segment in endpoint routing convention!");
        }
 /// <summary>
 /// Handle a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Handle</param>
 public virtual void Handle(MetadataSegment segment)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Defined by the implementer.</returns>
 public virtual T Translate(MetadataSegment segment)
 {
     throw new NotImplementedException();
 }
Exemple #22
0
 /// <summary>
 /// Translate MetadataSegment to linq expression.
 /// </summary>
 /// <param name="segment">The MetadataSegment</param>
 /// <returns>The linq expression</returns>
 public override Expression Translate(MetadataSegment segment)
 {
     throw new InvalidOperationException("Unexpected $metadata in Uri.");
 }
Exemple #23
0
 public override string Translate(MetadataSegment segment)
 {
     return("($metadata)");
 }
 /// <summary>
 /// Handle a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Handle</param>
 public override void Handle(MetadataSegment segment)
 {
     CommonHandler(segment);
 }
Exemple #25
0
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 public override void Handle(MetadataSegment segment)
 {
     _segmentTemplates.Add(MetadataSegmentTemplate.Instance);
 }
Exemple #26
0
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Translated WebApi path segment.</returns>
 public override IEnumerable <ODataPathSegment> Translate(MetadataSegment segment)
 {
     yield return(new MetadataPathSegment());
 }
 /// <summary>
 /// Handle a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to handle</param>
 public override void Handle(MetadataSegment segment)
 {
 }
Exemple #28
0
 /// <summary>
 /// Translate MetadataSegment to linq expression.
 /// </summary>
 /// <param name="segment">The MetadataSegment</param>
 /// <returns>The linq expression</returns>
 public override Expression Translate(MetadataSegment segment)
 {
     throw new NotImplementedException("MetadataSegment translation is not supported");
 }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Translated the path segment template.</returns>
 public override ODataSegmentTemplate Translate(MetadataSegment segment)
 {
     return(MetadataSegmentTemplate.Instance);
 }
Exemple #30
0
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Translated odata path segment.</returns>
 public override ODataPathSegment Translate(MetadataSegment segment)
 {
     return(segment);
 }
 /// <summary>
 /// Translate a MetadataSegment
 /// </summary>
 /// <param name="segment">the segment to Translate</param>
 /// <returns>Translated the path segment template.</returns>
 public override ODataPathSegmentTemplate Translate(MetadataSegment segment)
 {
     return(new ODataPathSegmentTemplate <MetadataSegment>());
 }