Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }