Exemple #1
0
        /// <summary>
        /// Insert data from the dPOW to the new project file
        /// </summary>
        private void InsertDataToProject()
        {
            // Set main project settings (name, title etc.)
            project.ProjectProperties.Name         = pow.Project.Name;
            project.ProjectProperties.ProjectTitle = pow.Project.Name;
            project.ProjectProperties.Comments     = pow.Project.Description;

            // dPOW does not take into account work hours or days, so set calendar and scheduling settings for 24 hours (otherwise calculated durations and end dates will not be as expected)
            SetupCalendar(project.AddDefaultBaseCalendar());
            project.ProjectProperties.DefaultCalendarName = PROJECT_CALENDER_NAME;

            // In addition to setting the calendar, the project scheduling settings must be updated for 24 hours
            project.ProjectProperties.DefaultStartTime = new Date(0);        // Start time to 00:00:00
            project.ProjectProperties.DefaultEndTime   = new Date(0);        // End time to 00:00:00
            project.ProjectProperties.MinutesPerDay    = new Integer(1440);  // 24 hours per day
            project.ProjectProperties.MinutesPerWeek   = new Integer(10080); // 7 days per week

            // Add each dPOW project stages as milestone tasks
            foreach (var stage in pow.ProjectStages)
            {
                // Create task from project stage
                // These are the top level summary tasks, which all other tasks are children of
                Task task = project.AddTask();
                PopulateTask(task, stage.Name, stage.Description, stage.Attributes);
                task.Summary   = true;
                task.Milestone = true;

                // Add dPOW document sets to the project stage tasks as subtasks
                foreach (var documentSet in stage.DocumentationSet)
                {
                    // Create task from documentation set
                    Task documentSetTask = task.AddTask();
                    PopulateTask(documentSetTask, documentSet.Name, documentSet.Description, documentSet.Attributes, task);

                    // Iterate jobs to find (currently there is only one job per document set, which contains the responsible contact and role)
                    foreach (var job in documentSet.Jobs)
                    {
                        SetupResourceAssignment(documentSetTask, job);
                    }
                }

                // Add other dPOW task types (assets, assembly and space deliverables) to the project stage task
                foreach (var asset in stage.AssetTypes)
                {
                    PopulateTask(task.AddTask(), asset.Name, asset.Description, asset.Attributes, task);
                }
                foreach (var assembly in stage.AssemblyTypes)
                {
                    PopulateTask(task.AddTask(), assembly.Name, assembly.Description, assembly.Attributes, task);
                }
                foreach (var space in stage.SpaceTypes)
                {
                    PopulateTask(task.AddTask(), space.Name, space.Description, space.Attributes, task);
                }
            }
        }