コード例 #1
0
        public EarnedValueChartManagerViewModel(
            ICoreViewModel coreViewModel,
            IFileDialogService fileDialogService,
            IProjectSettingService projectSettingService,
            IDateTimeCalculator dateTimeCalculator,
            IEventAggregator eventService)
            : base(eventService)
        {
            m_Lock                  = new object();
            m_CoreViewModel         = coreViewModel ?? throw new ArgumentNullException(nameof(coreViewModel));
            m_FileDialogService     = fileDialogService ?? throw new ArgumentNullException(nameof(fileDialogService));
            m_ProjectSettingService = projectSettingService ?? throw new ArgumentNullException(nameof(projectSettingService));
            m_DateTimeCalculator    = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
            m_EventService          = eventService ?? throw new ArgumentNullException(nameof(eventService));

            m_NotificationInteractionRequest = new InteractionRequest <Notification>();

            m_EarnedValueChartPointSet   = new List <EarnedValuePoint>();
            EarnedValueChartPlotModel    = null;
            EarnedValueChartOutputWidth  = 1000;
            EarnedValueChartOutputHeight = 500;

            InitializeCommands();
            SubscribeToEvents();

            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.IsBusy), nameof(IsBusy), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.HasStaleOutputs), nameof(HasStaleOutputs), ThreadOption.BackgroundThread);
        }
コード例 #2
0
        public MetricsManagerViewModel(
            ICoreViewModel coreViewModel,
            IProjectService projectService,
            IDateTimeCalculator dateTimeCalculator,
            IMapper mapper,
            IEventAggregator eventService)
            : base(eventService)
        {
            m_Lock               = new object();
            m_CoreViewModel      = coreViewModel ?? throw new ArgumentNullException(nameof(coreViewModel));
            m_ProjectService     = projectService ?? throw new ArgumentNullException(nameof(projectService));
            m_DateTimeCalculator = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
            m_Mapper             = mapper ?? throw new ArgumentNullException(nameof(mapper));
            m_EventService       = eventService ?? throw new ArgumentNullException(nameof(eventService));

            SubscribeToEvents();

            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.IsBusy), nameof(IsBusy), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.HasCompilationErrors), nameof(HasCompilationErrors), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.HasStaleOutputs), nameof(HasStaleOutputs), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.DirectCost), nameof(DirectCost), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.IndirectCost), nameof(IndirectCost), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.OtherCost), nameof(OtherCost), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.TotalCost), nameof(TotalCost), ThreadOption.BackgroundThread);
        }
コード例 #3
0
        public ManagedActivityViewModel(
            IDependentActivity <int, int> dependentActivity,
            DateTime projectStart,
            DateTime?minimumEarliestStartDateTime,
            IEnumerable <ResourceModel> targetResources,
            IDateTimeCalculator dateTimeCalculator,
            IEventAggregator eventService)
            : this(dateTimeCalculator, eventService)
        {
            DependentActivity = dependentActivity ?? throw new ArgumentNullException(nameof(dependentActivity));
            m_ProjectStart    = projectStart;
            m_MinimumEarliestStartDateTime = minimumEarliestStartDateTime;
            var selectedResources = new HashSet <int>(DependentActivity.TargetResources.ToList());

            ResourceSelector.SetTargetResources(targetResources, selectedResources);
            UpdateAllocatedToResources();

            if (MinimumEarliestStartDateTime.HasValue)
            {
                CalculateMinimumEarliestStartTime();
            }
            else if (MinimumEarliestStartTime.HasValue)
            {
                CalculateMinimumEarliestStartDateTime();
            }
        }
コード例 #4
0
 private ManagedActivityViewModel(
     IDateTimeCalculator dateTimeCalculator,
     IEventAggregator eventService)
 {
     m_DateTimeCalculator = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
     m_EventService       = eventService ?? throw new ArgumentNullException(nameof(eventService));
     ResourceSelector     = new ResourceSelectorViewModel();
     UpdatedDependencies  = new HashSet <int>();
 }
コード例 #5
0
 public GanttChartManagerView(
     IGanttChartManagerViewModel viewModel,
     IDateTimeCalculator dateTimeCalculator,
     IEventAggregator eventService)
 {
     m_DateTimeCalculator = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
     m_EventService       = eventService ?? throw new ArgumentNullException(nameof(eventService));
     InitializeComponent();
     ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel));
     SubscribeToEvents();
 }
コード例 #6
0
 public static string FormatScheduleOutput(
     int days,
     bool showDates,
     DateTime projectStart,
     IDateTimeCalculator dateTimeCalculator)
 {
     if (dateTimeCalculator == null)
     {
         throw new ArgumentNullException(nameof(dateTimeCalculator));
     }
     if (showDates)
     {
         return(dateTimeCalculator.AddDays(projectStart, days).ToString("d", CultureInfo.InvariantCulture));
     }
     return(days.ToString(CultureInfo.InvariantCulture));
 }
コード例 #7
0
        public static double CalculateChartTimeXValue(
            int input,
            bool showDates,
            DateTime projectStart,
            IDateTimeCalculator dateTimeCalculator)
        {
            if (dateTimeCalculator == null)
            {
                throw new ArgumentNullException(nameof(dateTimeCalculator));
            }
            double output = input;

            if (showDates)
            {
                output = DateTimeAxis.ToDouble(dateTimeCalculator.AddDays(projectStart, input));
            }
            return(output);
        }
コード例 #8
0
        public CoreViewModel(
            IProjectManager projectManager,
            ISettingManager settingManager,
            IDateTimeCalculator dateTimeCalculator,
            IEventAggregator eventService)
            : base(eventService)
        {
            m_Lock               = new object();
            m_ProjectManager     = projectManager ?? throw new ArgumentNullException(nameof(projectManager));
            m_SettingManager     = settingManager ?? throw new ArgumentNullException(nameof(settingManager));
            m_DateTimeCalculator = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
            m_EventService       = eventService ?? throw new ArgumentNullException(nameof(eventService));

            m_VertexGraphCompiler = VertexGraphCompiler <int, IDependentActivity <int> > .Create();

            Activities        = new ObservableCollection <ManagedActivityViewModel>();
            ResourceSeriesSet = new List <ResourceSeriesDto>();
            ClearSettings();
        }
コード例 #9
0
        public GanttChartManagerViewModel(
            ICoreViewModel coreViewModel,
            IDateTimeCalculator dateTimeCalculator,
            IEventAggregator eventService)
            : base(eventService)
        {
            m_Lock               = new object();
            m_CoreViewModel      = coreViewModel ?? throw new ArgumentNullException(nameof(coreViewModel));
            m_DateTimeCalculator = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
            m_EventService       = eventService ?? throw new ArgumentNullException(nameof(eventService));

            m_NotificationInteractionRequest = new InteractionRequest <Notification>();

            InitializeCommands();
            SubscribeToEvents();

            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.ProjectStart), nameof(ProjectStart), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.IsBusy), nameof(IsBusy), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.HasStaleOutputs), nameof(HasStaleGanttChart), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.HasCompilationErrors), nameof(HasCompilationErrors), ThreadOption.BackgroundThread);
            SubscribePropertyChanged(m_CoreViewModel, nameof(m_CoreViewModel.UseBusinessDays), nameof(UseBusinessDays), ThreadOption.BackgroundThread);
        }
コード例 #10
0
        public CoreViewModel(
            IProjectService projectService,
            ISettingService settingService,
            IApplicationCommands applicationCommands,
            IDateTimeCalculator dateTimeCalculator,
            IMapper mapper,
            IEventAggregator eventService)
            : base(eventService)
        {
            m_Lock               = new object();
            m_UndoStack          = new LimitedSizeStack <UndoRedoCommandPair>(c_MaxUndoRedoStackSize);
            m_RedoStack          = new LimitedSizeStack <UndoRedoCommandPair>(c_MaxUndoRedoStackSize);
            m_ProjectService     = projectService ?? throw new ArgumentNullException(nameof(projectService));
            m_SettingService     = settingService ?? throw new ArgumentNullException(nameof(settingService));
            ApplicationCommands  = applicationCommands ?? throw new ArgumentNullException(nameof(applicationCommands));
            m_DateTimeCalculator = dateTimeCalculator ?? throw new ArgumentNullException(nameof(dateTimeCalculator));
            m_Mapper             = mapper ?? throw new ArgumentNullException(nameof(mapper));
            m_EventService       = eventService ?? throw new ArgumentNullException(nameof(eventService));

            m_VertexGraphCompiler = new VertexGraphCompiler <int, int, IDependentActivity <int, int> >();
            Activities            = new ObservableCollection <IManagedActivityViewModel>();
            InitializeCommands();
            ClearSettings();
        }