Esempio n. 1
0
        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);
        }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
        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);
        }