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")); }
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")); }