Beispiel #1
0
        //private IMessageService _messageService;

        public ViewSwitchViewModel(IRegionManager regionManager,
                                   //IMessageService messageService,
                                   IDataRepositoryService dataRepositoryService,
                                   INetworkTasks networkTasks,
                                   IEventAggregator ea,
                                   IPrintService printService) : base(regionManager)
        {
            _ea = ea;
            _dataRepositoryService = dataRepositoryService;
            _networkTasks          = networkTasks;
            _printerService        = printService;

            _ea.GetEvent <MessageSentEvent>().Subscribe(MessageReceived);

            SwitchList = new ObservableCollection <EthernetSwitch>();

            CheckedCommand   = new DelegateCommand(async() => await StartCommandExecuteAsync(), StartCommandCanExecute);
            UncheckedCommand = new DelegateCommand(StopCommandExecute, StopCommandCanExecute);

            Title = "Switch"; // Заголовок вкладки

            _dispatcher = Dispatcher.CurrentDispatcher;

            // Fill ComboBox with available printers
            foreach (string item in _printerService.CommonGetAvailablePrinters())
            {
                Printers.Add(item);
            }

            //Message = messageService.GetMessage();
        }
Beispiel #2
0
 protected AbstractRepositoryController(IDataRepositoryService
                                        <TDataType, TSummaryType, TSummaryPackageType, TSummaryMetadataType,
                                         TItemPackageType, TItemMetadataType
                                        > dataRepository)
 {
     _dataRepository = dataRepository;
 }
        public WorkflowCatalog()
        {
            _wfConfig = Catalog.Factory.Resolve <IConfig>(SpecialFactoryContexts.Routed);
            var host = WorkflowShared.GetMessageQueueHost(_wfConfig);

            WorkflowShared.DeclareWorkflowExchanges(host, _wfConfig[WorkflowConfiguration.WorkflowMessagingKey]);



            _instanceData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowInstanceInfo>()
                            .ConfiguredResolve <IDataRepositoryService <WorkflowInstanceInfo,
                                                                        WorkflowInstanceInfo,
                                                                        DataEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata,
                                                                        DatumEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata> >
                                (_wfConfig[WorkflowConfiguration.WorkflowDataRepositoryKey]);



            _sender = Catalog.Preconfigure()
                      .Add(MessagePublisherLocalConfig.HostConnectionString, host)
                      .Add(MessagePublisherLocalConfig.ExchangeName, WorkflowShared.WorkflowExchange)
                      .ConfiguredResolve <IMessagePublisher>(_wfConfig[WorkflowConfiguration.WorkflowMessagingKey]);
        }
Beispiel #4
0
        private WorkflowAgent(WorkflowHost host, string existing, CancellationToken ct, IDistributedMutex dm,
                              string templateData, string workflowDataRepositoryKey, string workflowMessagingKey, string workflowWorkspaceKey)
        {
            Id      = existing;
            _ct     = ct;
            _wfLock = dm;

            _workflowDataRepositoryKey = workflowDataRepositoryKey;
            _workflowWorkspaceKey      = workflowWorkspaceKey;

            _instanceData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowInstanceInfo>()
                            .ConfiguredResolve <IDataRepositoryService <WorkflowInstanceInfo,
                                                                        WorkflowInstanceInfo,
                                                                        DataEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata,
                                                                        DatumEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata> >
                                (_workflowDataRepositoryKey);

            _triggers = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowTrigger>()
                        .ConfiguredResolve <IDataRepositoryService <WorkflowTrigger,
                                                                    WorkflowTrigger,
                                                                    DataEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata,
                                                                    DatumEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata> >
                            (_workflowDataRepositoryKey);

            Initialize(host, templateData);
        }
Beispiel #5
0
        public WorkflowContext(string persistenceContext, string machineContext, string initialState, string repositoryKey)
        {
            _persistenceContext = persistenceContext;
            _machineContext     = machineContext;
            _cachedState        = initialState;

            _machineStateData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowMachineState>()
                                .ConfiguredResolve <IDataRepositoryService <WorkflowMachineState,
                                                                            WorkflowMachineState,
                                                                            DataEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata,
                                                                            DatumEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata> >
                                    (repositoryKey);

            WorkflowMachineState current = null;

            var qs = new QuerySpecification
            {
                BookMark = new GenericPageBookmark {
                    PageSize = 100
                },
                Where = new Filter
                {
                    PredicateJoin = PredicateJoin.And,
                    Rules         = new Comparison[]
                    {
                        new Comparison
                        {
                            Data  = _persistenceContext,
                            Field = "Parent",
                            Test  = Test.Equal
                        },
                        new Comparison
                        {
                            Data  = _machineContext,
                            Field = "StateMachine",
                            Test  = Test.Equal
                        }
                    }
                }
            };

            var queryResult = _machineStateData.Query(qs).Items.EmptyIfNull();

            current = queryResult.FirstOrDefault();

            if (null != current)
            {
                _cachedState = current.State;
                _cachedId    = current.Id;
            }
            else
            {
                _cachedId = string.Format("MS{0}-{1}", _persistenceContext, _machineContext);
                ChangeState(_cachedState);
            }
        }
        public MainWindowViewModel(Services.Interfaces.IDialogService dialogService, IDataRepositoryService dataRepositoryService)
        {
            _dialogService         = dialogService;
            _dataRepositoryService = dataRepositoryService;

            OpenFileCommand = new DelegateCommand(OpenFileExecute, OpenFileCanExecute);
            SaveFileCommand = new DelegateCommand(SaveFileExecute, SaveFileCanExecute);
            CloseAppCommand = new DelegateCommand(CloseAppExecute, CloseAppCanExecute);
        }
 public MainWindowViewModel(IDialogService dialogService, IExcelDataDecoder excelDataDecoder, IDataRepositoryService dataRepositoryService)
 {
     _dialogService         = dialogService;
     _excelDataDecoder      = excelDataDecoder;
     _dataRepositoryService = dataRepositoryService;
     OpenFileCommand        = new DelegateCommand(OpenFileExecute, OpenFileCanExecute);
     SaveFileCommand        = new DelegateCommand(SaveFileExecute, SaveFileCanExecute);
     CloseAppCommand        = new DelegateCommand(CloseAppExecute, CloseAppCanExecute);
 }
Beispiel #8
0
        public Workflow(string instance)
        {
            var cf = Catalog.Factory.Resolve <IConfig>(SpecialFactoryContexts.Routed);

            var host = WorkflowShared.GetMessageQueueHost(cf);

            WorkflowShared.DeclareWorkflowExchanges(host, cf[WorkflowConfiguration.WorkflowMessagingKey]);
            _instance = instance;


            _machineStateData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowMachineState>()
                                .ConfiguredResolve <IDataRepositoryService <WorkflowMachineState,
                                                                            WorkflowMachineState,
                                                                            DataEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata,
                                                                            DatumEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata> >
                                    (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _instanceData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowInstanceInfo>()
                            .ConfiguredResolve <IDataRepositoryService <WorkflowInstanceInfo,
                                                                        WorkflowInstanceInfo,
                                                                        DataEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata,
                                                                        DatumEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata> >
                                (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _triggers = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowTrigger>()
                        .ConfiguredResolve <IDataRepositoryService <WorkflowTrigger,
                                                                    WorkflowTrigger,
                                                                    DataEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata,
                                                                    DatumEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata> >
                            (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _sender = Catalog.Preconfigure()
                      .Add(MessagePublisherLocalConfig.HostConnectionString, host)
                      .Add(MessagePublisherLocalConfig.ExchangeName, WorkflowShared.WorkflowFanoutExchange)
                      .ConfiguredResolve <IMessagePublisher>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _workspaceKey = cf[WorkflowConfiguration.WorkflowWorkspaceKey];

            RefreshInstanceInfo();
        }
        //private IMessageService _messageService;

        public ViewSwitchViewModel(IRegionManager regionManager,
                                   IMessageService messageService,
                                   IDataRepositoryService dataRepositoryService,
                                   IEventAggregator ea,
                                   IEnumerable <ISender> senders) : base(regionManager)
        {
            _ea = ea;

            _dataRepositoryService = dataRepositoryService;
            _ea.GetEvent <MessageSentEvent>().Subscribe(MessageReceived);

            _telnetSender = senders.ElementAt(0);
            _sshSender    = senders.ElementAt(1);
            SwitchList    = new ObservableCollection <NetworkDevice>();

            CheckedCommand   = new DelegateCommand(async() => await StartCommandExecuteAsync(), StartCommandCanExecute);
            UncheckedCommand = new DelegateCommand(StopCommandExecute, StopCommandCanExecute);

            Title   = "Switch";
            Message = messageService.GetMessage();
        }
Beispiel #10
0
        public ViewRS485ViewModel(IRegionManager regionManager,

                                  ISerialTasks serialTasks,
                                  IDataRepositoryService dataRepositoryService,
                                  IEventAggregator ea) : base(regionManager)
        {
            _ea = ea;
            _dataRepositoryService = dataRepositoryService;
            //_serialSender = serialSender;
            _serialTasks = serialTasks;

            _ea.GetEvent <MessageSentEvent>().Subscribe(MessageReceived);

            _dispatcher = Dispatcher.CurrentDispatcher;

            AvailableComPorts = _serialTasks.GetAvailableCOMPorts();// Заполняем коллецию с доступными COM-портами

            StartCommand = new DelegateCommand(async() => await StartCommandExecuteAsync(), StartCommandCanExecute)
                           .ObservesProperty(() => CurrentRS485Port)
                           .ObservesProperty(() => SerialTextBox);

            Title = "RS485";
        }
Beispiel #11
0
        public WorkflowHost()
        {
            var cf = Catalog.Factory.Resolve <IConfig>(SpecialFactoryContexts.Routed);

            _queueConnection = WorkflowShared.GetMessageQueueHost(cf);



            _wfTemplates = Catalog.Preconfigure()
                           .Add(BlobContainerLocalConfig.ContainerName, WFHostContainerName)
                           .Add(BlobContainerLocalConfig.OptionalAccess, EntityAccess.Private)
                           .Add(BlobContainerLocalConfig.OptionalContentType, "application/json")
                           .ConfiguredResolve <IFilesContainer>();

            _stringResources = Catalog.Factory.Resolve <StringResourcesCache>();

            var hostEnvironment = Catalog.Factory.Resolve <IHostEnvironment>();
            var _hostId         = hostEnvironment.GetCurrentHostIdentifier(HostEnvironmentConstants.DefaultHostScope);

            WorkflowShared.DeclareWorkflowExchanges(_queueConnection, cf[WorkflowConfiguration.WorkflowMessagingKey]);
            WorkflowShared.AttachQueueToWorkflowExchange(_queueConnection, _hostId, cf[WorkflowConfiguration.WorkflowMessagingKey]);
            WorkflowShared.AttachedQueueToWorkflowBroadcast(_queueConnection, _hostId, cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _publisher = Catalog.Preconfigure()
                         .Add(MessagePublisherLocalConfig.HostConnectionString, _queueConnection)
                         .Add(MessagePublisherLocalConfig.ExchangeName, WorkflowShared.WorkflowExchange)
                         .ConfiguredResolve <IMessagePublisher>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _broadcaster = Catalog.Preconfigure()
                           .Add(MessagePublisherLocalConfig.HostConnectionString, _queueConnection)
                           .Add(MessagePublisherLocalConfig.ExchangeName, WorkflowShared.WorkflowFanoutExchange)
                           .ConfiguredResolve <IMessagePublisher>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _listener = Catalog.Preconfigure()
                        .Add(MessageListenerLocalConfig.HostConnectionString, _queueConnection)
                        .Add(MessageListenerLocalConfig.ExchangeName, WorkflowShared.WorkflowExchange)
                        .Add(MessageListenerLocalConfig.QueueName, _hostId)
                        .ConfiguredResolve <IMessageListener>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _broadcastListener = Catalog.Preconfigure()
                                 .Add(MessageListenerLocalConfig.HostConnectionString, _queueConnection)
                                 .Add(MessageListenerLocalConfig.ExchangeName, WorkflowShared.WorkflowFanoutExchange)
                                 .Add(MessageListenerLocalConfig.QueueName, _hostId)
                                 .ConfiguredResolve <IMessageListener>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _machineStateData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowMachineState>()
                                .ConfiguredResolve <IDataRepositoryService <WorkflowMachineState,
                                                                            WorkflowMachineState,
                                                                            DataEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata,
                                                                            DatumEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata> >
                                    (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _instanceData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowInstanceInfo>()
                            .ConfiguredResolve <IDataRepositoryService <WorkflowInstanceInfo,
                                                                        WorkflowInstanceInfo,
                                                                        DataEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata,
                                                                        DatumEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata> >
                                (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _triggers = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowTrigger>()
                        .ConfiguredResolve <IDataRepositoryService <WorkflowTrigger,
                                                                    WorkflowTrigger,
                                                                    DataEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata,
                                                                    DatumEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata> >
                            (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);


            _workflowDataRepositoryKey = cf[WorkflowConfiguration.WorkflowDataRepositoryKey];
            _workflowMessagingKey      = cf[WorkflowConfiguration.WorkflowMessagingKey];
            _workflowWorkspaceKey      = cf[WorkflowConfiguration.WorkflowWorkspaceKey];
        }
Beispiel #12
0
 protected AbstractRepositoryController(IConfig cf)
 {
     _dataRepository = cf.Get <IDataRepositoryService
                               <TDataType, TSummaryType, TSummaryPackageType, TSummaryMetadataType, TItemPackageType, TItemMetadataType
                               > >(RepositoryControllerLocalConfig.DataRepository);
 }
Beispiel #13
0
        public WorkflowAgent(WorkflowHost host, string newId, CancellationToken ct, string initialData,
                             string templateData, string workflowDataRepositoryKey, string workflowMessagingKey, string workflowWorkspaceKey)
        {
            Id  = newId;
            _ct = ct;

            _workflowDataRepositoryKey = workflowDataRepositoryKey;
            _workflowWorkspaceKey      = workflowWorkspaceKey;

            _instanceData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowInstanceInfo>()
                            .ConfiguredResolve <IDataRepositoryService <WorkflowInstanceInfo,
                                                                        WorkflowInstanceInfo,
                                                                        DataEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata,
                                                                        DatumEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata> >
                                (_workflowDataRepositoryKey);

            _triggers = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowTrigger>()
                        .ConfiguredResolve <IDataRepositoryService <WorkflowTrigger,
                                                                    WorkflowTrigger,
                                                                    DataEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata,
                                                                    DatumEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata> >
                            (_workflowDataRepositoryKey);



            Initialize(host, templateData);

            if (!string.IsNullOrEmpty(initialData))
            {
                var initialDataSet = JsonConvert.DeserializeObject <Dictionary <string, string> >(initialData);



                try
                {
                    foreach (var id in _inputDefinitions.EmptyIfNull().Where(def => !def.Optional))
                    {
                        if (!initialDataSet.ContainsKey(id.WorkspaceKey))
                        {
                            throw new InvalidWorkflowInputsException(string.Format("workspace inputs require {0}, not found", id.WorkspaceKey));
                        }
                    }


                    if (!_wfLock.Wait(TimeSpan.FromSeconds(300.0)))
                    {
                        throw new SynchronizationLockException(string.Format("Timeout waiting for workspace data to {0}", Id));
                    }

                    Workspace.Batch(
                        wsd => initialDataSet.ForEach(datum => wsd.Put(datum.Key, datum.Value))
                        );
                }
                catch (Exception ex)
                {
                    var es = string.Format("Exception initializing workspace inputs, {0}", ex.Message);
                    _log.Error(es);
                    ex.TraceInformation();
                    var on = Catalog.Factory.Resolve <IApplicationAlert>();
                    on.RaiseAlert(ApplicationAlertKind.System, es);
                    throw;
                }
                finally
                {
                    _wfLock.Release();
                }
            }
        }
Beispiel #14
0
 public ViewRS485ViewModel(IRegionManager regionManager, IMessageService messageService, IDataRepositoryService dataRepositoryService) :
     base(regionManager)
 {
     Title   = "RS485";
     Message = "View RS485 from your Prism Module";
 }