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.

163 lines
4.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System.Net;
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 result = BaseResultUtil.Success(accounts);
return Ok(result);
}
/// <summary>
/// 查询账号
/// (默认方式参数:URL传参)
/// </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(account);
return Ok(result);
}
/// <summary>
/// 查询账号
/// (中文参数)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAccountByName(string ChineseName, [FromQuery]string ChineseName2)
{
var accounts = _accountService
.GetAllAccounts()
.Where(a => a.Name == ChineseName || a.Name == ChineseName2)
.ToList();
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>
/// 查询账号
/// (请求头参数:中文,客户端Url编码后请求此处Url解码后使用)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAccountFromHeader([FromHeader] string name)
{
//先Url解码
var decodeName = WebUtility.UrlDecode(name);
var account = _accountService.GetAllAccounts().Single(i => i.Name == decodeName);
var result = BaseResultUtil.Success(account);
return Ok(result);
}
/// <summary>
/// 查询账号
/// (服务注入参数)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult GetAccountFromServices([FromServices] Account account)
{
var result = BaseResultUtil.Success(account);
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);
}
}
}