Пример #1
0
        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"));
        }
Пример #2
0
        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));
        }