public IActionResult ProcessForm(List <int> question, List <string> answer, string submit, string save, string restore) { SurveyState state = new SurveyState(); state.Questions = question; state.Answers = answer; Survey survey = new Survey(state); if (submit != null) { Caretaker.Snapshot = null; survey.Submit(); ViewBag.Message = "Survey data submitted!"; } if (save != null) { Caretaker.Snapshot = survey.CreateSnapshot(); ViewBag.Message = "Snapshot created!"; } if (restore != null) { survey.RestoreSnapshot(Caretaker.Snapshot); ViewBag.Message = "Survey restored!"; } ViewBag.Answers = survey.GetAnswers(); using (AppDbContext db = new AppDbContext()) { List <Question> model = db.Questions.ToList(); return(View("Index", model)); } }
static void Main(string[] args) { Console.WriteLine("Memento pattern demo..."); List <IMemento <SurveyState> > surveySnapshot = new List <IMemento <SurveyState> >(); //Caretaker var survey = new Survey() { Name = "test" }; survey.AddAnswer(1, "I like c#"); survey.AddAnswer(2, "Yes"); Console.WriteLine(survey); Console.WriteLine("---"); surveySnapshot.Add(survey.CreateSnapshot()); survey.AddAnswer(3, "No"); Console.WriteLine(survey); Console.WriteLine("---"); survey.RestoreSnapshot(surveySnapshot.Last()); Console.WriteLine(survey); Console.WriteLine("---"); }