public async Task<ActionResult> Create([Bind(Include = "Id,CourseName,Grade,StudentsCapacity,RecLog,ContractId,CourseCatalogId")] License license) { if (ModelState.IsValid) { var courseCatalog = await db.CourseCatalogs.FirstOrDefaultAsync(it => it.Id == license.CourseCatalogId); if (courseCatalog == null || courseCatalog.RecLog.DeletedDate.HasValue) return View("Error"); var contract = await db.Contracts.FirstOrDefaultAsync(it => it.Id == license.ContractId); if (contract == null) return View("Error"); license.Contract = contract; license.CourseCatalog = courseCatalog; var now = DateTime.Now; license.CourseName = courseCatalog.SideName; license.Grade = courseCatalog.Grade.ToString(); var newTeacherKey = new TeacherKey { Grade = courseCatalog.Grade.ToString(), License = license, Code = generateTeacherCode(license), RecLog = new RecordLog { CreatedDate = now } }; license.TeacherKeys.Add(newTeacherKey); license.RecLog.CreatedDate = now; db.Licenses.Add(license); db.TeacherKeys.Add(newTeacherKey); await db.SaveChangesAsync(); return RedirectToAction("Details", "Contracts", new { @id = license.ContractId }); } ViewBag.CourseCatalogId = new SelectList(db.CourseCatalogs, "Id", "SideName"); return View(license); }
public async Task<ActionResult> RegenerateTeacherCodeConfirmed(int id) { License license = await db.Licenses .Include("Contract") .Include("CourseCatalog") .FirstOrDefaultAsync(); var now = DateTime.Now; foreach (var item in license.TeacherKeys) item.RecLog.DeletedDate = now; var newTeacherKey = new TeacherKey { Grade = license.Grade, License = license, Code = generateTeacherCode(license), RecLog = new RecordLog { CreatedDate = now } }; license.TeacherKeys.Add(newTeacherKey); db.TeacherKeys.Add(newTeacherKey); await db.SaveChangesAsync(); return RedirectToAction("Details", "Contracts", new { @id = license.ContractId }); }