예제 #1
0
 /// <summary>
 /// This returns a service provider with everything mocked except for 
 /// RepositoryCloneService and RepositoryCreationService, which are real
 /// instances.
 /// </summary>
 /// <param name="cloneService"></param>
 /// <param name="creationService"></param>
 /// <returns></returns>
 public static IServiceProvider GetServiceProvider(
     IRepositoryCloneService cloneService = null,
     IRepositoryCreationService creationService = null,
     IAvatarProvider avatarProvider = null)
 {
     var ret = Substitute.For<IServiceProvider, IUIProvider>();
     var os = OperatingSystem;
     var vs = IVSServices;
     var clone = cloneService ?? new RepositoryCloneService(os, vs);
     var create = creationService ?? new RepositoryCreationService(clone);
     avatarProvider = avatarProvider ?? Substitute.For<IAvatarProvider>();
     ret.GetService(typeof(IGitRepositoriesExt)).Returns(IGitRepositoriesExt);
     ret.GetService(typeof(IGitService)).Returns(IGitService);
     ret.GetService(typeof(IVSServices)).Returns(vs);
     ret.GetService(typeof(IOperatingSystem)).Returns(os);
     ret.GetService(typeof(IRepositoryCloneService)).Returns(clone);
     ret.GetService(typeof(IRepositoryCreationService)).Returns(create);
     ret.GetService(typeof(IRepositoryHosts)).Returns(RepositoryHosts);
     ret.GetService(typeof(IExportFactoryProvider)).Returns(ExportFactoryProvider);
     ret.GetService(typeof(IConnection)).Returns(Connection);
     ret.GetService(typeof(IConnectionManager)).Returns(ConnectionManager);
     ret.GetService(typeof(IAvatarProvider)).Returns(avatarProvider);
     ret.GetService(typeof(ITwoFactorChallengeHandler)).Returns(TwoFactorChallengeHandler);
     return ret;
 }
 RepositoryCreationViewModel(
     IConnectionRepositoryHostMap connectionRepositoryHostMap,
     IOperatingSystem operatingSystem,
     IRepositoryCreationService repositoryCreationService,
     IAvatarProvider avatarProvider)
     : this(connectionRepositoryHostMap.CurrentRepositoryHost, operatingSystem, repositoryCreationService, avatarProvider)
 {}
예제 #3
0
        /// <summary>
        /// This returns a service provider with everything mocked except for 
        /// RepositoryCloneService and RepositoryCreationService, which are real
        /// instances.
        /// </summary>
        /// <param name="cloneService"></param>
        /// <param name="creationService"></param>
        /// <returns></returns>
        public static IServiceProvider GetServiceProvider(
            IRepositoryCloneService cloneService = null,
            IRepositoryCreationService creationService = null,
            IAvatarProvider avatarProvider = null)
        {
            var ret = Substitute.For<IServiceProvider, IUIProvider>();

            var gitservice = IGitService;
            var cm = Substitute.For<SComponentModel, IComponentModel>();
            var cc = new CompositionContainer(CompositionOptions.IsThreadSafe | CompositionOptions.DisableSilentRejection);
            cc.ComposeExportedValue(gitservice);
            ((IComponentModel)cm).DefaultExportProvider.Returns(cc);
            ret.GetService(typeof(SComponentModel)).Returns(cm);

            var os = OperatingSystem;
            var vs = IVSServices;
            var clone = cloneService ?? new RepositoryCloneService(os, vs);
            var create = creationService ?? new RepositoryCreationService(clone);
            avatarProvider = avatarProvider ?? Substitute.For<IAvatarProvider>();
            ret.GetService(typeof(IGitRepositoriesExt)).Returns(IGitRepositoriesExt);
            ret.GetService(typeof(IGitService)).Returns(gitservice);
            ret.GetService(typeof(IVSServices)).Returns(vs);
            ret.GetService(typeof(IOperatingSystem)).Returns(os);
            ret.GetService(typeof(IRepositoryCloneService)).Returns(clone);
            ret.GetService(typeof(IRepositoryCreationService)).Returns(create);
            ret.GetService(typeof(IRepositoryHosts)).Returns(RepositoryHosts);
            ret.GetService(typeof(IExportFactoryProvider)).Returns(ExportFactoryProvider);
            ret.GetService(typeof(IConnection)).Returns(Connection);
            ret.GetService(typeof(IConnectionManager)).Returns(ConnectionManager);
            ret.GetService(typeof(IAvatarProvider)).Returns(avatarProvider);
            ret.GetService(typeof(ITwoFactorChallengeHandler)).Returns(TwoFactorChallengeHandler);
            return ret;
        }
예제 #4
0
        public virtual void SetUp()
        {
            _inner = Substitute.For <IAvatarProvider>();

            _inner.GetAvatarAsync(_email1, _name1, _size).Returns(Task.FromResult(_img1));
            _inner.GetAvatarAsync(_email2, _name2, _size).Returns(Task.FromResult(_img2));
            _inner.GetAvatarAsync(_email3, _name3, _size).Returns(Task.FromResult(_img3));
            _inner.GetAvatarAsync(_email4, _name4, _size).Returns(Task.FromResult(_img4));
            _inner.GetAvatarAsync(_emailMissing, _nameMissing, _size).Returns(Task.FromResult((Image)null));
        }
예제 #5
0
 public ModelServiceFactory(
     IApiClientFactory apiClientFactory,
     IGraphQLClientFactory graphQLClientFactory,
     IHostCacheFactory hostCacheFactory,
     IAvatarProvider avatarProvider)
 {
     this.apiClientFactory     = apiClientFactory;
     this.graphQLClientFactory = graphQLClientFactory;
     this.hostCacheFactory     = hostCacheFactory;
     this.avatarProvider       = avatarProvider;
 }
예제 #6
0
 public ModelService(
     IApiClient apiClient,
     Octokit.GraphQL.IConnection graphql,
     IBlobCache hostCache,
     IAvatarProvider avatarProvider)
 {
     this.ApiClient      = apiClient;
     this.graphql        = graphql;
     this.hostCache      = hostCache;
     this.avatarProvider = avatarProvider;
 }
예제 #7
0
 static ModelService CreateTarget(
     IApiClient apiClient           = null,
     Octokit.IConnection graphql    = null,
     IBlobCache hostCache           = null,
     IAvatarProvider avatarProvider = null)
 {
     return(new ModelService(
                apiClient ?? Substitute.For <IApiClient>(),
                hostCache ?? new InMemoryBlobCache(),
                Substitute.For <IAvatarProvider>()));
 }
예제 #8
0
 public ModelServiceFactory(
     IApiClientFactory apiClientFactory,
     IHostCacheFactory hostCacheFactory,
     IAvatarProvider avatarProvider,
     [Import(AllowDefault = true)] JoinableTaskContext joinableTaskContext)
 {
     this.apiClientFactory = apiClientFactory;
     this.hostCacheFactory = hostCacheFactory;
     this.avatarProvider   = avatarProvider;
     JoinableTaskContext   = joinableTaskContext ?? ThreadHelper.JoinableTaskContext;
 }
예제 #9
0
        public MentionsAutoCompleteSource(
            ITeamExplorerContext teamExplorerContext,
            IGraphQLClientFactory graphqlFactory,
            IAvatarProvider avatarProvider)
        {
            Guard.ArgumentNotNull(teamExplorerContext, nameof(teamExplorerContext));
            Guard.ArgumentNotNull(graphqlFactory, nameof(graphqlFactory));
            Guard.ArgumentNotNull(avatarProvider, nameof(avatarProvider));

            this.teamExplorerContext = teamExplorerContext;
            this.graphqlFactory      = graphqlFactory;
            this.avatarProvider      = avatarProvider;
        }
        public static void StartInitialization()
        {
            lock (initSyncMutex)
            {
                InitAvatarSdkMgrIfNeeded();

                if (!IsInitialized && !IsInitializationInProgress)
                {
                    avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>();
                    initRoutine    = EditorRunner.instance.Run(InitRoutine());
                }
            }
        }
 public RepositoryHostFactory(
     IApiClientFactory apiClientFactory,
     IHostCacheFactory hostCacheFactory,
     ILoginCache loginCache,
     IAvatarProvider avatarProvider,
     ITwoFactorChallengeHandler twoFactorChallengeHandler)
 {
     this.apiClientFactory = apiClientFactory;
     this.hostCacheFactory = hostCacheFactory;
     this.loginCache = loginCache;
     this.avatarProvider = avatarProvider;
     this.twoFactorChallengeHandler = twoFactorChallengeHandler;
 }
예제 #12
0
 public RepositoryHostFactory(
     IApiClientFactory apiClientFactory,
     IHostCacheFactory hostCacheFactory,
     ILoginCache loginCache,
     IAvatarProvider avatarProvider,
     ITwoFactorChallengeHandler twoFactorChallengeHandler)
 {
     this.apiClientFactory          = apiClientFactory;
     this.hostCacheFactory          = hostCacheFactory;
     this.loginCache                = loginCache;
     this.avatarProvider            = avatarProvider;
     this.twoFactorChallengeHandler = twoFactorChallengeHandler;
 }
예제 #13
0
        private IEnumerator Initialize()
        {
            // First of all, initialize the SDK. This sample shows how to provide user-defined implementations for
            // the interfaces if needed. If you don't need to override the default behavior, just pass null instead.
            if (!AvatarSdkMgr.IsInitialized)
            {
                AvatarSdkMgr.Init(
                    stringMgr: stringManager,
                    storage: persistentStorage,
                    sdkType: sdkType
                    );
            }

            GameObject providerContainerGameObject = GameObject.Find("AvatarProviderContainer");

            if (providerContainerGameObject != null)
            {
                avatarProvider = providerContainerGameObject.GetComponent <AvatarProviderContainer>().avatarProvider;
            }
            else
            {
                // Initialization of the IAvatarProvider may take some time.
                // We don't want to initialize it each time when the Gallery scene is loaded.
                // So we store IAvatarProvider instance in the object that will not destroyed during navigation between the scenes (Gallery -> ModelViewer -> Gallery).
                providerContainerGameObject = new GameObject("AvatarProviderContainer");
                DontDestroyOnLoad(providerContainerGameObject);
                AvatarProviderContainer providerContainer = providerContainerGameObject.AddComponent <AvatarProviderContainer>();
                avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>();
                providerContainer.avatarProvider = avatarProvider;

                var initializeRequest = InitializeAvatarProviderAsync();
                yield return(Await(initializeRequest, null));

                if (initializeRequest.IsError)
                {
                    Debug.LogError("Avatar provider isn't initialized!");
                    yield break;
                }
            }

            yield return(UpdateAvatarList());

            // disable generation buttons until avatar provider initializes
            foreach (var button in galleryControls.GetComponentsInChildren <Button>(false))
            {
                if (button.name.Contains("Generate"))
                {
                    button.interactable = true;
                }
            }
        }
예제 #14
0
 public RepositoryHostFactory(
     IApiClientFactory apiClientFactory,
     IHostCacheFactory hostCacheFactory,
     ILoginManager loginManager,
     ILoginCache loginCache,
     IAvatarProvider avatarProvider,
     IUsageTracker usage)
 {
     this.apiClientFactory = apiClientFactory;
     this.hostCacheFactory = hostCacheFactory;
     this.loginManager     = loginManager;
     this.loginCache       = loginCache;
     this.avatarProvider   = avatarProvider;
     this.usage            = usage;
 }
예제 #15
0
        public static void StartInitialization()
        {
            lock (initSyncMutex)
            {
                if (!AvatarSdkMgr.IsInitialized)
                {
                    Debug.Log("AvatarSdkMgr.Init");
                    AvatarSdkMgr.Init(sdkType: SdkType.Offline);
                }

                if (!IsInitialized && !IsInitializationInProgress)
                {
                    avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>();
                    initRoutine    = EditorRunner.instance.Run(InitRoutine());
                }
            }
        }
예제 #16
0
    void Start()
    {
        Screen.fullScreen  = false;
        Screen.orientation = ScreenOrientation.Portrait;

        AppSocket.SetOnReceiveHandler(OnReceive);

        if (!AvatarSdkMgr.IsInitialized)
        {
            AvatarSdkMgr.Init();
        }

        avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>();
        QualitySettings.antiAliasing = 2;

        AppSocket.SendCommand(AppSocket.SendType.UNITY_LOADED);

        if (Application.platform != RuntimePlatform.Android)
        {
            QualitySettings.antiAliasing = 8;
            String marcoBody      = "mech_ferrari";
            String marcoAvatar    = "3907ed35-7071-4ed1-b242-169cb3abc237";
            String marcoHair      = "male_NewSea_J082m";
            String marcoHairColor = "#3E271F";

            String paolaBody      = "sport_female_m";
            String paolaAvatar    = "7d910c92-b62c-4084-8f42-749a2cb94eb2";
            String paolaHair      = "female_NewSea_J096f";
            String paolaHairColor = "#202020";

            String aliceBody      = "medic_female";
            String aliceAvatar    = "063f8e92-4675-4bee-8f4f-a303779b4e3c";
            String aliceHair      = "female_NewSea_J123f";
            String aliceHairColor = "#3E271F";


            if (playerObj != null)
            {
                CreateAvatar("b7ce00b9-3589-4dbd-9b5b-2466233e9d89", paolaAvatar, paolaHair, paolaHairColor);
            }
            else
            {
                CreateAvatar("b7ce00b9-3589-4dbd-9b5b-2466233e9d89", marcoBody, marcoAvatar, marcoHair, marcoHairColor);
            }
        }
    }
예제 #17
0
        private void OnEnable()
        {
            if (!AvatarMakerInitializer.IsPlatformSupported())
            {
                Debug.LogError("Avatar plugin supports only Windows platform and works in the Editor mode.");
                return;
            }

            if (!AvatarMakerInitializer.IsInitialized)
            {
                AvatarMakerInitializer.StartInitialization();
            }

            avatarProvider = AvatarMakerInitializer.AvatarProvider;

            UpdateAvatarList();
        }
예제 #18
0
        public AvatarColumnProvider(RevisionDataGridView revisionGridView, IAvatarProvider avatarProvider)
            : base("Avatar")
        {
            _revisionGridView = revisionGridView;
            _avatarProvider   = avatarProvider;

            _avatarProvider.CacheCleared += _revisionGridView.Invalidate;

            Column = new DataGridViewTextBoxColumn
            {
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                HeaderText   = "Avatar",
                ReadOnly     = true,
                SortMode     = DataGridViewColumnSortMode.NotSortable,
                Resizable    = DataGridViewTriState.False,
                Width        = DpiUtil.Scale(32)
            };
        }
        /// <summary>
        /// This returns a service provider with everything mocked except for
        /// RepositoryCloneService and RepositoryCreationService, which are real
        /// instances.
        /// </summary>
        /// <param name="cloneService"></param>
        /// <param name="creationService"></param>
        /// <returns></returns>
        public static IGitHubServiceProvider GetServiceProvider(
            IRepositoryCloneService cloneService       = null,
            IRepositoryCreationService creationService = null,
            IAvatarProvider avatarProvider             = null)
        {
            var ret = Substitute.For <IGitHubServiceProvider, IServiceProvider>();

            var gitservice = IGitService;
            var cm         = Substitute.For <SComponentModel, IComponentModel>();
            var cc         = new CompositionContainer(CompositionOptions.IsThreadSafe | CompositionOptions.DisableSilentRejection);

            cc.ComposeExportedValue(gitservice);
            ((IComponentModel)cm).DefaultExportProvider.Returns(cc);
            ret.GetService(typeof(SComponentModel)).Returns(cm);
            Services.UnitTestServiceProvider = ret;

            var os    = OperatingSystem;
            var vsgit = IVSGitServices;
            var clone = cloneService ?? new RepositoryCloneService(os, vsgit, Substitute.For <ITeamExplorerServices>(),
                                                                   Substitute.For <IGraphQLClientFactory>(), Substitute.For <IGitHubContextService>(),
                                                                   Substitute.For <IUsageTracker>(), ret);
            var create = creationService ?? new RepositoryCreationService(clone);

            avatarProvider = avatarProvider ?? Substitute.For <IAvatarProvider>();
            ret.GetService(typeof(IGitService)).Returns(gitservice);
            ret.GetService(typeof(IVSServices)).Returns(Substitute.For <IVSServices>());
            ret.GetService(typeof(ITeamExplorerServices)).Returns(Substitute.For <ITeamExplorerServices>());
            ret.GetService(typeof(IGraphQLClientFactory)).Returns(Substitute.For <IGraphQLClientFactory>());
            ret.GetService(typeof(IGitHubContextService)).Returns(Substitute.For <IGitHubContextService>());
            ret.GetService(typeof(IVSGitExt)).Returns(Substitute.For <IVSGitExt>());
            ret.GetService(typeof(IUsageTracker)).Returns(Substitute.For <IUsageTracker>());
            ret.GetService(typeof(IVSGitServices)).Returns(vsgit);
            ret.GetService(typeof(IOperatingSystem)).Returns(os);
            ret.GetService(typeof(IRepositoryCloneService)).Returns(clone);
            ret.GetService(typeof(IRepositoryCreationService)).Returns(create);
            ret.GetService(typeof(IViewViewModelFactory)).Returns(ViewViewModelFactory);
            ret.GetService(typeof(IConnection)).Returns(Connection);
            ret.GetService(typeof(IConnectionManager)).Returns(ConnectionManager);
            ret.GetService(typeof(IAvatarProvider)).Returns(avatarProvider);
            ret.GetService(typeof(IDelegatingTwoFactorChallengeHandler)).Returns(TwoFactorChallengeHandler);
            ret.GetService(typeof(IGistPublishService)).Returns(GistPublishService);
            ret.GetService(typeof(IPullRequestService)).Returns(PullRequestService);
            return(ret);
        }
예제 #20
0
        private IEnumerator InitializeScene()
        {
            if (initParams != null)
            {
                avatarProvider    = initParams.avatarProvider;
                sceneToReturn     = initParams.sceneToReturn;
                currentAvatarCode = initParams.avatarCode;
                useAnimations     = initParams.useAnimations;

#if !UNITY_WEBGL
                IMeshConverter meshConverter = AvatarSdkMgr.IoCContainer.Create <IMeshConverter>();
                if (meshConverter.IsObjConvertEnabled)
                {
                    convertToObjButton.gameObject.SetActive(true);
                }

                if (meshConverter.IsFBXExportEnabled)
                {
                    fbxExportButton.gameObject.SetActive(true);
                }
#endif

#if UNITY_EDITOR
                prefabButton.gameObject.SetActive(true);
#endif
                settingsPanel.SetActive(initParams.showSettings);
                animationsPanel.SetActive(initParams.useAnimations);
                blendshapesPanel.SetActive(!initParams.useAnimations);
                if (initParams.faceAvatarRequest != null)
                {
                    isWebGLDemo    = true;
                    headAvatarCode = currentAvatarCode;
                    StartCoroutine(WaitFaceAvatarCalculations(initParams.faceAvatarRequest));
                }
                initParams = null;

                yield return(ShowAvatar(currentAvatarCode));
            }
            else
            {
                Debug.LogError("Scene parameters were no set!");
            }
        }
예제 #21
0
        public AvatarColumnProvider(RevisionDataGridView revisionGridView, IAvatarProvider avatarProvider, IAvatarCacheCleaner avatarCacheCleaner)
            : base("Avatar")
        {
            _revisionGridView   = revisionGridView;
            _avatarProvider     = avatarProvider;
            _avatarCacheCleaner = avatarCacheCleaner;

            _avatarCacheCleaner.CacheCleared += (sender, args) => _revisionGridView.Invalidate();

            Column = new DataGridViewTextBoxColumn
            {
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                HeaderText   = "Avatar",
                ReadOnly     = true,
                SortMode     = DataGridViewColumnSortMode.NotSortable,
                Resizable    = DataGridViewTriState.False,
                Width        = DpiUtil.Scale(32),
                Visible      = AppSettings.ShowAuthorAvatarColumn
            };
        }
예제 #22
0
        /// <summary>
        /// This returns a service provider with everything mocked except for
        /// RepositoryCloneService and RepositoryCreationService, which are real
        /// instances.
        /// </summary>
        /// <param name="cloneService"></param>
        /// <param name="creationService"></param>
        /// <returns></returns>
        public static IGitHubServiceProvider GetServiceProvider(
            IRepositoryCloneService cloneService       = null,
            IRepositoryCreationService creationService = null,
            IAvatarProvider avatarProvider             = null)
        {
            var ret = Substitute.For <IGitHubServiceProvider, IServiceProvider>();

            var gitservice = IGitService;
            var cm         = Substitute.For <SComponentModel, IComponentModel>();
            var cc         = new CompositionContainer(CompositionOptions.IsThreadSafe | CompositionOptions.DisableSilentRejection);

            cc.ComposeExportedValue(gitservice);
            ((IComponentModel)cm).DefaultExportProvider.Returns(cc);
            ret.GetService(typeof(SComponentModel)).Returns(cm);
            Services.PackageServiceProvider = ret;

            var os     = OperatingSystem;
            var vsgit  = IVSGitServices;
            var clone  = cloneService ?? new RepositoryCloneService(os, vsgit);
            var create = creationService ?? new RepositoryCreationService(clone);

            avatarProvider = avatarProvider ?? Substitute.For <IAvatarProvider>();
            //ret.GetService(typeof(IGitRepositoriesExt)).Returns(IGitRepositoriesExt);
            ret.GetService(typeof(IGitService)).Returns(gitservice);
            ret.GetService(typeof(IVSServices)).Returns(Substitute.For <IVSServices>());
            ret.GetService(typeof(IVSGitServices)).Returns(vsgit);
            ret.GetService(typeof(IOperatingSystem)).Returns(os);
            ret.GetService(typeof(IRepositoryCloneService)).Returns(clone);
            ret.GetService(typeof(IRepositoryCreationService)).Returns(create);
            ret.GetService(typeof(IRepositoryHosts)).Returns(RepositoryHosts);
            ret.GetService(typeof(IExportFactoryProvider)).Returns(ExportFactoryProvider);
            ret.GetService(typeof(IUIFactory)).Returns(UIFactory);
            ret.GetService(typeof(IConnection)).Returns(Connection);
            ret.GetService(typeof(IConnectionManager)).Returns(ConnectionManager);
            ret.GetService(typeof(IAvatarProvider)).Returns(avatarProvider);
            ret.GetService(typeof(ITwoFactorChallengeHandler)).Returns(TwoFactorChallengeHandler);
            ret.GetService(typeof(IGistPublishService)).Returns(GistPublishService);
            ret.GetService(typeof(IPullRequestService)).Returns(PullRequestService);
            ret.GetService(typeof(IUIProvider)).Returns(UIProvider);
            return(ret);
        }
        public void InitItems(string avatarCode, List <string> items, IAvatarProvider avatarProvider)
        {
            AvatarSdkMgr.StopCoroutine("DisplayPreviews");
            this.avatarCode     = avatarCode;
            this.avatarProvider = avatarProvider;

            InitItems(items);

            List <Toggle> previewToggles = new List <Toggle>();

            foreach (Toggle t in toggles)
            {
                Text statusText = Utils.FindSubobjectByName(t.gameObject, "StatusText").GetComponentInChildren <Text>();

                string haircutId = t.GetComponentInChildren <ToggleId>().Id;
                if (haircutId == BALD_HAIRCUT_NAME)
                {
                    statusText.text = "none";
                }
                else
                {
                    statusText.text = "Loading...";
                    previewToggles.Add(t);
                }

                t.onValueChanged.AddListener(isOn =>
                {
                    if (isOn && isShown)
                    {
                        OnDoneClick();
                    }
                });
            }

            AvatarSdkMgr.SpawnCoroutine(DisplayPreviews(previewToggles));
        }
예제 #24
0
 public ProjectController(IServiceProvider services, IAvatarProvider avatar, IPermissionProvider <Project, ProjectCreateModel> permission) : base(services)
 {
     _avatar     = avatar;
     _permission = permission;
 }
            public AvatarProviderTab(IAvatarProvider provider, QWidget parent)
                : base(parent)
            {
                m_Provider = provider;

                QObject.Connect(base.Page().MainFrame(), Qt.SIGNAL("javaScriptWindowObjectCleared()"), delegate {
                    base.Page().MainFrame().AddToJavaScriptWindowObject("AvatarSelectDialog", parent.TopLevelWidget());
                });

                base.SetHtml(String.Empty);
            }
예제 #26
0
 public AvatarController(IAvatarProvider avatarProvider)
 {
     this.avatarProvider = avatarProvider ?? throw new ArgumentNullException(nameof(avatarProvider));
 }
예제 #27
0
 public AvatarPersistentCache(IAvatarProvider inner, IAvatarGenerator avatarGenerator, IFileSystem fileSystem = null)
 {
     _inner           = inner;
     _avatarGenerator = avatarGenerator;
     _fileSystem      = fileSystem ?? new FileSystem();
 }
 /// <summary>
 /// Initialize avatar provider
 /// </summary>
 protected virtual IEnumerator Initialize()
 {
     avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>();
     yield return(Await(avatarProvider.InitializeAsync()));
 }
 internal CustomAvatarManager(PacketManager packetManager, FloorController floorController, PlayerAvatarManager avatarManager, IMultiplayerSessionManager sessionManager, IAvatarProvider <LoadedAvatar> avatarProvider)
 {
     _packetManager   = packetManager;
     _avatarManager   = avatarManager;
     _sessionManager  = sessionManager;
     _avatarProvider  = avatarProvider;
     _floorController = floorController;
 }
예제 #30
0
 public OrganizationController(IServiceProvider services, IAvatarProvider avatar) : base(services)
 {
     _avatar = avatar;
 }
예제 #31
0
        public RepositoryCreationViewModel(
            IRepositoryHost repositoryHost,
            IOperatingSystem operatingSystem,
            IRepositoryCreationService repositoryCreationService,
            IAvatarProvider avatarProvider)
        {
            this.repositoryHost            = repositoryHost;
            this.operatingSystem           = operatingSystem;
            this.repositoryCreationService = repositoryCreationService;

            Title = string.Format(CultureInfo.CurrentCulture, Resources.CreateTitle, repositoryHost.Title);
            SelectedGitIgnoreTemplate = GitIgnoreItem.None;
            SelectedLicense           = LicenseItem.None;

            accounts = repositoryHost.ModelService.GetAccounts()
                       .ObserveOn(RxApp.MainThreadScheduler)
                       .ToProperty(this, vm => vm.Accounts, initialValue: new ReadOnlyCollection <IAccount>(new IAccount[] {}));

            this.WhenAny(x => x.Accounts, x => x.Value)
            .WhereNotNull()
            .Where(accts => accts.Any())
            .Subscribe(accts => {
                var selectedAccount = accts.FirstOrDefault();
                if (selectedAccount != null)
                {
                    SelectedAccount = accts.FirstOrDefault();
                }
            });

            browseForDirectoryCommand.Subscribe(_ => ShowBrowseForDirectoryDialog());

            BaseRepositoryPathValidator = this.CreateBaseRepositoryPathValidator();

            var nonNullRepositoryName = this.WhenAny(
                x => x.RepositoryName,
                x => x.BaseRepositoryPath,
                (x, y) => x.Value)
                                        .WhereNotNull();

            RepositoryNameValidator = ReactivePropertyValidator.ForObservable(nonNullRepositoryName)
                                      .IfNullOrEmpty(Resources.RepositoryNameValidatorEmpty)
                                      .IfTrue(x => x.Length > 100, Resources.RepositoryNameValidatorTooLong)
                                      .IfTrue(IsAlreadyRepoAtPath, Resources.RepositoryNameValidatorAlreadyExists);

            SafeRepositoryNameWarningValidator = ReactivePropertyValidator.ForObservable(nonNullRepositoryName)
                                                 .Add(repoName =>
            {
                var parsedReference = GetSafeRepositoryName(repoName);
                return(parsedReference != repoName ? String.Format(CultureInfo.CurrentCulture, Resources.SafeRepositoryNameWarning, parsedReference) : null);
            });

            this.WhenAny(x => x.BaseRepositoryPathValidator.ValidationResult, x => x.Value)
            .Subscribe();

            CreateRepository = InitializeCreateRepositoryCommand();

            canKeepPrivate = CanKeepPrivateObservable.CombineLatest(CreateRepository.IsExecuting,
                                                                    (canKeep, publishing) => canKeep && !publishing)
                             .ToProperty(this, x => x.CanKeepPrivate);

            isCreating = CreateRepository.IsExecuting
                         .ToProperty(this, x => x.IsCreating);

            gitIgnoreTemplates = repositoryHost.ModelService.GetGitIgnoreTemplates()
                                 .ObserveOn(RxApp.MainThreadScheduler)
                                 .ToProperty(this, x => x.GitIgnoreTemplates, initialValue: new GitIgnoreItem[] { });

            this.WhenAny(x => x.GitIgnoreTemplates, x => x.Value)
            .WhereNotNull()
            .Where(ignores => ignores.Any())
            .Subscribe(ignores =>
            {
                SelectedGitIgnoreTemplate = ignores.FirstOrDefault(
                    template => template.Name.Equals("VisualStudio", StringComparison.OrdinalIgnoreCase));
            });

            licenses = repositoryHost.ModelService.GetLicenses()
                       .ObserveOn(RxApp.MainThreadScheduler)
                       .ToProperty(this, x => x.Licenses, initialValue: new LicenseItem[] { });

            BaseRepositoryPath = repositoryCreationService.DefaultClonePath;
        }
예제 #32
0
 public FileSystemAvatarCache(IAvatarProvider inner, IFileSystem fileSystem = null)
 {
     _inner      = inner;
     _fileSystem = fileSystem ?? new FileSystem();
 }
        public RepositoryCreationViewModel(
            IRepositoryHost repositoryHost,
            IOperatingSystem operatingSystem,
            IRepositoryCreationService repositoryCreationService,
            IAvatarProvider avatarProvider)
        {
            this.repositoryHost = repositoryHost;
            this.operatingSystem = operatingSystem;
            this.repositoryCreationService = repositoryCreationService;

            Title = string.Format(CultureInfo.CurrentCulture, "Create a {0} Repository", repositoryHost.Title);
            SelectedGitIgnoreTemplate = GitIgnoreItem.None;
            SelectedLicense = LicenseItem.None;

            accounts = repositoryHost.ModelService.GetAccounts()
                .ObserveOn(RxApp.MainThreadScheduler)
                .ToProperty(this, vm => vm.Accounts, initialValue: new ReadOnlyCollection<IAccount>(new IAccount[] {}));
            
            this.WhenAny(x => x.Accounts, x => x.Value)
                .WhereNotNull()
                .Where(accts => accts.Any())
                .Subscribe(accts => {
                    var selectedAccount = accts.FirstOrDefault();
                    if (selectedAccount != null)
                    {
                        SelectedAccount = accts.FirstOrDefault();
                    }
                });

            browseForDirectoryCommand.Subscribe(_ => ShowBrowseForDirectoryDialog());

            BaseRepositoryPathValidator = this.CreateBaseRepositoryPathValidator();

            var nonNullRepositoryName = this.WhenAny(
                x => x.RepositoryName,
                x => x.BaseRepositoryPath,
                (x, y) => x.Value)
                .WhereNotNull();

            RepositoryNameValidator = ReactivePropertyValidator.ForObservable(nonNullRepositoryName)
                .IfNullOrEmpty("Please enter a repository name")
                .IfTrue(x => x.Length > 100, "Repository name must be fewer than 100 characters")
                .IfTrue(IsAlreadyRepoAtPath, "Repository with same name already exists at this location");

            SafeRepositoryNameWarningValidator = ReactivePropertyValidator.ForObservable(nonNullRepositoryName)
                .Add(repoName =>
                {
                    var parsedReference = GetSafeRepositoryName(repoName);
                    return parsedReference != repoName ? "Will be created as " + parsedReference : null;
                });

            this.WhenAny(x => x.BaseRepositoryPathValidator.ValidationResult, x => x.Value)
                .Subscribe();

            CreateRepository = InitializeCreateRepositoryCommand();

            canKeepPrivate = CanKeepPrivateObservable.CombineLatest(CreateRepository.IsExecuting,
                (canKeep, publishing) => canKeep && !publishing)
                .ToProperty(this, x => x.CanKeepPrivate);

            isCreating = CreateRepository.IsExecuting
                .ToProperty(this, x => x.IsCreating);

            gitIgnoreTemplates = repositoryHost.ModelService.GetGitIgnoreTemplates()
                .ObserveOn(RxApp.MainThreadScheduler)
                .ToProperty(this, x => x.GitIgnoreTemplates, initialValue: new GitIgnoreItem[] { });

            this.WhenAny(x => x.GitIgnoreTemplates, x => x.Value)
                .WhereNotNull()
                .Where(ignores => ignores.Any())
                .Subscribe(ignores =>
                {
                    SelectedGitIgnoreTemplate = ignores.FirstOrDefault(
                        template => template.Name.Equals("VisualStudio", StringComparison.OrdinalIgnoreCase));
                });

            licenses = repositoryHost.ModelService.GetLicenses()
                .ObserveOn(RxApp.MainThreadScheduler)
                .ToProperty(this, x => x.Licenses, initialValue: new LicenseItem[] { });

            BaseRepositoryPath = repositoryCreationService.DefaultClonePath;
        }
예제 #34
0
 public ModelService(IApiClient apiClient, IBlobCache hostCache, IAvatarProvider avatarProvider)
 {
     this.apiClient      = apiClient;
     this.hostCache      = hostCache;
     this.avatarProvider = avatarProvider;
 }
 public BackupAvatarProvider(IAvatarProvider inner, Image backupImage)
 {
     _inner       = inner;
     _backupImage = backupImage;
 }
예제 #36
0
 public ModelService(IApiClient apiClient, IBlobCache hostCache, IAvatarProvider avatarProvider)
 {
     this.apiClient = apiClient;
     this.hostCache = hostCache;
     this.avatarProvider = avatarProvider;
 }
예제 #37
0
 public SafetynetAvatarProvider(IAvatarProvider avatarProvider)
 {
     _avatarProvider = avatarProvider ?? throw new ArgumentNullException(nameof(avatarProvider));
 }