// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Mvc; namespace RoutingWebSite { // This controller combines routes on the controller with routes on actions in a REST + navigation property // style. [Route("api/Employee")] public class EmployeeController : Controller { private readonly TestResponseGenerator _generator; public EmployeeController(TestResponseGenerator generator) { _generator = generator; } public IActionResult List() { return _generator.Generate("/api/Employee"); } [AcceptVerbs("PUT", "PATCH")] public IActionResult UpdateEmployee() { return _generator.Generate("/api/Employee"); } [AcceptVerbs("PUT", "PATCH", Route = "Manager")] public IActionResult UpdateManager() { return _generator.Generate("/api/Employee/Manager"); } [HttpMerge("{id}")] public IActionResult MergeEmployee(int id) { return _generator.Generate("/api/Employee/" + id); } [HttpGet("{id}")] public IActionResult Get(int id) { return _generator.Generate("/api/Employee/" + id); } [HttpGet("{id}/Administrator")] public IActionResult GetAdministrator(int id) { return _generator.Generate("/api/Employee/" + id + "/Administrator"); } [HttpGet("~/Manager/{id}")] public IActionResult GetManager(int id) { return _generator.Generate("/Manager/" + id); } [HttpDelete("{id}/Administrator")] public IActionResult DeleteAdministrator(int id) { return _generator.Generate("/api/Employee/" + id + "/Administrator"); } [Route("{id}/Salary")] public IActionResult Salary(int id) { return _generator.Generate("/api/Employee/" + id + "/Salary"); } } }