コード例 #1
0
        private async Task <string[]> GetWorkflowInstanceIds(
            string missionInstanceId)
        {
            var args = new FindHyperDocumentsArgs(true);

            args.SetDocumentType(typeof(HyperWorkflowInstance));
            args.DescriptorConditions.AddCondition("MissionInstanceId", missionInstanceId);

            var instances = await FindHyperDocumentsArgs.FindAsync <HyperWorkflowInstance>(_netStore, args);

            return(instances.Select(it => it.Id).ToArray());
        }
コード例 #2
0
        private async Task <string[]> GetWorkflowInstanceIdsAsync(
            bool activeOnly)
        {
            if (_request == null || string.IsNullOrWhiteSpace(_request.MissionId))
            {
                return new string[] { }
            }
            ;

            var args = new FindHyperDocumentsArgs(true);

            args.SetDocumentType(typeof(HyperWorkflowInstance));
            args.DescriptorConditions.AddCondition("MissionId", _request.MissionId);

            var instances = await FindHyperDocumentsArgs.FindAsync <HyperWorkflowInstance>(_netStore, args);

            if (!activeOnly)
            {
                return(instances.Select(it => it.Id).ToArray());
            }

            var statsArgs = new RetrieveHyperWorkflowsStatusesArgs {
                MissionIds = new[] { _request.MissionId }
            };
            var statuses = await _netStore.ExecuteAsync(statsArgs);

            if (statuses == null || !statuses.Any())
            {
                return new string[] { }
            }
            ;

            var data = new List <HyperWorkflowInstance>();

            foreach (var status in statuses)
            {
                var activeInstance = instances.FirstOrDefault(it => it.Id == status.WorkflowInstanceId);

                if (activeInstance == null)
                {
                    continue;
                }

                data.Add(activeInstance);
            }

            return(data.Select(it => it.Id).ToArray());
        }
コード例 #3
0
        private async Task PopulateData()
        {
            Items.Clear();
            IsLoadedData = false;

            if (HyperStore == null || string.IsNullOrWhiteSpace(WorkflowId))
            {
                return;
            }

            var historyArgs = new FindHyperDocumentsArgs(true);

            historyArgs.DescriptorConditions.AddCondition(Assist.GetPropertyName((HyperWorkflowInstance i) => i.WorkflowId), WorkflowId);
            var instances = await FindHyperDocumentsArgs.FindAsync <HyperWorkflowInstance>(HyperStore, historyArgs);

            if (instances != null)
            {
                var wfInstances = instances.OrderBy(it => it.ToString());
                Items.AddRange(wfInstances);
            }

            IsLoadedData = true;
        }