1
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
using Entities.DTO;
|
||||
using Entities.Contracts;
|
||||
using Entities.DTO;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Net;
|
||||
using System.Security.Claims;
|
||||
using TechHelper.Services;
|
||||
|
||||
namespace TechHelper.Server.Controllers
|
||||
@@ -11,25 +14,76 @@ namespace TechHelper.Server.Controllers
|
||||
public class ClassController : ControllerBase
|
||||
{
|
||||
private IClassService _classService;
|
||||
|
||||
public ClassController(IClassService classService)
|
||||
private UserManager<User> _userManager;
|
||||
public ClassController(IClassService classService, UserManager<User> userManager)
|
||||
{
|
||||
_classService = classService;
|
||||
_userManager = userManager;
|
||||
}
|
||||
|
||||
[HttpPost("userRegiste")]
|
||||
public async Task<IActionResult> UserRegisterToClass(
|
||||
[FromBody] UserRegistrationToClassDto toClass)
|
||||
{
|
||||
|
||||
|
||||
var result = await _classService.UserRegister(toClass);
|
||||
|
||||
if(!result.Status) return BadRequest(result.Message);
|
||||
if (!result.Status) return BadRequest(result.Message);
|
||||
|
||||
return Ok();
|
||||
return Ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
[HttpPost("getClassStudents")]
|
||||
public async Task<IActionResult> GetClassStudents()
|
||||
{
|
||||
if (User.IsInRole("Teacher"))
|
||||
{
|
||||
var gradeClaim = User.FindFirst("Grade")?.Value;
|
||||
var classClaim = User.FindFirst("Class")?.Value;
|
||||
|
||||
if (string.IsNullOrEmpty(gradeClaim) || string.IsNullOrEmpty(classClaim))
|
||||
{
|
||||
return BadRequest("未识别到你加入的班级信息(年级或班级声明缺失)。");
|
||||
}
|
||||
|
||||
if (!byte.TryParse(gradeClaim, out byte grade) || !byte.TryParse(classClaim, out byte cla))
|
||||
{
|
||||
return BadRequest("你班级或年级信息格式不正确。");
|
||||
}
|
||||
|
||||
var classDto = new ClassDto
|
||||
{
|
||||
Grade = grade,
|
||||
Class = cla
|
||||
};
|
||||
|
||||
var result = await _classService.GetClassStudents(classDto);
|
||||
var css = result.Result as ICollection<ClassStudent>;
|
||||
if(css == null) return BadRequest("你还没有学生");
|
||||
|
||||
|
||||
List<StudentDto> sts = new List<StudentDto>();
|
||||
css?.ToList().ForEach(s => sts.Add(new StudentDto
|
||||
{
|
||||
DisplayName = s.Student.DisplayName,
|
||||
Id = s.Student.Id,
|
||||
}));
|
||||
|
||||
if (!result.Status)
|
||||
{
|
||||
return BadRequest(result.Message);
|
||||
}
|
||||
return Ok(sts);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest("你没有权限查看,未识别到你的教师身份。");
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("Create")]
|
||||
public async Task<IActionResult> Create(
|
||||
[FromBody] ClassDto classDto)
|
||||
|
@@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using TechHelper.Server.Services;
|
||||
using System.Security.Claims;
|
||||
using TechHelper.Services;
|
||||
|
||||
|
||||
namespace TechHelper.Server.Controllers
|
||||
@@ -31,7 +32,7 @@ namespace TechHelper.Server.Controllers
|
||||
[FromBody] AssignmentDto examDto)
|
||||
{
|
||||
var user = await _userManager.FindByEmailAsync(User.Identity?.Name ?? "");
|
||||
if(user == null) return BadRequest("无效的用户");
|
||||
if (user == null) return BadRequest("无效的用户");
|
||||
|
||||
examDto.CreatorId = user.Id;
|
||||
var result = await _examService.CreateExamAsync(examDto);
|
||||
@@ -45,6 +46,29 @@ namespace TechHelper.Server.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("submission")]
|
||||
public async Task<IActionResult> SubmissionAssignment(
|
||||
[FromBody] SubmissionDto submissionDto)
|
||||
{
|
||||
if (User == null) return BadRequest("无效的用户");
|
||||
if (User.IsInRole("Teacher"))
|
||||
{
|
||||
var result = await _examService.SubmissionAssignment(submissionDto);
|
||||
if (result.Status)
|
||||
{
|
||||
return Ok(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(result.Message);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest("你没有权限修改");
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("get")]
|
||||
public async Task<IActionResult> GetExamById(Guid id)
|
||||
{
|
||||
@@ -58,16 +82,26 @@ namespace TechHelper.Server.Controllers
|
||||
|
||||
|
||||
[HttpGet("getAllPreview")]
|
||||
public async Task<IActionResult> GetAllExamPreview(string user)
|
||||
public async Task<IActionResult> GetAllExamPreview()
|
||||
{
|
||||
string? userId = User.Identity.Name;
|
||||
if (User == null) return BadRequest("用户验证失败, 无效用户");
|
||||
|
||||
var userid = await _userManager.FindByEmailAsync(user);
|
||||
if (userid == null) return BadRequest("用户验证失败, 无效用户");
|
||||
var userid = await _userManager.FindByEmailAsync(User.Identity.Name);
|
||||
|
||||
|
||||
|
||||
var result = await _examService.GetAllExamPreviewsAsync(userid.Id);
|
||||
var result = new ApiResponse();
|
||||
if (User.IsInRole("Teacher"))
|
||||
{
|
||||
result = await _examService.GetAllExamPreviewsAsync(userid.Id);
|
||||
}
|
||||
else if (User.IsInRole("Student"))
|
||||
{
|
||||
result = await _examService.GetAllSubmissionAsync(userid.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest("你没有相应的权限");
|
||||
}
|
||||
|
||||
if (result.Status)
|
||||
{
|
||||
@@ -76,5 +110,34 @@ namespace TechHelper.Server.Controllers
|
||||
return BadRequest(result);
|
||||
}
|
||||
|
||||
|
||||
[HttpGet("getAllSubmission")]
|
||||
public async Task<IActionResult> GetAllSubmission()
|
||||
{
|
||||
if (User == null) return BadRequest("用户验证失败, 无效用户");
|
||||
|
||||
var userid = await _userManager.FindByEmailAsync(User.Identity.Name);
|
||||
|
||||
var result = await _examService.GetAllSubmissionAsync(userid.Id);
|
||||
|
||||
if (result.Status)
|
||||
{
|
||||
return Ok(result.Result);
|
||||
}
|
||||
return BadRequest(result);
|
||||
}
|
||||
|
||||
|
||||
[Authorize(Roles = "Teacher")]
|
||||
[HttpDelete("{guid}")]
|
||||
public async Task<IActionResult> DeleteAsync(Guid guid)
|
||||
{
|
||||
var deleteResult = await _examService.DeleteAsync(guid);
|
||||
if (deleteResult.Status)
|
||||
{
|
||||
return Ok();
|
||||
}
|
||||
return BadRequest();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
30
TechHelper.Server/Controllers/UserController.cs
Normal file
30
TechHelper.Server/Controllers/UserController.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Entities.Contracts;
|
||||
using Entities.DTO;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using TechHelper.Services;
|
||||
|
||||
namespace TechHelper.Server.Controllers
|
||||
{
|
||||
[Route("api/user")]
|
||||
[ApiController]
|
||||
public class UserController : ControllerBase
|
||||
{
|
||||
private IClassService _classService;
|
||||
private UserManager<User> _userManager;
|
||||
public UserController(IClassService classService, UserManager<User> userManager)
|
||||
{
|
||||
_classService = classService;
|
||||
_userManager = userManager;
|
||||
}
|
||||
|
||||
|
||||
[HttpPost("get")]
|
||||
public async Task<IActionResult> GetAsync(
|
||||
[FromBody] UserRegistrationToClassDto toClass)
|
||||
{
|
||||
return Ok();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user