public IActionResult Index()
        {
            var model = new PollCreatorViewModel
            {
                StartDate = DateTime.Today,
                EndDate = DateTime.Today.AddDays(1)
            };

            model.StartTime = DateTime.Now.AddMinutes(10);
            model.EndTime = DateTime.Now.AddMinutes(10);

            return View(model);
        }
        public async Task<IActionResult> Index(PollCreatorViewModel model)
        {
            PollConfirmationViewModel confirmModel = new PollConfirmationViewModel();
            try
            {
                var pollDefinition = new PollDefinition
                {
                    Title = model.Title,
                    Question = model.Question,
                    AuthorEmail = model.AuthorEmail,
                    Options = new Dictionary<string, PollDefinition.Option>()
                };
                pollDefinition.StartTime = model.StartDate.Date.Add(model.StartTime.TimeOfDay);
                pollDefinition.EndTime = model.EndDate.Date.Add(model.EndTime.TimeOfDay);

                string line;
                using (var reader = new StringReader(model.Options))
                {
                    int index = 0;
                    while ((line = reader.ReadLine()) != null)
                    {
                        pollDefinition.Options.Add(index.ToString(), new PollDefinition.Option { Text = line });
                        index++;
                    }
                }

                await this._pollWriter.Save(pollDefinition);

                confirmModel.Title = pollDefinition.Title;
                confirmModel.StartTime = pollDefinition.StartTime;
                confirmModel.EndTime = pollDefinition.EndTime;
                confirmModel.Success = true;
            }
            catch(Exception e)
            {
                confirmModel.Success = false;
                confirmModel.ErrorMessage = string.Format("Unknown error saving poll: {0}", e.Message);
            }

            return View("Confirmation", confirmModel);
        }