Exemplo n.º 1
0
        public async Task <IActionResult> Archive(Guid id)
        {
            var question = await _dbContext.SurveyQuestions.FirstOrDefaultAsync(q => q.Id == id);

            if (question == null)
            {
                return(NotFound());
            }

            using (var transaction = _dbContext.Database.BeginTransaction())
            {
                var archivedQuestion = new ArchivedSurveyQuestion
                {
                    Id             = question.Id,
                    QuestionNumber = question.QuestionNumber,
                    TypeId         = question.TypeId,
                    Text           = question.Text,
                    UserArchivedBy = Guid.NewGuid(),
                    //TODO: Add this back in once we have the login portion incorporated. Need to get the user ID.
                    //UserArchivedBy = User.Identity.Name,
                    ArchivedAtUtc = DateTime.UtcNow,
                    ActiveStatus  = question.ActiveStatus
                };

                await _dbContext.ArchivedSurveyQuestions.AddAsync(archivedQuestion);

                await _dbContext.SaveChangesAsync();

                _dbContext.SurveyQuestions.Remove(question);
                await _dbContext.SaveChangesAsync();

                transaction.Commit();
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Archive(Guid id)
        {
            var question = await _dbContext.SurveyQuestions.FirstOrDefaultAsync(q => q.Id == id);

            if (question == null)
            {
                return(NotFound());
            }

            using (var transaction = _dbContext.Database.BeginTransaction())
            {
                ApplicationUser applicationUser = await _userManager.GetUserAsync(User);

                var archivedQuestion = new ArchivedSurveyQuestion
                {
                    Id             = question.Id,
                    QuestionNumber = question.QuestionNumber,
                    TypeId         = question.TypeId,
                    Text           = question.Text,
                    UserArchivedBy = applicationUser.UserName,
                    ArchivedAtUtc  = DateTime.UtcNow,
                    ActiveStatus   = QuestionActiveStatus.Archived
                };

                await _dbContext.ArchivedSurveyQuestions.AddAsync(archivedQuestion);

                await _dbContext.SaveChangesAsync();

                _dbContext.SurveyQuestions.Remove(question);
                await _dbContext.SaveChangesAsync();

                transaction.Commit();
            }

            return(RedirectToAction("Index"));
        }