コード例 #1
0
        public virtual IList <StatisticsResultDto> getActivityStatistics(bool?includeFailedJobs, bool?includeIncidents, string includeIncidentsForType)
        {
            if (includeIncidents != null && !string.ReferenceEquals(includeIncidentsForType, null))
            {
                throw new InvalidRequestException(Response.Status.BAD_REQUEST, "Only one of the query parameter includeIncidents or includeIncidentsForType can be set.");
            }

            ManagementService       mgmtService = engine.ManagementService;
            ActivityStatisticsQuery query       = mgmtService.createActivityStatisticsQuery(processDefinitionId);

            if (includeFailedJobs != null && includeFailedJobs)
            {
                query.includeFailedJobs();
            }

            if (includeIncidents != null && includeIncidents)
            {
                query.includeIncidents();
            }
            else if (!string.ReferenceEquals(includeIncidentsForType, null))
            {
                query.includeIncidentsForType(includeIncidentsForType);
            }

            IList <ActivityStatistics> queryResults = query.list();

            IList <StatisticsResultDto> results = new List <StatisticsResultDto>();

            foreach (ActivityStatistics queryResult in queryResults)
            {
                StatisticsResultDto dto = ActivityStatisticsResultDto.fromActivityStatistics(queryResult);
                results.Add(dto);
            }

            return(results);
        }