public async Task <IActionResult> CreateRubric(RubricCreateModel rubricCreateModel) { var currentUser = await _userManager.GetUserAsync(User); var rubric = new Rubric { ApplicationUserId = currentUser.Id, DateCreated = DateTime.Now, Title = rubricCreateModel.Title, Description = rubricCreateModel.Description, GradeId = rubricCreateModel.Grade, SubjectId = rubricCreateModel.Subject, IsPrivate = rubricCreateModel.IsPrivate, TotalRating = 0 }; var newRow = new Row { RubricId = rubric.Id }; Cell cell = new Cell { RowId = newRow.Id, Text = "First Cell!" }; newRow.Cells.Add(cell); rubric.Rows.Add(newRow); _applicationDbContext.Cells.Add(cell); _applicationDbContext.Rows.Add(newRow); _applicationDbContext.Rubrics.Add(rubric); await _applicationDbContext.SaveChangesAsync(); return(RedirectToAction("Index", "Rubric")); }
public async Task <IActionResult> CopyRubric([FromBody] RubricCreateModel rubricCreateModel) { var currentUser = await _userManager.GetUserAsync(User); var rubric = await _applicationDbContext.Rubrics.Include(r => r.Rows).SingleOrDefaultAsync(r => r.Id == rubricCreateModel.RubricId); if (rubric == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Rubric not found.")); } var newRubric = new Rubric { Title = rubricCreateModel.Title, ApplicationUserId = currentUser.Id, Description = rubric.Description, SubjectId = rubric.SubjectId, GradeId = rubric.GradeId, TotalRating = 0, IsPrivate = true, DateCreated = DateTime.Now }; _applicationDbContext.Rubrics.Add(newRubric); await _applicationDbContext.SaveChangesAsync(); var newRows = new List <Row>(); foreach (var oldRow in rubric.Rows) { var newRow = new Row { RubricId = newRubric.Id }; _applicationDbContext.Rows.Add(newRow); await _applicationDbContext.SaveChangesAsync(); var oldCells = await _applicationDbContext.Cells.Where(x => x.RowId == oldRow.Id).ToListAsync(); foreach (var oldCell in oldCells) { newRow.Cells.Add(new Cell { RowId = newRow.Id, Text = oldCell.Text }); } await _applicationDbContext.SaveChangesAsync(); } return(Json(newRubric.Id)); }