public IEnumerable<IResult> ExecuteSearch()
        {
            yield return Show.Busy();
            var search = new SearchPrograms(SearchText)
                .AsQuery();
            yield return search;

            var responseCount = search.Response.Count();
            if (responseCount == 0)
                Results = new NoResultsViewModel();

            else if (responseCount == 1 && string.Compare(search.Response.First().Name, SearchText, true) == 0)
            {
                var getProgram = new GetProgram(search.Response.First().Id)
                    .AsQuery();

                yield return getProgram;
                yield return Show.Screen<ProgramOverviewViewModel>()
                    .Configured(x => x.WithData(getProgram.Response));
            }
            else if (responseCount > 0)
                Results = new ResultsViewModel(new ObservableCollection<IndividualResultViewModel>(search.Response));

            yield return Show.NotBusy();
        }
        public IEnumerator<IResult> GetAllPrograms()
        {
            var search = new GetAllPrograms()
                .AsQuery();
            yield return Show.Busy();
            yield return search;
            if (search.Response.Count() == 0)
                Results = new NoProgramsViewModel();
            else
                Results = new ResultsViewModel(new ObservableCollection<IndividualResultViewModel>(search.Response));

            yield return Show.NotBusy();
        }