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 })); }
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)); }