コード例 #1
0
        static public ExportProcessDC[] GetExportProcessListByStatus(Guid tenantId, ProcessStatus status)
        {
            List <ExportProcessDC>  processList      = new List <ExportProcessDC>();
            SqlTrackingQuery        sqlTrackingQuery = new SqlTrackingQuery(ConfigurationManager.ConnectionStrings[Constants.Database.TenantWorkflowStore].ConnectionString);
            SqlTrackingQueryOptions options          = new SqlTrackingQueryOptions();

            options.WorkflowStatus = ProcessHelper.ToWorkflowStatus(status);
            options.TrackingDataItems.Add(new TrackingDataItemValue("ExportProcess", "TenantId", tenantId.ToString()));
            IList <SqlTrackingWorkflowInstance> workflows = sqlTrackingQuery.GetWorkflows(options);

            foreach (SqlTrackingWorkflowInstance workflow in workflows)
            {
                ExportProcessDC exportProcessDC = new ExportProcessDC();
                exportProcessDC.ProcessId = workflow.WorkflowInstanceId;
                exportProcessDC.Status    = ProcessHelper.ToProcessStatus(workflow.Status);
                int activityEventsCount = workflow.ActivityEvents.Count;
                if (activityEventsCount > 0)
                {
                    ActivityTrackingRecord record = (ActivityTrackingRecord)workflow.ActivityEvents[activityEventsCount - 1];
                    foreach (TrackingDataItem dataItem in record.Body)
                    {
                        switch (dataItem.FieldName)
                        {
                        case "ObjectId":
                            exportProcessDC.ObjectId = (Guid)dataItem.Data;
                            break;

                        case "Number":
                            exportProcessDC.Number = (string)dataItem.Data;
                            break;

                        case "Creator":
                            exportProcessDC.Creator = (string)dataItem.Data;
                            break;

                        case "Amount":
                            exportProcessDC.Amount = dataItem.Data == null ? default(decimal) : (decimal)dataItem.Data;
                            break;
                        }
                    }
                }
                processList.Add(exportProcessDC);
            }
            return(processList.ToArray());
        }
コード例 #2
0
        static public ExportProcessDC GetExportProcessbyContractId(Guid contractId)
        {
            SqlTrackingQuery        sqlTrackingQuery = new SqlTrackingQuery(ConfigurationManager.ConnectionStrings[Constants.Database.TenantWorkflowStore].ConnectionString);
            SqlTrackingQueryOptions options          = new SqlTrackingQueryOptions();

            //options.WorkflowStatus = WorkflowStatus.Running;
            options.TrackingDataItems.Add(new TrackingDataItemValue("ExportProcess", "ObjectId", contractId.ToString()));

            IList <SqlTrackingWorkflowInstance> workflows = sqlTrackingQuery.GetWorkflows(options);

            if (workflows.Count == 0)
            {
                return(null);
            }
            SqlTrackingWorkflowInstance workflow        = workflows[workflows.Count - 1];
            ExportProcessDC             exportProcessDC = new ExportProcessDC();

            exportProcessDC.ObjectId  = contractId;
            exportProcessDC.ProcessId = workflow.WorkflowInstanceId;
            exportProcessDC.Status    = ProcessHelper.ToProcessStatus(workflow.Status);
            int activityEventsCount = workflow.ActivityEvents.Count;

            if (activityEventsCount > 0)
            {
                ActivityTrackingRecord record = (ActivityTrackingRecord)workflow.ActivityEvents[activityEventsCount - 1];
                foreach (TrackingDataItem dataItem in record.Body)
                {
                    switch (dataItem.FieldName)
                    {
                    case "Number":
                        exportProcessDC.Number = (string)dataItem.Data;
                        break;

                    case "Creator":
                        exportProcessDC.Creator = (string)dataItem.Data;
                        break;

                    case "Amount":
                        exportProcessDC.Amount = dataItem.Data == null ? default(decimal) : (decimal)dataItem.Data;
                        break;
                    }
                }
            }
            return(exportProcessDC);
        }