Exemplo n.º 1
0
        private void BuildGanttChart(
            IEnumerable <ActivityModel> activities,
            DateTime projectStart,
            SlackColorFormatLookup colorFormatLookup)
        {
            if (activities == null)
            {
                return;
            }

            foreach (ActivityModel activity in activities)
            {
                GanttRowGroup rowGroup = GanttChartAreaCtrl.CreateGanttRowGroup();
                string        name     = string.IsNullOrWhiteSpace(activity.Name) ? activity.Id.ToString(CultureInfo.InvariantCulture) : activity.Name;
                GanttRow      row      = GanttChartAreaCtrl.CreateGanttRow(rowGroup, name);

                if (activity.EarliestStartTime.HasValue &&
                    activity.EarliestFinishTime.HasValue)
                {
                    CheckRowErrors(activity, row);

                    GanttChartAreaCtrl.AddGanttTask(
                        row,
                        CreateGanttTask(projectStart, activity, colorFormatLookup));
                }
            }
        }
        public GanttRowGroup CreateGanttRowGroup()
        {
            var rowGroup = new GanttRowGroup()
            {
            };

            ganttChartData.RowGroups.Add(rowGroup);
            return(rowGroup);
        }
Exemplo n.º 3
0
        public GanttRow CreateGanttRow(GanttRowGroup rowGroup, string name)
        {
            var rowHeader = new GanttRowHeader()
            {
                Name = name
            };
            var row = new GanttRow()
            {
                RowHeader = rowHeader, Tasks = new ObservableCollection <GanttTask>()
            };

            rowGroup.Rows.Add(row);
            return(row);
        }
Exemplo n.º 4
0
        private void CreateData(DateTime minDate, DateTime maxDate)
        {
            // Set max and min dates
            ganttControl1.Initialize(minDate, maxDate);

            // Create timelines and define how they should be presented
            TimeLine gridLineTimeLine = ganttControl1.CreateTimeLine(new PeriodHourSplitter(minDate, maxDate), FormatHour);

            // Set the timeline to atatch gridlines to
            ganttControl1.SetGridLinesTimeline(gridLineTimeLine, DetermineBackground);

            // Create rows and data
            GanttRowGroup rowgroup1 = ganttControl1.CreateGanttRowGroup();
            GanttRow      row1      = ganttControl1.CreateGanttRow(rowgroup1, "Training");
            GanttRow      row2      = ganttControl1.CreateGanttRow(rowgroup1, "Meal");

            GenerateEventsFromTable(row1, minDate, maxDate, "activity");
            GenerateEventsFromTable(row2, minDate, maxDate, "meal");
        }
Exemplo n.º 5
0
        private void BuildGanttChart(
            IEnumerable <ActivityModel> activities,
            ResourceSeriesSetModel resourceSeriesSet,
            DateTime projectStart,
            SlackColorFormatLookup colorFormatLookup)
        {
            if (activities == null || resourceSeriesSet?.Scheduled == null)
            {
                return;
            }

            IDictionary <int, ActivityModel> activityLookup = activities.ToDictionary(x => x.Id);

            foreach (ResourceSeriesModel resourceSeries in resourceSeriesSet.Scheduled)
            {
                ResourceScheduleModel resourceSchedule = resourceSeries.ResourceSchedule;

                if (resourceSchedule != null)
                {
                    GanttRowGroup rowGroup = GanttChartAreaCtrl.CreateGanttRowGroup(resourceSeries.Title);

                    foreach (ScheduledActivityModel scheduledctivity in resourceSchedule.ScheduledActivities)
                    {
                        if (activityLookup.TryGetValue(scheduledctivity.Id, out ActivityModel activity))
                        {
                            string   name = string.IsNullOrWhiteSpace(scheduledctivity.Name) ? scheduledctivity.Id.ToString(CultureInfo.InvariantCulture) : scheduledctivity.Name;
                            GanttRow row  = GanttChartAreaCtrl.CreateGanttRow(rowGroup, name);

                            if (activity.EarliestStartTime.HasValue &&
                                activity.EarliestFinishTime.HasValue)
                            {
                                CheckRowErrors(activity, row);

                                GanttChartAreaCtrl.AddGanttTask(
                                    row,
                                    CreateGanttTask(projectStart, activity, colorFormatLookup));
                            }
                        }
                    }
                }
            }
        }
        public GanttRow CreateGanttRow(GanttRowGroup rowGroup, string name)
        {
            if (rowGroup is null)
            {
                throw new ArgumentNullException(nameof(rowGroup));
            }
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException(nameof(name));
            }

            GanttRowHeader rowHeader = new GanttRowHeader()
            {
                Name = name
            };
            var row = new GanttRow()
            {
                RowHeader = rowHeader, Tasks = new ObservableCollection <GanttTask>()
            };

            rowGroup.Rows.Add(row);
            return(row);
        }
        private void BuildGanttChart(
            IEnumerable <ActivityModel> activities,
            DateTime projectStart,
            SlackColorFormatLookup colorFormatLookup)
        {
            if (activities == null)
            {
                return;
            }

            foreach (ActivityModel activity in activities)
            {
                GanttRowGroup rowGroup = GanttChartAreaCtrl.CreateGanttRowGroup();
                GanttRow      row      = GanttChartAreaCtrl.CreateGanttRow(rowGroup, activity.Name);

                if (activity.EarliestStartTime.HasValue &&
                    activity.EarliestFinishTime.HasValue)
                {
                    GanttChartAreaCtrl.AddGanttTask(
                        row,
                        CreateGanttTask(projectStart, activity, colorFormatLookup));
                }
            }
        }
        private void BuildGanttChart(
            IList <IDependentActivity <int> > dependentActivities,
            DateTime projectStart,
            SlackColorFormatLookup colorFormatLookup)
        {
            if (dependentActivities == null)
            {
                return;
            }

            foreach (IDependentActivity <int> activity in dependentActivities)
            {
                GanttRowGroup rowGroup = GanttChartAreaCtrl.CreateGanttRowGroup();
                GanttRow      row      = GanttChartAreaCtrl.CreateGanttRow(rowGroup, activity.Name);

                if (activity.EarliestStartTime.HasValue &&
                    activity.EarliestFinishTime.HasValue)
                {
                    GanttChartAreaCtrl.AddGanttTask(
                        row,
                        CreateGanttTask(projectStart, activity, colorFormatLookup));
                }
            }
        }
        private void BuildGanttChart(
            IList <IDependentActivity <int> > dependentActivities,
            IList <ResourceSeriesDto> resourceSeriesSet,
            IList <IResourceSchedule <int> > resourceSchedules,
            DateTime projectStart,
            SlackColorFormatLookup colorFormatLookup)
        {
            if (dependentActivities == null || resourceSeriesSet == null || resourceSchedules == null)
            {
                return;
            }

            IDictionary <int, IDependentActivity <int> > activityLookup = dependentActivities.ToDictionary(x => x.Id);

            int spareResourceCount = 1;

            for (int resourceIndex = 0; resourceIndex < resourceSchedules.Count; resourceIndex++)
            {
                IResourceSchedule <int>           resourceSchedule    = resourceSchedules[resourceIndex];
                IList <IScheduledActivity <int> > scheduledActivities = resourceSchedule?.ScheduledActivities;

                if (scheduledActivities == null)
                {
                    continue;
                }

                var stringBuilder = new StringBuilder();
                if (resourceSchedule.Resource != null)
                {
                    if (string.IsNullOrWhiteSpace(resourceSchedule.Resource.Name))
                    {
                        stringBuilder.Append($@"Resource {resourceSchedule.Resource.Id}");
                    }
                    else
                    {
                        stringBuilder.Append(resourceSchedule.Resource.Name);
                    }
                }
                else
                {
                    stringBuilder.Append($@"Resource {spareResourceCount}");
                    spareResourceCount++;
                }

                string        resourceName = stringBuilder.ToString();
                GanttRowGroup rowGroup     = GanttChartAreaCtrl.CreateGanttRowGroup(resourceName);

                foreach (IScheduledActivity <int> scheduledctivity in resourceSchedule.ScheduledActivities)
                {
                    if (activityLookup.TryGetValue(scheduledctivity.Id, out IDependentActivity <int> activity))
                    {
                        GanttRow row = GanttChartAreaCtrl.CreateGanttRow(rowGroup, activity.Name);

                        if (activity.EarliestStartTime.HasValue &&
                            activity.EarliestFinishTime.HasValue)
                        {
                            GanttChartAreaCtrl.AddGanttTask(
                                row,
                                CreateGanttTask(projectStart, activity, colorFormatLookup));
                        }
                    }
                }
            }
        }