public async Task <ActionResult> Apply(LeaveApplyViewModel model) { if (ModelState.IsValid) { var userid = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userid); if (user.StudentInfo.BelongClass == null || user.StudentInfo.Dormitory == null || user.StudentInfo.HomeAddress == null || user.StudentInfo.PersonalTel == null) { ModelState.AddModelError("", "请完善个人信息"); return(View(model)); } if (!await LeaveManager.IsAllLeaveResumedAsync(userid)) { ModelState.AddModelError("", "还未销假"); } else { var config = await LeaveConfigManager.GetConfigAsync(); if (await LeaveManager.IsAllLeaveConditionMeeted(userid, config)) { if (model.Category == LeaveCategory.病假) { if (model.TimeType == TimeType.一天以上) { if ((model.EndDate - model.StartDate).Days + 1 >= config.LeastSickLeaveDay) { if (model.UploadFile == null) { ModelState.AddModelError("", "请上传图片附件"); return(View(model)); } else { //"E:\\MyPrivateProject\\StudentManageSystem\\LeaveSystem\\LeaveSystem.Web\\" var p = Server.MapPath("/UploadImageAttach/"); if (!Directory.Exists(p)) { Directory.CreateDirectory(p); } var t = DateTime.Now.Ticks; var namea = model.UploadFile.FileName.Split('\\'); var name = namea[namea.Length - 1]; var filename = "/UploadImageAttach/" + t.ToString() + "_" + name; model.UploadFile.SaveAs(p + t.ToString() + "_" + name); model.ImageUrls = filename; } } } } Leave leave = new Leave { Category = model.Category, StartDate = model.StartDate, EndDate = model.EndDate, ImageUrls = model.ImageUrls, OneDayTime = model.OneDayTime, OneDayStart = model.OneDayStart, OneDayEnd = model.OneDayEnd, Reason = model.Reason, ToWhere = model.ToWhere, TimeType = model.TimeType, Student = user.StudentInfo, LeaveStatus = LeaveStatus.已提交, AddTime = DateTime.Now, ResumeTime = DateTime.Now, IsResume = 0, }; leave.Checks = new List <Check>(); var classHeadTeacher = user.StudentInfo.BelongClass.ClassTeacher; leave.Checks.Add(new Check() { CheckTeacher = classHeadTeacher, CheckOrder = 0, CheckStatus = CheckStatus.未查看, CheckTime = DateTime.Now, AddTime = DateTime.Now }); if (model.TimeType == TimeType.一天以上) { if ((model.EndDate - model.StartDate).Days > config.LeastDayToSign) { var clerk = config.ClerkTeacher; leave.Checks.Add(new Check() { CheckTeacher = clerk.Teacher.TeacherInfo, CheckOrder = 1, CheckStatus = CheckStatus.未查看, CheckTime = DateTime.Now, AddTime = DateTime.Now }); } } await LeaveManager.AddEntityAsync(leave); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "请假添加不符合"); } } } return(View(model)); }