public static IApplicationBuilder UseSearchApi(this IApplicationBuilder app, ODataModelBuilder odataBuilder) { odataBuilder.AddNamespace("Search", builder => { builder.AddEnumType <SearchItemType>(); var searchItem = builder.AddEntitySet <SearchItem>(); searchItem.EntityType.HasKey(e => e.Key); }); return(app); }
public static IApplicationBuilder UseFileApi(this IApplicationBuilder app, ODataModelBuilder odataBuilder) { odataBuilder.AddNamespace("File", builder => { builder.AddEnumType <UploadStatus>(); var uploadHistory = builder.AddEntitySet <UploadHistory>(); uploadHistory.EntityType.HasKey(e => e.Key); var uploadFile = builder.Action("UploadFile"); uploadFile.Parameter <Stream>("file"); uploadFile.ReturnsFromEntitySet <UploadHistory>(nameof(UploadHistory)); }); return(app); }
public static IApplicationBuilder UseMovieApi(this IApplicationBuilder app, ODataModelBuilder odataBuilder) { odataBuilder.AddNamespace("Movie", builder => { var actor = builder.AddEntityType <Actor>(); actor.HasKey(e => e.Key); var director = builder.AddEntityType <Director>(); director.HasKey(e => e.Key); var distributor = builder.AddEntityType <Distributor>(); distributor.HasKey(e => e.Key); var productionCompany = builder.AddEntityType <ProductionCompany>(); productionCompany.HasKey(e => e.Key); var writer = builder.AddEntityType <Writer>(); writer.HasKey(e => e.Key); var filmingLocation = builder.AddEntitySet <FilmingLocation>(); filmingLocation.EntityType.HasKey(e => e.Key); var movie = builder.AddEntitySet <Movie>(); movie.EntityType.HasKey(e => e.Key); movie.EntityType.ContainsMany(e => e.Actors).AutoExpand = true; movie.EntityType.ContainsMany(e => e.Directors).AutoExpand = true; movie.EntityType.ContainsMany(e => e.Distributors).AutoExpand = true; movie.EntityType.ContainsMany(e => e.FilmingLocations).AutoExpand = true; movie.EntityType.ContainsMany(e => e.ProductionCompanies).AutoExpand = true; movie.EntityType.ContainsMany(e => e.Writers).AutoExpand = true; var filmingLocationSearchByFreeText = filmingLocation.EntityType.Collection.AddFunction("SearchByFreeText"); filmingLocationSearchByFreeText.Parameter <string>("text"); filmingLocationSearchByFreeText.ReturnsCollectionFromEntitySet <FilmingLocation>(nameof(FilmingLocation)); var filmingLocationSearchBySearchItem = filmingLocation.EntityType.Collection.AddFunction("SearchBySearchItem"); filmingLocationSearchBySearchItem.Parameter <Guid>("searchItemKey"); filmingLocationSearchBySearchItem.ReturnsCollectionFromEntitySet <FilmingLocation>(nameof(FilmingLocation)); }); return(app); }