Пример #1
0
        public override async Task Initialize()
        {
            await base.Initialize();

            var allClients = await interactorFactory.GetAllClientsInWorkspace(workspaceId).Execute();

            Clients = FilterText
                .Select(text => text ?? string.Empty)
                .Select(text =>
                {
                    var trimmedText = text.Trim();
                    var selectableViewModels = allClients
                        .Where(c => c.Name.ContainsIgnoringCase(trimmedText))
                        .Select(toSelectableViewModel);

                    var isClientFilterEmpty = string.IsNullOrEmpty(trimmedText);
                    var suggestCreation = !isClientFilterEmpty
                                          && allClients.None(c => c.Name == trimmedText)
                                          && trimmedText.LengthInBytes() <= MaxClientNameLengthInBytes;

                    if (suggestCreation)
                    {
                        var creationSelectableViewModel =
                            new SelectableClientCreationViewModel(trimmedText);
                        selectableViewModels = selectableViewModels.Prepend(creationSelectableViewModel);
                    }
                    else if (isClientFilterEmpty)
                    {
                        selectableViewModels = selectableViewModels.Prepend(noClient);
                    }

                    return selectableViewModels;
                });
        }
        public override async Task Initialize()
        {
            await base.Initialize();

            allClients = await interactorFactory.GetAllClientsInWorkspace(workspaceId).Execute();

            Suggestions.Add(noClient);
            Suggestions.AddRange(allClients.Select(c => new SelectableClientViewModel(c.Name, c.Id == selectedClientId)));
        }
Пример #3
0
        public override async Task Initialize()
        {
            await base.Initialize();

            var allClients = await interactorFactory
                             .GetAllClientsInWorkspace(workspaceId)
                             .Execute();

            Clients = FilterText
                      .Select(text => text?.Trim() ?? string.Empty)
                      .DistinctUntilChanged()
                      .Select(trimmedText => filterClientsByText(trimmedText, allClients))
                      .AsDriver(Enumerable.Empty <SelectableClientBaseViewModel>(), schedulerProvider);
        }
Пример #4
0
        public override async Task Initialize(SelectClientParameters parameter)
        {
            await base.Initialize(parameter);

            workspaceId      = parameter.WorkspaceId;
            selectedClientId = parameter.SelectedClientId;
            noClient         = new SelectableClientViewModel(0, Resources.NoClient, selectedClientId == 0);

            var allClients = await interactorFactory
                             .GetAllClientsInWorkspace(workspaceId)
                             .Execute();

            Clients = FilterText
                      .Select(text => text?.Trim() ?? string.Empty)
                      .DistinctUntilChanged()
                      .Select(trimmedText => filterClientsByText(trimmedText, allClients))
                      .AsDriver(ImmutableList <SelectableClientBaseViewModel> .Empty, schedulerProvider);
        }