Exemple #1
0
        private DataTable BuildEarnedValueChartDataTable()
        {
            lock (m_Lock)
            {
                var table = new DataTable();
                IList <EarnedValuePoint> pointSet = m_EarnedValueChartPointSet;
                if (pointSet != null &&
                    pointSet.Any())
                {
                    table.Columns.Add(new DataColumn(Resource.ProjectPlan.Resources.Label_TimeAxisTitle));
                    table.Columns.Add(new DataColumn(Resource.ProjectPlan.Resources.Label_Id));
                    table.Columns.Add(new DataColumn(Resource.ProjectPlan.Resources.Label_ActivityName));
                    table.Columns.Add(new DataColumn(Resource.ProjectPlan.Resources.Label_EarnedValueTitle));
                    table.Columns.Add(new DataColumn(Resource.ProjectPlan.Resources.Label_EarnedValuePercentageAxisTitle));

                    m_DateTimeCalculator.UseBusinessDays(UseBusinessDays);

                    foreach (EarnedValuePoint point in pointSet)
                    {
                        var rowData = new List <object>
                        {
                            ChartHelper.FormatScheduleOutput(point.Time, ShowDates, ProjectStart, m_DateTimeCalculator),
                            point.ActivityId,
                            point.ActivityName,
                            point.EarnedValue,
                            point.EarnedValuePercentage
                        };
                        table.Rows.Add(rowData.ToArray());
                    }
                }
                return(table);
            }
        }
Exemple #2
0
        private DataTable BuildResourceChartDataTable()
        {
            lock (m_Lock)
            {
                var table = new DataTable();
                ResourceSeriesSetModel resourceSeriesSet = ResourceSeriesSet;

                if (resourceSeriesSet != null)
                {
                    IEnumerable <ResourceSeriesModel> combinedResourceSeries = resourceSeriesSet.Combined.OrderBy(x => x.DisplayOrder);

                    if (combinedResourceSeries.Any())
                    {
                        table.Columns.Add(new DataColumn(Resource.ProjectPlan.Properties.Resources.Label_TimeAxisTitle));

                        // Create the column titles.
                        foreach (ResourceSeriesModel resourceSeries in combinedResourceSeries)
                        {
                            var column = new DataColumn(resourceSeries.Title, typeof(int));
                            table.Columns.Add(column);
                        }

                        m_DateTimeCalculator.UseBusinessDays(UseBusinessDays);

                        // Pivot the series values.
                        int valueCount = combinedResourceSeries.Max(x => x.Values.Count);
                        for (int timeIndex = 0; timeIndex < valueCount; timeIndex++)
                        {
                            var rowData = new List <object>
                            {
                                ChartHelper.FormatScheduleOutput(timeIndex, ShowDates, ProjectStart, m_DateTimeCalculator)
                            };
                            rowData.AddRange(combinedResourceSeries.Select(x => x.Values[timeIndex] * (ExportResourceChartAsCosts ? x.UnitCost : 1)).Cast <object>());
                            table.Rows.Add(rowData.ToArray());
                        }
                    }
                }

                return(table);
            }
        }
        private string BuildActivitySchedules(IEnumerable <ResourceSeriesModel> resourceSeriesSet)
        {
            lock (m_Lock)
            {
                if (resourceSeriesSet == null)
                {
                    return(string.Empty);
                }

                var output = new StringBuilder();

                foreach (ResourceSeriesModel resourceSeries in resourceSeriesSet)
                {
                    IEnumerable <ScheduledActivityModel> scheduledActivities = resourceSeries?.ResourceSchedule?.ScheduledActivities;
                    if (scheduledActivities == null)
                    {
                        continue;
                    }
                    output.AppendLine($@">{resourceSeries.Title}");
                    int previousFinishTime = 0;
                    foreach (ScheduledActivityModel scheduledActivity in scheduledActivities)
                    {
                        int startTime  = scheduledActivity.StartTime;
                        int finishTime = scheduledActivity.FinishTime;
                        if (startTime > previousFinishTime)
                        {
                            string from = ChartHelper.FormatScheduleOutput(previousFinishTime, ShowDates, ProjectStart, m_DateTimeCalculator);
                            string to   = ChartHelper.FormatScheduleOutput(startTime, ShowDates, ProjectStart, m_DateTimeCalculator);
                            output.AppendLine($@"*** {from} -> {to} ***");
                        }
                        string start  = ChartHelper.FormatScheduleOutput(startTime, ShowDates, ProjectStart, m_DateTimeCalculator);
                        string finish = ChartHelper.FormatScheduleOutput(finishTime, ShowDates, ProjectStart, m_DateTimeCalculator);
                        output.AppendLine($@"{Resource.ProjectPlan.Resources.Label_Activity} {scheduledActivity.Id}: {start} -> {finish}");
                        previousFinishTime = finishTime;
                    }
                    output.AppendLine();
                }
                return(output.ToString());
            }
        }