/* * public Startup(IConfiguration configuration) * { * Configuration = configuration; * } * * public IConfiguration Configuration { get; } * * // This method gets called by the runtime. Use this method to add services to the container. * public void ConfigureServices(IServiceCollection services) * { * services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); * services.AddSwaggerGen(c => * { * c.SwaggerDoc("v1", new Info { Title = "Player API", Version = "v1" }); * }); * } */ public void ConfigureContainer(ServiceRegistry services) { // Supports ASP.Net Core DI abstractions services.AddMvc(options => { //options.OutputFormatters.Add(new HalOutputFormatter(new JsonSerializerSettings(), System.Buffers.ArrayPool<char>.Shared)); }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddLogging(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Player API", Version = "v1" }); }); // Also exposes Lamar specific registrations // and functionality services.Scan(s => { s.TheCallingAssembly(); s.AssembliesFromApplicationBaseDirectory(x => x.FullName.Contains("HowToHATEOAS")); s.LookForRegistries(); s.WithDefaultConventions(); }); //services.AddAutoMapper(; // RiskFirst.Hateoas configuration services.AddLinks(config => { config.AddPolicy <Player>(policy => { policy //.RequireSelfLink() .RequireRoutedLink("all", "GetPlayers") .RequireRoutedLink("status_active", "UpdatePlayerStatus", x => new { id = x.Id, status = "1" }, c => c.Assert(x => x.AvailableStatuses.Any(y => y.Id == 1))) .RequireRoutedLink("status_injured", "UpdatePlayerStatus", x => new { id = x.Id, status = "2" }, c => c.Assert(x => x.AvailableStatuses.Any(y => y.Id == 2))) .RequireRoutedLink("status_suspended", "UpdatePlayerStatus", x => new { id = x.Id, status = "3" }, c => c.Assert(x => x.AvailableStatuses.Any(y => y.Id == 3))) .RequireRoutedLink("status_retired", "UpdatePlayerStatus", x => new { id = x.Id, status = "4" }, c => c.Assert(x => x.AvailableStatuses.Any(y => y.Id == 4))); }); }); }