You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
3.7 KiB
C#

using HttpClientStudy.Model;
using HttpClientStudy.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace HttpClientStudy.WebApp.Controllers
{
/// <summary>
/// 普通(简单) 控制器
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
public class NormalController : ControllerBase
{
private ILogger<SimpleController> _logger;
private AccountService _accountService;
/// <summary>
/// 构造
/// </summary>
public NormalController(ILogger<SimpleController> logger, AccountService accountService)
{
_logger = logger;
_accountService = accountService;
}
/// <summary>
/// 获取所有账号
/// (无参数)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAllAccounts()
{
var accounts = _accountService.GetAllAccounts();
var reslut = BaseResultUtil.Success(accounts);
return Ok(reslut);
}
/// <summary>
/// 获取所有账号
/// (默认方式参数)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAccount(int id)
{
var accounts = _accountService.GetAllAccounts();
var account = accounts.FirstOrDefault(a => a.Id == id);
var result = BaseResultUtil.Success(account);
return Ok(result);
}
/// <summary>
/// 获取所有账号
/// (路由参数)
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("{name}")]
public IActionResult GetAccount([FromRoute] string name)
{
var accounts = _accountService.GetAllAccounts();
var account = accounts.FirstOrDefault(a => a.Name == name);
var result = BaseResultUtil.Success(accounts);
return Ok(result);
}
/// <summary>
/// 获取所有账号
/// (查询参数)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAccountByRole([FromQuery]string role)
{
var accounts = _accountService.GetAllAccounts();
accounts = accounts.Where(accounts => accounts.Role == role).ToList();
var result = BaseResultUtil.Success(accounts);
return Ok(result);
}
/// <summary>
/// 获取所有账号
/// (服务注入参数)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAccount([FromServices] Account account)
{
var accounts = _accountService.GetAllAccounts();
accounts = accounts.Where(accounts => accounts.Role == role).ToList();
var result = BaseResultUtil.Success(accounts);
return Ok(result);
}
/// <summary>
/// Put请求 示例
/// </summary>
/// <returns></returns>
[HttpPut]
public IActionResult PutDemo(int id)
{
var accounts = _accountService.GetAllAccounts();
var account = accounts.FirstOrDefault(a => a.Id == id);
var result = BaseResultUtil.Success(account);
return Ok(result);
}
/// <summary>
/// Head请求 示例
/// </summary>
/// <returns></returns>
[HttpHead]
public IActionResult HeadDemo(int id)
{
var accounts = _accountService.GetAllAccounts();
var account = accounts.FirstOrDefault(a => a.Id == id);
var result = BaseResultUtil.Success(account);
return Ok(result);
}
}
}