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();
        }
Пример #2
0
        public IEnumerable<IResult> AssignUser()
        {
            var assignUser = new AssignUser(ProgramId, Version, Username, Key, SelectedUser).AsCommand();
            var getProgram = new GetProgram(ProgramId).AsQuery();
            yield return getProgram;

            yield return Show.Screen<ProgramOverviewViewModel>()
                             .Configured(x => x.WithData(getProgram.Response)
                                               .SelectedTab(x.Versions.Single(v => v.Version == Version)));
            yield return assignUser;
        }
Пример #3
0
        public IEnumerable<IResult> AddProgram()
        {
            yield return Show.Busy();
            var addProgram = new AddProgram(Name, Notes)
                .AsCommand();

            _wasSaved = true;
            yield return addProgram;
            var getProgram = new GetProgram(addProgram.Command.GeneratedId)
                .AsQuery();
            yield return getProgram;
            yield return Show.Screen<ProgramOverviewViewModel>().Configured(x => x.WithData(getProgram.Response));
            yield return Show.NotBusy();
        }