예제 #1
0
        /// <summary>
        /// Отправляем сообщение посредством EventAggregator что нам нужно установить
        /// такой набор временных отметок в отпределенное время.
        /// </summary>
        /// <param name="timesList"></param>
        private async void SendUpdateAtTimes(List <string> timesList)
        {
            // Если вызов идет во время инициалзации - выходим из метода
            if (!_useNormalWork)
            {
                return;
            }

            var args = new ExplicitArguments();

            args.SetArg("fileName", _playFileAtTime);
            args.SetArg("tsLists", timesList);
            IAtTimePlayData atData = _container.GetInstance <IAtTimePlayData>(args);

            var argMsg = new ExplicitArguments();

            argMsg.SetArg("msgData", atData);
            var atMessage = _container.GetInstance <IAtTimePlayDataMsg>(argMsg);

            SendToAclockMessage(null, atData);

            //mediator.Publish(atMessage);
            // Пробуем запросить нашего работника, в если удачно - пересылаему ему задачу
            var atHandle = _container.TryGetInstance <IHandle <IAtTimePlayDataMsg> >();

            if (atHandle != null)
            {
                await _eventAggregator.PublishOnUIThreadAsync(atMessage);
            }
        }
        public void RegisterAndRetrieveArgs()
        {
            var args = new ExplicitArguments();

            Assert.IsNull(args.GetArg("name"));

            args.SetArg("name", "Jeremy");
            Assert.AreEqual("Jeremy", args.GetArg("name"));

            args.SetArg("age", 34);
            Assert.AreEqual(34, args.GetArg("age"));
        }
예제 #3
0
        public void RegisterAndRetrieveArgs()
        {
            var args = new ExplicitArguments();

            args.GetArg("name").ShouldBeNull();

            args.SetArg("name", "Jeremy");
            args.GetArg("name").ShouldBe("Jeremy");

            args.SetArg("age", 34);
            args.GetArg("age").ShouldBe(34);
        }
예제 #4
0
        public IPresenter Create(Type presenterType, Type viewType, IView viewInstance)
        {
            if (presenterType == null)
            {
                throw new ArgumentNullException("presenterType");
            }
            if (viewType == null)
            {
                throw new ArgumentNullException("viewType");
            }
            if (viewInstance == null)
            {
                throw new ArgumentNullException("viewInstance");
            }

            if (!container.Model.HasImplementationsFor(presenterType))
            {
                lock (registerLock)
                {
                    if (!container.Model.HasImplementationsFor(presenterType))
                    {
                        container.Configure(x => x.For(presenterType).HybridHttpOrThreadLocalScoped().Use(presenterType).Named(presenterType.Name));
                    }
                }
            }

            var args = new ExplicitArguments();

            args.Set("view");
            args.SetArg("view", viewInstance);

            return((IPresenter)container.GetInstance(presenterType, args));
        }
        public IPresenter Create(Type presenterType, Type viewType, IView viewInstance)
        {
            if (presenterType == null)
                throw new ArgumentNullException("presenterType");
            if (viewType == null)
                throw new ArgumentNullException("viewType");
            if (viewInstance == null)
                throw new ArgumentNullException("viewInstance");

            if (!container.Model.HasImplementationsFor(presenterType))
            {
                lock (registerLock)
                {
                    if (!container.Model.HasImplementationsFor(presenterType))
                    {
                        container.Configure(x => x.For(presenterType).HybridHttpOrThreadLocalScoped().Use(presenterType).Named(presenterType.Name));
                    }
                }
            }

            var args = new ExplicitArguments();
            args.Set("view");
            args.SetArg("view", viewInstance);

            return (IPresenter)container.GetInstance(presenterType, args);
        }
예제 #6
0
        public T Get <T>(ExplictArg explictArg)
        {
            var args = new ExplicitArguments();

            args.SetArg(explictArg.Key, explictArg.Arg);
            return(_container.GetInstance <T>(args));
        }
예제 #7
0
        public T Get <T>(IEnumerable <ExplictArg> explictArgs)
        {
            var args = new ExplicitArguments();

            foreach (var explictArg in explictArgs)
            {
                args.SetArg(explictArg.Key, explictArg.Arg);
            }
            return(_container.GetInstance <T>(args));
        }
예제 #8
0
        private static ExplicitArguments getExplicitArguments(bool isNamed, MethodInfo methodInfo, IList <object> arguments)
        {
            var explicitArguments = new ExplicitArguments();

            var parameters = methodInfo.GetParameters();

            for (var i = isNamed ? 1 : 0; i < arguments.Count; ++i)
            {
                explicitArguments.SetArg(parameters[i].Name, arguments[i]);
            }
            return(explicitArguments);
        }
        private static ExplicitArguments getExplicitArguments(bool isNamed, MethodInfo methodInfo, IList<object> arguments)
        {
            var explicitArguments = new ExplicitArguments();

            var parameters = methodInfo.GetParameters();

            for (var i = isNamed ? 1 : 0; i < arguments.Count; ++i)
            {
                explicitArguments.SetArg(parameters[i].Name, arguments[i]);
            }
            return explicitArguments;
        }
예제 #10
0
        private void SendMsgForSetAutoStartApp()
        {
            // Если вызов идет во время инициалзации - выходим из метода
            if (!_useNormalWork)
            {
                return;
            }

            var sendArgs = new ExplicitArguments();

            sendArgs.SetArg("usingAutoStart", _autoStartApp);
            sendArgs.SetArg("appName", AppName);

            var autoHandler = _container.TryGetInstance <IHandle <IAppAutoStartMsg> >();

            var setAutoStart = _container.TryGetInstance <IAppAutoStartMsg>(sendArgs);

            if (setAutoStart != null && autoHandler != null)
            {
                //await mediator.Publish(setAutoStart);
                _eventAggregator.PublishOnBackgroundThread(setAutoStart);
            }
        }
예제 #11
0
        public void Pass_in_arguments_as_dictionary()
        {
            ObjectFactory.Initialize(x => { x.ForRequestedType<IView>().TheDefaultIsConcreteType<View>(); });

            var theNode = new Node();
            var theTrade = new Trade();

            var args = new ExplicitArguments();
            args.Set(theNode);
            args.SetArg("trade", theTrade);

            var command = ObjectFactory.GetInstance<Command>(args);

            Assert.IsInstanceOfType(typeof (View), command.View);
            Assert.AreSame(theNode, command.Node);
            Assert.AreSame(theTrade, command.Trade);
        }
        public void Pass_in_arguments_as_dictionary()
        {
            var container = new Container(x => { x.ForRequestedType <IView>().TheDefaultIsConcreteType <View>(); });

            var theNode  = new Node();
            var theTrade = new Trade();

            var args = new ExplicitArguments();

            args.Set(theNode);
            args.SetArg("trade", theTrade);

            var command = container.GetInstance <Command>(args);

            Assert.IsInstanceOfType(typeof(View), command.View);
            Assert.AreSame(theNode, command.Node);
            Assert.AreSame(theTrade, command.Trade);
        }
예제 #13
0
        public void Pass_in_arguments_as_dictionary()
        {
            var container = new Container(x => { x.For <IView>().Use <View>(); });

            var theNode  = new Node();
            var theTrade = new Trade();

            var args = new ExplicitArguments();

            args.Set(theNode);
            args.SetArg("trade", theTrade);

            var command = container.GetInstance <Command>(args);

            command.View.ShouldBeOfType <View>();
            theNode.ShouldBeTheSameAs(command.Node);
            theTrade.ShouldBeTheSameAs(command.Trade);
        }
예제 #14
0
        public async virtual Task <IWidget> CreateWidget(Type widget, String cacheId = null)
        {
            var args = new ExplicitArguments();

            var id = cacheId ?? Guid.NewGuid().ToString();

            args.SetArg("host", CurrentWorkspace);
            args.Set(id);

            var instance = AppContainer.ObjectProvider.GetInstance(widget, args) as IWidget;

            if (null == instance)
            {
                return(null);
            }

            await instance.Initialize();

            return(instance);
        }
예제 #15
0
        public async Task CreateWorkspace(TState state, bool loadLayout)
        {
            var candidate = AvailableWorkspaces.FirstOrDefault(wspace => wspace.State.Equals(state));

            //we infer !loadLayout == create blank workspace
            if (null != candidate && loadLayout)
            {
                CurrentWorkspace = candidate;
                return;
            }

            var arg = new ExplicitArguments();

            arg.SetArg("loadLayout", loadLayout);

            var workspace = AppContainer.ObjectProvider.GetInstance <IWorkspace <TState> >(arg);

            await workspace.Initialize(state);

            AvailableWorkspaces.Add(workspace);
        }
예제 #16
0
        public void RegisterAndRetrieveArgs()
        {
            var args = new ExplicitArguments();
            Assert.IsNull(args.GetArg("name"));

            args.SetArg("name", "Jeremy");
            Assert.AreEqual("Jeremy", args.GetArg("name"));

            args.SetArg("age", 34);
            Assert.AreEqual(34, args.GetArg("age"));
        }
예제 #17
0
        public void Pass_in_arguments_as_dictionary()
        {
            var container = new Container(x => { x.For<IView>().Use<View>(); });

            var theNode = new Node();
            var theTrade = new Trade();

            var args = new ExplicitArguments();
            args.Set(theNode);
            args.SetArg("trade", theTrade);

            var command = container.GetInstance<Command>(args);

            command.View.ShouldBeOfType<View>();
            theNode.ShouldBeTheSameAs(command.Node);
            theTrade.ShouldBeTheSameAs(command.Trade);
        }
예제 #18
0
 ExplicitArgsExpression IExplicitProperty.EqualTo(object value)
 {
     _args.SetArg(_lastArgName, value);
     return(this);
 }