// GET: PersonSeeder
        public ActionResult Index()
        {
            var seedingState = _seedCoordinator.State;
            var state        = new PersonSeederStateModel(seedingState);

            return(View(state));
        }
        public ActionResult GetState()
        {
            var state = new PersonSeederStateModel(_seedCoordinator.State);

            // todo: an event-based solution to capturing these logs would be much better
            //       as you would be able to maintain, in user's session, a history of log events
            //       that have occurred.  opening two windows causes some weird stuff with this now.
            var logs = _capturingLoggerAdapter.LoggerEvents.ToList().Select(e => e.RenderedMessage).ToList();

            _capturingLoggerAdapter.LoggerEvents.Clear();
            state.AddLogs(logs);

            return(Json(state));
        }
        public ActionResult StopSeeding()
        {
            PersonSeederStateModel state;

            try
            {
                _seedCoordinator.Cancel();
                state = new PersonSeederStateModel(_seedCoordinator.State);
            }
            catch (Exception ex)
            {
                state = new PersonSeederStateModel(_seedCoordinator.State)
                {
                    ErrorMessage = ex.ToString()
                };
            }
            return(Json(state));
        }