2024-08-25 00:21:41 +08:00
|
|
|
|
using asg_form.Controllers.Team;
|
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
2024-08-03 20:40:34 +08:00
|
|
|
|
using Microsoft.AspNetCore.Identity;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using System.Security.Claims;
|
|
|
|
|
using static asg_form.Controllers.excel;
|
|
|
|
|
|
|
|
|
|
namespace asg_form.Controllers
|
|
|
|
|
{
|
2024-08-11 00:16:14 +08:00
|
|
|
|
public class Events : ControllerBase
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
|
|
|
|
private readonly RoleManager<Role> roleManager;
|
|
|
|
|
private readonly UserManager<User> userManager;
|
|
|
|
|
public Events(
|
|
|
|
|
RoleManager<Role> roleManager, UserManager<User> userManager)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
this.roleManager = roleManager;
|
|
|
|
|
this.userManager = userManager;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取所有赛事
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
// [Authorize]
|
2024-08-11 00:16:14 +08:00
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
[Route("api/v1/Events")]
|
|
|
|
|
[HttpGet]
|
2024-08-11 00:16:14 +08:00
|
|
|
|
// [ResponseCache(Duration = 260)]
|
|
|
|
|
public async Task<ActionResult<object>> Getallevent(bool get_poem = false)
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
|
|
|
|
TestDbContext testDbContext = new TestDbContext();
|
2024-08-11 00:16:14 +08:00
|
|
|
|
object Event = new object();
|
|
|
|
|
if (get_poem)
|
|
|
|
|
{
|
|
|
|
|
Event = testDbContext.events.Select(a => new { a.Id, a.is_over, a.opentime, a.name, a.promChart }).ToList();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Event = testDbContext.events.Select(a => new { a.Id, a.is_over, a.opentime, a.name }).ToList();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return Event;
|
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 发布新赛事
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Authorize]
|
|
|
|
|
[Route("api/v1/admin/Events")]
|
|
|
|
|
[HttpPost]
|
2024-08-11 00:16:14 +08:00
|
|
|
|
public async Task<ActionResult<List<T_events>>> Postevent([FromBody] events_get events)
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
|
|
|
|
TestDbContext testDbContext = new TestDbContext();
|
2024-08-11 00:16:14 +08:00
|
|
|
|
await testDbContext.events.AddAsync(new T_events { name = events.name, is_over = events.is_over, opentime = events.opentime, events_rule_uri = new Uri($"https://124.223.35.239/doc/rule/{events.name}.md") });
|
2024-08-03 20:40:34 +08:00
|
|
|
|
System.IO.Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + $"loge/{events.name}");
|
2024-08-11 00:16:14 +08:00
|
|
|
|
System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + $"doc/rule/{events.name}.md", events.rule_markdown);
|
2024-08-03 20:40:34 +08:00
|
|
|
|
await testDbContext.SaveChangesAsync();
|
2024-08-11 00:16:14 +08:00
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
return Ok("添加成功!");
|
2024-08-11 00:16:14 +08:00
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改赛事
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Authorize]
|
|
|
|
|
[Route("api/v1/admin/Events")]
|
|
|
|
|
[HttpPut]
|
2024-08-11 00:16:14 +08:00
|
|
|
|
public async Task<ActionResult<List<T_events>>> putevent(string event_name, [FromBody] T_events events)
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
2024-08-11 00:16:14 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
TestDbContext testDb = new TestDbContext();
|
|
|
|
|
var eve = testDb.events.FirstOrDefault(a => a.name == event_name);
|
|
|
|
|
eve.name = events.name;
|
|
|
|
|
eve.opentime = events.opentime;
|
|
|
|
|
eve.is_over = events.is_over;
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await testDb.SaveChangesAsync();
|
|
|
|
|
return Ok(eve);
|
|
|
|
|
}
|
|
|
|
|
return BadRequest(new error_mb { code = 400, message = "没管理员改个P!" });
|
2024-08-11 00:16:14 +08:00
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-08-11 00:16:14 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 删除新赛事
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Authorize]
|
2024-08-03 20:40:34 +08:00
|
|
|
|
[Route("api/v1/admin/Events")]
|
|
|
|
|
[HttpDelete]
|
|
|
|
|
public async Task<ActionResult<List<T_events>>> Delevent(string event_name)
|
|
|
|
|
{
|
|
|
|
|
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
|
|
|
|
{
|
2024-08-11 00:16:14 +08:00
|
|
|
|
TestDbContext test = new TestDbContext();
|
|
|
|
|
var evernt = test.events.FirstOrDefault(a => a.name == event_name);
|
2024-08-03 20:40:34 +08:00
|
|
|
|
test.Remove(evernt);
|
2024-08-11 00:16:14 +08:00
|
|
|
|
await test.SaveChangesAsync();
|
2024-09-03 09:57:25 +08:00
|
|
|
|
return Ok("删除");
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2024-09-03 09:57:25 +08:00
|
|
|
|
return BadRequest(new error_mb { code = 400, message = "不是管理员" });
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-08-11 00:16:14 +08:00
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改赛事
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Authorize]
|
|
|
|
|
[Route("api/v1/admin/Events_rule")]
|
|
|
|
|
[HttpDelete]
|
2024-08-11 00:16:14 +08:00
|
|
|
|
public async Task<ActionResult<List<T_events>>> event_rule(string event_name, [FromBody] string rule_markdown)
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
|
|
|
|
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
|
|
|
|
{
|
|
|
|
|
TestDbContext test = new TestDbContext();
|
|
|
|
|
var evernt = test.events.FirstOrDefault(a => a.name == event_name);
|
|
|
|
|
System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + $"doc/rule/{event_name}.md", rule_markdown);
|
|
|
|
|
|
|
|
|
|
return Ok("修改了呢");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return BadRequest(new error_mb { code = 400, message = "没P管理员隔着装尼玛呢" });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-11 00:16:14 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改赛程图
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Authorize]
|
|
|
|
|
[Route("api/v1/admin/poem")]
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<ActionResult<List<T_events>>> event_poem(string event_name, [FromBody] string poem_json)
|
|
|
|
|
{
|
|
|
|
|
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
|
|
|
|
{
|
|
|
|
|
TestDbContext test = new TestDbContext();
|
|
|
|
|
var evernt = test.events.FirstOrDefault(a => a.name == event_name);
|
|
|
|
|
evernt.promChart = poem_json;
|
|
|
|
|
await test.SaveChangesAsync();
|
|
|
|
|
return Ok("修改了呢");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return BadRequest(new error_mb { code = 400, message = "没P管理员隔着装尼玛呢" });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-08-25 00:21:41 +08:00
|
|
|
|
|
2024-08-11 00:16:14 +08:00
|
|
|
|
public class events_get
|
|
|
|
|
{
|
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
public string? name { get; set; }
|
|
|
|
|
public bool? is_over { get; set; }
|
|
|
|
|
public DateTime? opentime { get; set; }
|
|
|
|
|
public string rule_markdown { get; set; }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-08-25 00:21:41 +08:00
|
|
|
|
public class T_events
|
|
|
|
|
{
|
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
public string? name { get; set; }
|
|
|
|
|
public bool? is_over { get; set; }
|
|
|
|
|
public DateTime? opentime { get; set; }
|
|
|
|
|
public List<T_Team> Teams { get; set; }=new List<T_Team>();
|
|
|
|
|
public List<form>? forms { get; set; }
|
|
|
|
|
public Uri? events_rule_uri { get; set; }
|
|
|
|
|
public string? promChart { get; set; }
|
|
|
|
|
|
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|