static void AddODataSupport( ServerHost server ) { var objectModelBuilder = new ODataConventionModelBuilder(); var bornInfo = objectModelBuilder.ComplexType<BornInfoView>(); bornInfo.Property( bi => bi.When ); bornInfo.Property( bi => bi.Where ); var person = objectModelBuilder.EntitySet<PersonView>( "PeopleView" ) .EntityType.HasKey( p => p.Id ); person.Property( p => p.Name ); person.Property( p => p.Version ); person.ComplexProperty( p => p.BornInfo ); var address = objectModelBuilder.EntitySet<AddressView>( "AddressesView" ) .EntityType.HasKey( a => a.AddressId ); address.Property( a => a.Street ); address.Property( a => a.PersonId ); server.AddHttpConfigurationCustomization( cfg => { cfg.MapODataServiceRoute( routeName: "ODataRoute", routePrefix: null, model: objectModelBuilder.GetEdmModel() ); } ); }
protected override void OnStop() { if( this._server == null ) { return; } this._server.Stop(); this._server = null; }
protected override void OnStart( string[] args ) { var baseAddress = ConfigurationManager.AppSettings[ "owin/baseAddress" ]; var bootstrapper = new WindsorBootstrapper( AppDomain.CurrentDomain.BaseDirectory ); var windsor = bootstrapper.Boot(); this._server = new ServerHost( baseAddress, bootstrapper.ProbeDirectory, windsor ); AddODataSupport( this._server ); AddSignalRSupport( this._server ); this._server.Start(); }
static void AddSignalRSupport( ServerHost server ) { server.AddAppBuilderCustomization( appBuilder => { appBuilder.UseCors( CorsOptions.AllowAll ); appBuilder.MapSignalR(); } ); }