public HttpResponseMessage UploadAssignment([FromBody] JObject assignmentInfo) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); var jsonParams = HttpUtil.Deserialize(assignmentInfo); int expID = jsonParams.exp_id; string file = jsonParams.file; Experiment experiment = ExperimentDao.GetExperimentById(expID); List <Course_student_mapping> csm = CourseDao.GetMapByStudentId(id).Where(m => m.course_id == experiment.course_id).ToList(); if (csm.Count > 0) { Assignment assignment = new Assignment { experiment_id = experiment.id, student_id = id, submit_time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), is_standard = 0, file = file }; Assignment oldAssignment = AssignmentDao.GetAssignmentsByStuIdAndExpId(id, expID); if (oldAssignment != null) { LogUtil.Log(Request, "重新提交作业", expID.ToString(), id, 1, "", "", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); AssignmentDao.DeleteAssignment(oldAssignment.id); AssignmentDao.AddAssignment(assignment); return(new Response(1001, "重新提交作业成功").Convert()); } else { LogUtil.Log(Request, "提交作业", expID.ToString(), id, 1, "", "", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); AssignmentDao.AddAssignment(assignment); return(new Response(1001, "提交作业成功").Convert()); } } return(new Response(2002).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage UploadAssignment() { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"]; HttpRequestBase httpRequest = context.Request; int expId = int.Parse(httpRequest["expId"]); Experiment exp = ExperimentDao.GetExperimentById(expId); if (!HttpUtil.IsTimeLater(exp.deadline)) { return(new Response(2002, "已过提交截止时间").Convert()); } if (exp == null) { return(new Response(3001).Convert()); } Course_student_mapping csm = CourseDao.GetMapByStudentId(id).Where(m => m.course_id == exp.course_id).First(); if (csm == null) { return(new Response(2002).Convert()); } string fileCode = null; if (httpRequest.Files.Count > 0) { string path = httpRequest.MapPath(@"~/Files/Assignment/" + expId + "/"); if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } var uploadedFiles = httpRequest.Files; if (uploadedFiles.Count != 1) { return(new Response(2002, "仅支持单个文件").Convert()); } var uploadedFile = uploadedFiles[0]; Models.File file = HttpUtil.UploadFile(uploadedFile, id, "作业", path, Request); AssignmentDao.AddFile(file); fileCode = file.id; } else if (httpRequest["file"] != null) { fileCode = httpRequest["file"].ToString(); } Assignment assignment = AssignmentDao.GetAssignmentsByStuIdAndExpId(id, expId); if (assignment == null) { assignment = new Assignment { student_id = id, experiment_id = expId, submit_time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), file = fileCode, is_standard = 0 }; AssignmentDao.AddAssignment(assignment); LogUtil.Log(Request, "提交作业", expId.ToString(), id, 1); } else { string oldFile = assignment.file; assignment.file = fileCode; assignment.submit_time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); AssignmentDao.ChangeAssignmentInfo(assignment); LogUtil.Log(Request, "重新提交作业", expId.ToString(), id, 1, "", "替换的作业: " + oldFile); } return(new Response(1001).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }