Пример #1
0
 public StartStorage(StorageCoordinator storageCoordinator, ISessionEvents componentActivator)
 {
     _storageCoordinator                       = storageCoordinator;
     componentActivator.Navigating            += ComponentActivatorOnNavigating;
     componentActivator.RootViewModelDisposed += ComponentActivatorOnRootViewModelDisposed;
     componentActivator.NewSession            += ComponentActivatorOnNewSession;
 }
Пример #2
0
 public StartStorage(StorageCoordinator storageCoordinator, ISessionEvents componentActivator)
 {
     _storageCoordinator = storageCoordinator;
     componentActivator.Navigating += ComponentActivatorOnNavigating;
     componentActivator.RootViewModelDisposed += ComponentActivatorOnRootViewModelDisposed;
     componentActivator.NewSession += ComponentActivatorOnNewSession;
 }
        protected override void Configure()
        {
            LogManager.GetLog = _ => new DebugLog();

            this.container = new NinjectPhoneContainer(
                this.RootFrame,
                new WindowsPhoneNinjectModule(),
                new DemoServicesModule(),
                new StorageHandlersModule(),
                new ViewModelsModule());

            StorageCoordinator coordinator = this.container.GetInstance <StorageCoordinator>();

            coordinator.Start();

            TaskController taskController = this.container.GetInstance <TaskController>();

            taskController.Start();

            AddCustomConventions();
        }
        protected override void Configure()
        {
            _builder.RegisterType<EventAggregator>().As<IEventAggregator>().SingleInstance();
            _builder.Register(x => _frameAdapter).As<INavigationService>().SingleInstance();
            _builder.Register(x => Container).As<IContainer>().SingleInstance();

            _builder.RegisterType<SharingService>().As<ISharingService>().SingleInstance();
            _builder.RegisterType<SettingsService>().As<ISettingsService>().SingleInstance();

            _builder.RegisterAssemblyTypes(AssemblySource.Instance.Concat(new[] { typeof(IStorageMechanism).GetTypeInfo().Assembly }).ToArray())
                .AssignableTo<IStorageMechanism>()
                .AsImplementedInterfaces();

            _builder.RegisterType<StorageCoordinator>().AsSelf().SingleInstance();

            RegisterViewModels(x => !string.IsNullOrEmpty(x.Namespace) &&
                x.Namespace.Contains("ViewModels") &&
                    typeof(INotifyPropertyChanged).IsAssignableFrom(x));

            _builder.RegisterAssemblyTypes(AssemblySource.Instance.ToArray())
                .AssignableTo<IStorageHandler>()
                .AsSelf()
                .AsImplementedInterfaces()
                .SingleInstance();

            HandleConfigure(_builder);
            Container = _builder.Build();

            ViewModelLocator.LocateForView = LocateForView;

            _exportedTypeCache = AssemblySource.Instance.SelectMany(a => a.GetExportedTypes()).Where(x => x.IsAssignableTo<FrameworkElement>()).ToArray();
            ViewLocator.LocateTypeForModelType = (modelType, displayLocation, context) =>
            {
                var viewTypeName = modelType.FullName;

                if (Execute.InDesignMode)
                {
                    viewTypeName = ViewLocator.ModifyModelTypeAtDesignTime(viewTypeName);
                }

                viewTypeName = viewTypeName.Substring(
                    0,
                    viewTypeName.IndexOf('`') < 0
                        ? viewTypeName.Length
                        : viewTypeName.IndexOf('`')
                    );

                var viewTypeList = ViewLocator.TransformName(viewTypeName, context);
                var viewType = viewTypeList.Join(_exportedTypeCache, n => n, t => t.FullName, (n, t) => t).FirstOrDefault();

                if (viewType == null)
                    Debug.WriteLine("View not found. Searched: {0}.", string.Join(", ", viewTypeList.ToArray()));

                return viewType;
            };

            SharingService = Container.Resolve<ISharingService>();
            _storageCoordinator = Container.Resolve<StorageCoordinator>();
            _storageCoordinator.Start();

            _rootFrame = CreateApplicationFrame();
        }