public async Task <dynamic> OnGetHomeworkAsync(int hwID, string token) { try { var t = await tokenService.GetTokenAsync(token); if (t == null) { throw new Exception("请先登录"); } var role = t.Role; if (role != UserRole.Admin) { role = await homeworkService.GetHWRoleAsync(hwID, t.UserID); } if (role == UserRole.Student) { var hwDetail = await homeworkService.GetHomeworkDetailAsync(hwID, t.UserID); return(new { Res = true, HWDetail = hwDetail }); } else { var hwDetail = await homeworkService.GetHomeworkDetailTAsync(hwID); return(new { Res = true, HWDetail = hwDetail }); } } catch (Exception e) { return(new { Res = false, Error = e.Message }); } }
public async Task <dynamic> OnGetStuHomeworkFileAsync(string stuID, int hwID, int fileID, string token, bool mode) { try { var t = await tokenService.GetTokenAsync(token); if (t == null) { throw new Exception("请先登录"); } if (t.Role != UserRole.Admin) { var courseRole = await homeworkService.GetHWRoleAsync(hwID, t.UserID); if (courseRole == UserRole.Student && stuID != t.UserID) { throw new Exception("权限不足"); } } var fileInfo = await fileService.GetFileAsync(fileID); new FileExtensionContentTypeProvider().TryGetContentType(fileInfo.Name, out var contentType); if (mode) { var arr = Encoding.UTF8.GetBytes(fileInfo.Name); var name = string.Empty; foreach (var b in arr) { name += string.Format("%{0:X2}", b); } HttpContext.Response.Headers.Add("Content-Disposition", new Microsoft.Extensions.Primitives.StringValues("attachment; filename = " + name)); } return(PhysicalFile(Path.GetFullPath(fileInfo.Path), contentType)); } catch (Exception e) { return(new { Res = false, Error = e.Message }); } }