public FrameworkElement GetDefinitionEditor(IDependencyInjectionService dependencyInjectionService, IXmlDependencyViewModel xmlDependencyViewModel, string dependencyDefinitionFileList, string tpcUrl)
        {
            var view = new VNextBuildResultDefinitionEditor();

            view.DataContext = GetDefinitionEditorViewModel(xmlDependencyViewModel, dependencyDefinitionFileList, tpcUrl);
            return(view);
        }
Пример #2
0
        private void RegisterDependencies(IDependencyInjectionService dependencyInjectionService, INavigation navigation, IEnumerable <IInstaller> installers = null)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton(dependencyInjectionService);
            serviceCollection.AddSingleton(navigation);

            var blMobileInstaller = new BLMobileInstaller();

            blMobileInstaller.Install(serviceCollection);

            var mobileInstaller = new MobileInstaller();

            mobileInstaller.Install(serviceCollection);

            if (installers != null)
            {
                foreach (var installer in installers)
                {
                    installer.Install(serviceCollection);
                }
            }

            dependencyInjectionService.Build(serviceCollection);
        }
Пример #3
0
        /// <summary>
        /// Gets the definition editor view model.
        /// </summary>
        /// <param name="dependencyInjectionService">The dependency injection service.</param>
        /// <param name="xmlDependencyViewModel">The XML dependency view model.</param>
        /// <param name="dependencyDefinitionFileList">The list with valid dependency definition filenames.</param>
        /// <param name="tpcUrl">The binary team project collection url.</param>
        /// <returns>The BinaryRepository dependency editor view model.</returns>
        private IValidatingViewModel GetDefinitionEditorViewModel(IDependencyInjectionService dependencyInjectionService, IXmlDependencyViewModel xmlDependencyViewModel, string dependencyDefinitionFileList, string tpcUrl)
        {
            var referencedComponentsTrackingService = dependencyInjectionService.GetDependency <IReferencedComponentsTrackingService>();
            var filter = new UsedComponentsFilter(referencedComponentsTrackingService);

            return(new BinaryRepositoryDefinitionEditorViewModel(new TfsAccessService(), this, xmlDependencyViewModel, dependencyDefinitionFileList, filter, tpcUrl));
        }
Пример #4
0
 public App()
 {
     InitializeComponent();
     MainPage  = new LoginPage();
     DIService = new DI.DependencyInjectionService();
     RegisterDependencies();
     DIService.Build();
 }
Пример #5
0
        /// <summary>
        /// Gets the file share definition editor.
        /// </summary>
        /// <param name="dependencyInjectionService">The dependency injection service.</param>
        /// <param name="xmlDependencyViewModel">The XML dependency view model.</param>
        /// <param name="dependencyDefinitionFileList">The dependency definition file list.</param>
        /// <param name="tpcUrl">The team project collection URL.</param>
        /// <returns>The initialized file share definition editor</returns>
        public FrameworkElement GetDefinitionEditor(IDependencyInjectionService dependencyInjectionService, IXmlDependencyViewModel xmlDependencyViewModel, string dependencyDefinitionFileList, string tpcUrl)
        {
            var view = new FileShareDefinitionEditor
            {
                DataContext = GetDefinitionEditorViewModel(xmlDependencyViewModel, dependencyDefinitionFileList)
            };

            return(view);
        }
Пример #6
0
 public NavigationService(
     IMvvmLocatorService mvvmLocatorService,
     IDependencyInjectionService dependencyInjectionService,
     IMainContentViewUpdater mainContentViewUpdater)
 {
     this.mvvmLocatorService         = mvvmLocatorService;
     this.dependencyInjectionService = dependencyInjectionService;
     this.mainContentViewUpdater     = mainContentViewUpdater;
 }
Пример #7
0
        public App()
        {
            Thread.CurrentThread.CurrentCulture   = new CultureInfo("en");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

            DependencyInjectionService = new DependencyInjectionService();

            host = Host.CreateDefaultBuilder()
                   .ConfigureAppConfiguration(ConfigureAppConfiguration)
                   .ConfigureServices((context, services) => { ConfigureServices(context.Configuration, services); })
                   .Build();
        }
        public void Install(IServiceCollection serviceCollection, IDependencyInjectionService dependencyInjectionService)
        {
            serviceCollection.AddSingleton <IDependencyInjectionService>(dependencyInjectionService);
            serviceCollection.AddSingleton <IPasswordHasher, PasswordHasher>();

            serviceCollection.Scan(scan => scan
                                   .FromAssemblyOf <InfrastructureInstaller>()
                                   .AddClasses(classes => classes.AssignableTo <ISingletonService>())
                                   .AsSelfWithInterfaces()
                                   .WithSingletonLifetime()
                                   .AddClasses(classes => classes.AssignableTo <ITransientService>())
                                   .AsSelfWithInterfaces()
                                   .WithTransientLifetime()
                                   );
        }
Пример #9
0
        public App(IEnumerable <IInstaller> installers = null)
        {
            InitializeComponent();
            DependencyInjectionService = new DependencyInjectionService();

            var navigationPage = new NavigationPage();

            RegisterDependencies(DependencyInjectionService, navigationPage.Navigation, installers);

            var navigationService = DependencyInjectionService.Resolve <INavigationService>();

            navigationService.PushAsync <HomeViewModel>();

            MainPage = navigationPage;
        }
        public IController InstantiateController(string name, RequestBody requestBody)
        {
            try
            {
                ControllerRegister register = GetControllerRegister(name);
                if (register == null)
                {
                    throw new Exception($"Controller '{name}' not registered or not found");
                }
                IDependencyInjectorMaker injector = null;

                object[] injectArgs = null;
                if (!name.Equals("ServerInfoController"))
                {
                    IDependencyInjectionService diService = serviceManager.GetService <IDependencyInjectionService>();
                    injector = diService.GetInjectorMaker(name);

                    if (injector != null)
                    {
                        Stopwatch sw = new Stopwatch();
                        sw.Start();
                        injectArgs = injector.BuildInjectValues(requestBody);
                        sw.Stop();

                        if (telemetry != null)
                        {
                            telemetry.Collect(new DependencyInjectorExecutionTime(injector.ControllerName, sw.ElapsedMilliseconds));
                        }
                    }
                }

                IController controller = (IController)Activator.CreateInstance(register.Type, injectArgs);
                return(controller);
            }
            catch (Exception ex)
            {
                ILoggingService logger = serviceManager.GetService <ILoggingService>();
                string          msg    = ex.Message;
                if (ex.InnerException != null)
                {
                    msg += ex.InnerException.Message;
                }
                logger.WriteLog($@"Instantiate controller '{name}' threw an exception. 
{msg}", name, "", ServerLogType.ERROR);
                throw new Exception($@"Instantiate controller '{name}' threw an exception. 
{msg}");
            }
        }
Пример #11
0
 public MvvmLocatorService(IDependencyInjectionService dependencyInjectionService)
 {
     this.dependencyInjectionService = dependencyInjectionService;
 }
        /// <summary>
        /// Adds a dependency injection helper for server controllers
        /// </summary>
        /// <param name="dependencyInjector">Implementation of injector helper</param>
        protected void AddDependencyInjector(IDependencyInjectorMaker dependencyInjector)
        {
            IDependencyInjectionService service = Services.GetService <IDependencyInjectionService>();

            service.AddDependencyInjector(dependencyInjector);
        }