/// <summary> /// Handle a CountSegment /// </summary> /// <param name="segment">the segment to handle</param> public override void Handle(CountSegment segment) { _navigationSource = null; _pathTemplate.Add(ODataSegmentKinds.Count); // $count _pathUriLiteral.Add(ODataSegmentKinds.Count); }
public void InequalityIsCorrect() { BatchSegment segment1 = BatchSegment.Instance; CountSegment segment2 = CountSegment.Instance; segment1.Equals(segment2).Should().BeFalse(); }
public void InequalityIsCorrect() { NavigationPropertySegment navigationPropertySegment1 = new NavigationPropertySegment(HardCodedTestModel.GetPersonMyDogNavProp(), null); NavigationPropertySegment navigationPropertySegment2 = new NavigationPropertySegment(HardCodedTestModel.GetDogMyPeopleNavProp(), null); CountSegment segment = CountSegment.Instance; Assert.False(navigationPropertySegment1.Equals(navigationPropertySegment2)); Assert.False(navigationPropertySegment1.Equals(segment)); }
public static string ToUriLiteral(this CountSegment segment) { if (segment == null) { throw Error.ArgumentNull("segment"); } return(ODataSegmentKinds.Count); }
public void Translate_CountSegment_To_CountPathSegment_Works() { // Arrange CountSegment segment = CountSegment.Instance; // Act IEnumerable <ODataPathSegment> segments = _translator.Translate(segment); // Assert ODataPathSegment pathSegment = Assert.Single(segments); Assert.IsType <CountPathSegment>(pathSegment); }
public void Translate_ReturnsODataActionImportSegment() { // Arrange ODataTemplateTranslateContext context = new ODataTemplateTranslateContext(); // Act ODataPathSegment actual = CountSegmentTemplate.Instance.Translate(context); // Assert Assert.NotNull(actual); CountSegment countSegment = Assert.IsType <CountSegment>(actual); Assert.Same(CountSegment.Instance, countSegment); }
public void TryTranslateCountSegmentTemplate_ReturnsODataCountSegment() { // Arrange ODataTemplateTranslateContext context = new ODataTemplateTranslateContext(); // Act bool ok = CountSegmentTemplate.Instance.TryTranslate(context); // Assert Assert.True(ok); ODataPathSegment actual = Assert.Single(context.Segments); CountSegment countSegment = Assert.IsType <CountSegment>(actual); Assert.Same(CountSegment.Instance, countSegment); }
public override void Handle(CountSegment segment) { this.ThrowIfResolved(); this.NavigationSource = null; this.Property = null; this.Type = segment.EdmType; this.ElementType = this.GetElementType(this.Type); this.IsRawValue = true; this.childSegments.Add(segment); this.canonicalSegments.Add(segment); }
/// <summary> /// Translate CountSegment to linq expression. /// </summary> /// <param name="segment">The CountSegment</param> /// <returns>The linq expression</returns> public override Expression Translate(CountSegment segment) { if (!(this.LastProcessedSegment is EntitySetSegment || this.LastProcessedSegment is NavigationPropertySegment)) { throw new InvalidOperationException("Unsupported URI segment before CountSegment"); } Type instanceType = EdmClrTypeUtils.GetInstanceType((this.LastProcessedSegment.EdmType as EdmCollectionType).ElementType); // A set return now is a IEnumable, try to convert to IQueryable. this.ResultExpression = Expression.Call(typeof(Queryable), AsQueryableMethod, new Type[] { instanceType }, this.ResultExpression); this.ResultExpression = Expression.Call(typeof(Queryable), CountMethodName, new Type[] { instanceType }, this.ResultExpression); this.LastProcessedSegment = segment; return(this.ResultExpression); }
public void InequalityIsCorrect() { KeySegment segment1 = new KeySegment(new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("key", "value1") }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet()); KeySegment segment2 = new KeySegment(new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("key", "value1") }, HardCodedTestModel.GetDogType(), HardCodedTestModel.GetDogsSet()); KeySegment segment3 = new KeySegment(new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("key", "value2") }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet()); CountSegment segment4 = CountSegment.Instance; segment1.Equals(segment2).Should().BeFalse(); segment1.Equals(segment3).Should().BeFalse(); segment1.Equals(segment4).Should().BeFalse(); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Defined by the implementer.</returns> public override string Translate(CountSegment segment) { throw new NotImplementedException(); }
/// <summary> /// Handle a CountSegment /// </summary> /// <param name="segment">the segment to Handle</param> public virtual void Handle(CountSegment segment) { throw new NotImplementedException(); }
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!"); }
public override bool Translate(CountSegment segment) { return(GetNextSegment() is CountSegment); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Translated WebApi path segment.</returns> public override IEnumerable <ODataPathSegment> Translate(CountSegment segment) { yield return(new CountPathSegment()); }
/// <summary> /// Translate a CountSegment /// </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(CountSegment segment) { ExceptionUtils.CheckArgumentNotNull(segment, "segment"); return(false); }
public override string Translate(CountSegment segment) { return("($count)"); }
/// <summary> /// Handle a CountSegment /// </summary> /// <param name="segment">the segment to Handle</param> public override void Handle(CountSegment segment) { CommonHandler(segment); }
/// <summary> /// Translate a CountSegment. /// </summary> /// <param name="segment">the segment to Translate</param> public override void Handle(CountSegment segment) { _segmentTemplates.Add(CountSegmentTemplate.Instance); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Defined by the implementer.</returns> public override string Translate(CountSegment segment) { return(string.Empty); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Defined by the implementer.</returns> public override string Translate(CountSegment segment) { Debug.Assert(segment != null, "segment != null"); return("/" + segment.Identifier); }
/// <summary> /// Handle a CountSegment /// </summary> /// <param name="segment">the segment to handle</param> public override void Handle(CountSegment segment) { }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Defined by the implementer.</returns> public virtual T Translate(CountSegment segment) { throw new NotImplementedException(); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Translated the path segment template.</returns> public override ODataSegmentTemplate Translate(CountSegment segment) { return(CountSegmentTemplate.Instance); }
/// <summary> /// Translate CountSegment to linq expression. /// </summary> /// <param name="segment">The CountSegment</param> /// <returns>The linq expression</returns> public override Expression Translate(CountSegment segment) { throw new NotImplementedException("CountSegment translation is not supported"); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Translated the path segment template.</returns> public override ODataPathSegmentTemplate Translate(CountSegment segment) { return(new ODataPathSegmentTemplate <CountSegment>()); }
/// <summary> /// Translate a CountSegment /// </summary> /// <param name="segment">the segment to Translate</param> /// <returns>Translated odata path segment.</returns> public override ODataPathSegment Translate(CountSegment segment) { return(segment); }
/// <summary> /// Handle validating a CountSegment /// </summary> /// <param name="segment">The count segment to valdiate.</param> public override void Handle(CountSegment segment) { ValidateItem(segment); }