using Manganese.Text; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Components.Routing; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System.Security.Claims; using System.Threading.Tasks; namespace asg_form.Controllers { [ApiController] public class comform : ControllerBase { private readonly RoleManager roleManager; private readonly UserManager userManager; public comform( RoleManager roleManager, UserManager userManager) { this.roleManager = roleManager; this.userManager = userManager; } [Route("api/v1/comform")] [HttpPost] [Authorize] public async Task> getschedle_c([FromBody]req_com_form req) { int id = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value.ToInt32(); // var user = await userManager.Users.FirstAsync(a=>a.Id==id); var dateString = DateTime.Now; TestDbContext testDb = new TestDbContext(); var result = new com_form { comSex = req.sex, Com_Cocial_media = req.Com_Cocial_media, Com_qq = req.Com_qq, UserId=id, Status = "0", introduction = req.introduction, idv_id=req.idv_id, createTime = dateString.ToString(), }; testDb.com_Forms.Add(result); await testDb.SaveChangesAsync(); return Ok("成功!"); } [Route("api/v1/admin/comform")] [HttpGet] [Authorize] public async Task> getschedle_c(short page, short limit) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { using (TestDbContext sub = new TestDbContext()) { var query = sub.com_Forms.AsQueryable(); var TotalRecords = await query.CountAsync(); var signData = await query .OrderByDescending(a => a.Status) .Skip((page - 1) * limit) .Take(limit) .ToListAsync(); var result = new { rows = signData, total = TotalRecords, }; return Ok(result); } } return Ok(new error_mb { code = 400, message = "没有管理员,无法获取" }); } [Route("api/v1/admin/user")] [HttpGet] [Authorize] public async Task> getschedle_c(long userid) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { return await userManager.FindByIdAsync(userid.ToString()); } return BadRequest(new error_mb { code = 400, message = "没有管理员,无法获取" }); } [Route("api/v1/admin/comform_ok")] [HttpGet] [Authorize] public async Task> ok_comform(long comform_id) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { TestDbContext testDb = new TestDbContext(); var comform = await testDb.com_Forms.FirstAsync(a=>a.Id == comform_id); comform.Status = "1"; await testDb.SaveChangesAsync(); var ouser = await userManager.FindByIdAsync(comform.UserId.ToString()); ouser.officium = "Commentator"; await userManager.UpdateAsync(ouser); admin.SendEmail(ouser.Email, "ASG赛事组", $@"
{ouser.chinaname} ,欢迎加入ASG赛事组。
欢迎
欢迎{ouser.chinaname}加入ASG赛事组。
你的职位已经被设置为Commentator。
  • 对此次执行有疑问请联系我们的QQ:2667210109。
  • 请不要回复此邮件。如果你需要帮助,请联系我们。
  • 请加入对应职位的群聊。
版权所有 ASG赛事官网
"); return "成功!"; } return BadRequest(new error_mb { code = 400, message = "没有管理员,无法设置" }); } [Route("api/v1/admin/comform_no")] [HttpGet] [Authorize] public async Task> no_comform(long comform_id) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { TestDbContext testDb = new TestDbContext(); var comform = await testDb.com_Forms.FirstAsync(a => a.Id == comform_id); comform.Status ="2"; var ouser =await userManager.FindByIdAsync(comform.UserId.ToString()); await testDb.SaveChangesAsync(); admin.SendEmail(ouser.Email, "ASG赛事组", $@"很抱歉,你的解说申请未通过"); return "成功!"; } return BadRequest(new error_mb { code = 400, message = "没有管理员,无法设置" }); } public class req_com_form { public string sex { get; set; } public string? Com_Cocial_media { get; set; } public string idv_id { get; set; } public string introduction { get; set; } public string Com_qq { get; set; } } public class com_form { public long Id { get; set; } public int UserId { get; set; } public string comSex { get; set; } public string? Com_Cocial_media { get; set; } public string idv_id { get; set; } public string introduction { get; set; } public string Com_qq { get; set; } public string Status { get; set; } public string createTime { get; set; } } } }