public async Task <IActionResult> CreateCodeSnippetNoAnswer(int id, CodeSnippetNoAnswerViewModel model) { var folderId = Int32.Parse(Request.Form["folder"]); ViewBag.Categories = _categoryRepo.Categories; if (ModelState.IsValid) { //create new code snippet in CodeSnippet table CodeSnippetNoAnswer newCodeSnip = new CodeSnippetNoAnswer(); newCodeSnip.Name = model.Name; newCodeSnip.Description = model.Description; newCodeSnip.Code = model.Code1; newCodeSnip.Answer = model.Answer; _context.CodeSnippetNoAnswers.Add(newCodeSnip); await _context.SaveChangesAsync(); //save changes ^^^ //create new post and pass in the newly saved code snippet id in as the foreign key Post newPost = new Post(); newPost.CourseId = _courseId; newPost.PostCategory = 3; newPost.AssignmentId = newCodeSnip.CodeSnippetNoAnswerId; newPost.FolderId = folderId; _context.Posts.Add(newPost); //everytime we add a post to a folder we update the edit time of the edit col in folder var folderToUpdate = _context.Folders.Where(f => f.FolderId == folderId && f.CourseId == id).First(); folderToUpdate.WhenEdited = DateTime.Now; await _context.SaveChangesAsync(); //to be used for views to show activity of Curse UpdateCourse(id); TempData["Success"] = "Assignment Successfully Created!"; return(RedirectToRoute(new { controller = "Course", action = "Show", id = _courseId })); } return(View(model)); }
public async Task <IActionResult> EditCodeSnippetNoAnswer(int id, int?assignmentId, int?categoryId, CodeSnippetNoAnswer post) { var folderId = Int32.Parse(Request.Form["folder"]); if (ModelState.IsValid) { try { var postToUpdate = _context.Set <CodeSnippetNoAnswer>().Where(c => c.CodeSnippetNoAnswerId == assignmentId).SingleOrDefault(); var postToUpdateFolderId = _context.Posts.Where(p => p.PostCategory == categoryId && p.AssignmentId == assignmentId).SingleOrDefault(); postToUpdate.Name = post.Name; postToUpdate.Description = post.Description; postToUpdate.Code = post.Code; postToUpdate.Answer = post.Answer; postToUpdate.WhenEdited = DateTime.Now; postToUpdateFolderId.FolderId = folderId; //everytime we add a post to a folder we update the edit time of the edit col in folder var folderToUpdate = _context.Folders.Where(f => f.FolderId == folderId && f.CourseId == id).First(); folderToUpdate.WhenEdited = DateTime.Now; //_context.Update(post); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } //to be used for views to show activity of Curse UpdateCourse(id); TempData["Success"] = "Assignment Successfully Edited and Saved!"; return(RedirectToRoute(new { controller = "Post", action = "Details", id = id, assignmentId = assignmentId, categoryId = categoryId })); } return(View(post)); }