添加Qodana配置文件并实现玩家管理功能
This commit is contained in:
parent
2961bd5322
commit
2fd0ca2c64
96
AGSS/Controllers/Admin/AdminPlayerControllers.cs
Normal file
96
AGSS/Controllers/Admin/AdminPlayerControllers.cs
Normal file
@ -0,0 +1,96 @@
|
||||
using AGSS.Models.Entities;
|
||||
using AGSS.Models.Template;
|
||||
using AGSS.Services;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace AGSS.Controllers.Admin;
|
||||
|
||||
|
||||
[Authorize(Roles = "Admin")]
|
||||
[Route("api/v1/[controller]")]
|
||||
public class AdminPlayerControllers:ControllerBase
|
||||
{
|
||||
private readonly RoleManager<RoleModel> _roleManager;
|
||||
|
||||
|
||||
private readonly UserManager<UserModel> _userManager; // Assuming UserModel is the type of user
|
||||
|
||||
private readonly PlayerService _playerService;
|
||||
public AdminPlayerControllers(RoleManager<RoleModel> roleManager, UserManager<UserModel> userManager, PlayerService playerService)
|
||||
{
|
||||
_roleManager = roleManager;
|
||||
_userManager = userManager;
|
||||
_playerService = playerService;
|
||||
}
|
||||
|
||||
|
||||
[HttpDelete]
|
||||
public async Task<IActionResult> DelPlayer(string id)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
await _playerService.DelectPlayerAsync(id);
|
||||
return Ok(new ReturnTemplate(200,"删除成功!",""));
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
return Ok(new ReturnTemplate(500, "出现了错误", ""));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> NewPlayer(PlayerModel player)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
await _playerService.CreatePlayerAsync(player);
|
||||
return Ok(new ReturnTemplate(200, "你已经新建了player", player));
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
return Ok(new ReturnTemplate(500, "出现了错误", ""));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
[HttpGet("Page")]
|
||||
public async Task<IActionResult> GetPlayers([FromQuery] int pageNumber, [FromQuery] int pageSize)
|
||||
{
|
||||
try
|
||||
{
|
||||
var pagedResult = await _playerService.GetPlayersAsync(pageNumber, pageSize);
|
||||
return Ok(new ReturnTemplate(200, "成功获取玩家列表", pagedResult));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
return Ok(new ReturnTemplate(500, "出现了错误", new PagedResult<PlayerModel>()));
|
||||
}
|
||||
}
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> UpdatePlayer([FromBody]PlayerModel player)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _playerService.UpdatePlayerAsync(player);
|
||||
return Ok(new ReturnTemplate(500, "更新成功",""));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
return Ok(new ReturnTemplate(500, "出现了错误",""));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -10,6 +10,7 @@ namespace AGSS.DbSet
|
||||
public override DbSet<RoleModel> Roles { get; set; }
|
||||
public DbSet<DictItem> DictItems { get; set; }
|
||||
public DbSet<MenuModel> Menus { get; set; }
|
||||
public DbSet<PlayerModel> Players { get; set; }
|
||||
|
||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
||||
: base(options)
|
||||
|
10
AGSS/Models/Entities/PagedResult.cs
Normal file
10
AGSS/Models/Entities/PagedResult.cs
Normal file
@ -0,0 +1,10 @@
|
||||
namespace AGSS.Models.Entities
|
||||
{
|
||||
public class PagedResult<T>
|
||||
{
|
||||
public int TotalItems { get; set; }
|
||||
public int PageNumber { get; set; }
|
||||
public int PageSize { get; set; }
|
||||
public List<T> Items { get; set; } = new List<T>();
|
||||
}
|
||||
}
|
57
AGSS/Services/PlayerService.cs
Normal file
57
AGSS/Services/PlayerService.cs
Normal file
@ -0,0 +1,57 @@
|
||||
using AGSS.DbSet;
|
||||
using AGSS.Models.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace AGSS.Services;
|
||||
|
||||
public class PlayerService
|
||||
{
|
||||
|
||||
private readonly ApplicationDbContext _context;
|
||||
|
||||
public PlayerService(ApplicationDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public async Task<bool> CreatePlayerAsync(PlayerModel player)
|
||||
{
|
||||
var result= await _context.Players.AddAsync(new PlayerModel()
|
||||
{
|
||||
Name = player.Name,
|
||||
Asset = player.Asset,
|
||||
Description = player.Description,
|
||||
});
|
||||
return true;
|
||||
}
|
||||
public async Task<bool> UpdatePlayerAsync(PlayerModel player)
|
||||
{
|
||||
var result = await _context.Players.FirstAsync(a => a.Uuid == player.Uuid);
|
||||
result.Name = player.Name;
|
||||
result.Asset = player.Asset;
|
||||
result.Description = player.Description;
|
||||
await _context.SaveChangesAsync();
|
||||
return true;
|
||||
}
|
||||
public async Task<bool> DelectPlayerAsync(string PlayerId)
|
||||
{
|
||||
var result = await _context.Players.FirstAsync(a => a.Uuid == PlayerId);
|
||||
_context.Remove(result);
|
||||
return true;
|
||||
}
|
||||
public async Task<PagedResult<PlayerModel>> GetPlayersAsync(int pageNumber, int pageSize)
|
||||
{
|
||||
var totalItems = await _context.Players.CountAsync();
|
||||
var skip = (pageNumber - 1) * pageSize;
|
||||
var players = await _context.Players.Skip(skip).Take(pageSize).ToListAsync();
|
||||
return new PagedResult<PlayerModel>
|
||||
{
|
||||
TotalItems = totalItems,
|
||||
PageNumber = pageNumber,
|
||||
PageSize = pageSize,
|
||||
Items = players
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
}
|
41
qodana.yaml
Normal file
41
qodana.yaml
Normal file
@ -0,0 +1,41 @@
|
||||
#-------------------------------------------------------------------------------#
|
||||
# Qodana analysis is configured by qodana.yaml file #
|
||||
# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
|
||||
#-------------------------------------------------------------------------------#
|
||||
version: "1.0"
|
||||
|
||||
#Specify IDE code to run analysis without container (Applied in CI/CD pipeline)
|
||||
ide: QDNET
|
||||
|
||||
#Specify inspection profile for code analysis
|
||||
profile:
|
||||
name: qodana.starter
|
||||
|
||||
#Enable inspections
|
||||
#include:
|
||||
# - name: <SomeEnabledInspectionId>
|
||||
|
||||
#Disable inspections
|
||||
#exclude:
|
||||
# - name: <SomeDisabledInspectionId>
|
||||
# paths:
|
||||
# - <path/where/not/run/inspection>
|
||||
|
||||
#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
|
||||
#bootstrap: sh ./prepare-qodana.sh
|
||||
|
||||
#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
|
||||
#plugins:
|
||||
# - id: <plugin.id> #(plugin id can be found at https://plugins.jetbrains.com)
|
||||
|
||||
# Quality gate. Will fail the CI/CD pipeline if any condition is not met
|
||||
# severityThresholds - configures maximum thresholds for different problem severities
|
||||
# testCoverageThresholds - configures minimum code coverage on a whole project and newly added code
|
||||
# Code Coverage is available in Ultimate and Ultimate Plus plans
|
||||
#failureConditions:
|
||||
# severityThresholds:
|
||||
# any: 15
|
||||
# critical: 5
|
||||
# testCoverageThresholds:
|
||||
# fresh: 70
|
||||
# total: 50
|
Loading…
x
Reference in New Issue
Block a user