private IObservable <TextFieldInfo> setBillableValues(TextFieldInfo textFieldInfo)
        {
            long?projectId  = textFieldInfo.ProjectId;
            var  hasProject = projectId.HasValue && projectId.Value != ProjectSuggestion.NoProjectId;

            if (hasProject)
            {
                var defaultsToBillable = interactorFactory.ProjectDefaultsToBillable(projectId.Value).Execute();
                var billableAvailable  =
                    interactorFactory.IsBillableAvailableForProject(projectId.Value).Execute()
                    .Do(isBillableAvailable.Accept);

                return(Observable.CombineLatest(billableAvailable, defaultsToBillable, And)
                       .Do(isBillable.Accept)
                       .SelectValue(textFieldInfo));
            }

            isBillable.Accept(false);
            return(interactorFactory.IsBillableAvailableForWorkspace(textFieldInfo.WorkspaceId).Execute()
                   .Do(isBillableAvailable.Accept)
                   .SelectValue(textFieldInfo));
        }