Skip to content

Instantly share code, notes, and snippets.

@ODataTeam
ODataTeam / EFSample.cs
Last active August 29, 2015 14:05
CurrentDataSource
[WebGet]
public int GetOrdersCount()
{
return this.CurrentDataSource.Orders.Count();
}
@ODataTeam
ODataTeam / EFSample.cs
Last active August 29, 2015 14:05
EFSample
public class Post
{
public int PostId { get; set; }
public string PostName { get; set; }
public PostContent Content { get; set; }
}
@ODataTeam
ODataTeam / EFSample.cs
Last active August 29, 2015 14:05
EFSample
[ComplexType]
public class PostContent
{
public string Title { get; set; }
public string SubTitle { get; set; }
public string Body { get; set; }
}
@ODataTeam
ODataTeam / EFSample.cs
Last active August 29, 2015 14:05
EFSample
public partial class ShipInfo
{
public string ShipName { get; set; }
public string ShipAddress { get; set; }
public string ShipCity { get; set; }
public string ShipRegion { get; set; }
public string ShipPostalCode { get; set; }
public string ShipCountry { get; set; }
}
@ODataTeam
ODataTeam / SearchQueryOptionNode
Created July 5, 2014 14:52
Search Query option node demo for $search=a AND b
SearchQueryOption
Expression = BinaryOperatorNode
OperationKind = BinaryOperatorKind.And
Left = SearchTermNode
Text = a
Right = SearchTermNode
Text = b
@ODataTeam
ODataTeam / ODataQueryOptionParserParsingQueryOptions.cs
Last active March 3, 2018 11:57
Parsing query options using query option parser
Dictionary<string, string> options = new Dictionary<string, string>()
{
{"$select" , "ID" },
{"$expand" , "ProductDetail" },
{"$filter" , "Categories/any(d:d/ID gt 1)" },
{"$orderby" , "ID desc" },
{"$top" , "1" },
{"$count" , "true" },
{"$search" , "tom" },
};
@ODataTeam
ODataTeam / ODataUriParserParsingQueryOptions.cs
Last active August 29, 2015 14:03
Parsing query options
Uri fullUri = new Uri("Products?$select=ID&$expand=ProductDetail" +
"&$filter=Categories/any(d:d/ID%20gt%201)&$orderby=ID%20desc" +
"&$top=1&$count=true&$search=tom", UriKind.Relative);
ODataUriParser parser = new ODataUriParser(model, serviceRoot, fullUri);
SelectExpandClause expand =
parser.ParseSelectAndExpand(); //parse $select, $expand
FilterClause filter = parser.ParseFilter(); // parse $filter
OrderByClause orderby = parser.ParseOrderBy(); // parse $orderby
SearchClause search = parser.ParseSearch(); // parse $search
long? top = parser.ParseTop(); // parse $top
Uri fullUri = new Uri("http://services.odata.org/V4/OData/OData.svc/Products(1)");
ODataUriParser parser = new ODataUriParser(model, serviceRoot, fullUri);
ODataPath path = parser.ParsePath();
@ODataTeam
ODataTeam / CreatingODataUriParser.cs
Last active August 29, 2015 14:03
Create an ODataUriParser instance
Uri serviceRoot = new Uri("http://services.odata.org/V4/OData/OData.svc");
IEdmModel model = EdmxReader.Parse(XmlReader.Create(serviceRoot + "/$metadata"));
Uri fullUri = new Uri("http://services.odata.org/V4/OData/OData.svc/Products");
ODataUriParser parser = new ODataUriParser(model, serviceRoot, fullUri);
public static class ExtensionMethods
{
public static IEnumerable<IEdmOperation> FindBoundOperations(this IEdmModel model, IEdmType bindingType);
public static IEnumerable<IEdmOperation> FindBoundOperations(this IEdmModel model, string qualifiedName, IEdmType bindingType);
public static IEdmEntityContainer FindEntityContainer(this IEdmModel model, string qualifiedName);
public static IEnumerable<IEdmOperation> FindOperations(this IEdmModel model, string qualifiedName);
public static IEdmSchemaType FindType(this IEdmModel model, string qualifiedName);
public static IEdmValueTerm FindValueTerm(this IEdmModel model, string qualifiedName);