Esempio n. 1
0
        private void ResetProject()
        {
            lock (m_Lock)
            {
                // TODO
                m_CoreViewModel.ClearManagedActivities();
                //SelectedActivities.Clear();

                m_CoreViewModel.ClearSettings();

                GraphCompilation = new GraphCompilation <int, IDependentActivity <int> >(
                    false,
                    Enumerable.Empty <CircularDependency <int> >(),
                    Enumerable.Empty <int>(),
                    Enumerable.Empty <IDependentActivity <int> >(),
                    Enumerable.Empty <IResourceSchedule <int> >());

                CyclomaticComplexity = null;
                Duration             = null;

                HasCompilationErrors = false;
                m_CoreViewModel.SetCompilationOutput();

                ArrowGraphDto = null;

                ProjectStartWithoutPublishing = DateTime.UtcNow.BeginningOfDay();
                IsProjectUpdated = false;
                ProjectTitle     = s_DefaultProjectTitle;

                HasStaleOutputs = false;
            }

            PublishGraphCompilationUpdatedPayload();
            PublishArrowGraphDtoUpdatedPayload();
        }
        public void SetCompilationOutput()
        {
            lock (m_Lock)
            {
                GraphCompilation <int, IDependentActivity <int> > graphCompilation = GraphCompilation;
                CompilationOutput    = string.Empty;
                HasCompilationErrors = false;
                if (graphCompilation == null)
                {
                    return;
                }
                var output = new StringBuilder();

                if (graphCompilation.AllResourcesExplicitTargetsButNotAllActivitiesTargeted)
                {
                    HasCompilationErrors = true;
                    output.AppendLine($@">{Properties.Resources.Message_AllResourcesExplicitTargetsNotAllActivitiesTargeted}");
                }

                if (graphCompilation.CircularDependencies.Any())
                {
                    HasCompilationErrors = true;
                    output.Append(BuildCircularDependenciesErrorMessage(graphCompilation.CircularDependencies));
                }

                if (graphCompilation.MissingDependencies.Any())
                {
                    HasCompilationErrors = true;
                    output.Append(BuildMissingDependenciesErrorMessage(graphCompilation.MissingDependencies));
                }

                if (graphCompilation.ResourceSchedules.Any() &&
                    !HasCompilationErrors)
                {
                    output.Append(BuildActivitySchedules(graphCompilation.ResourceSchedules));
                }

                if (HasCompilationErrors)
                {
                    output.Insert(0, Environment.NewLine);
                    output.Insert(0, $@">{Properties.Resources.Message_CompilationErrors}");
                }

                CompilationOutput = output.ToString();
            }
        }
Esempio n. 3
0
 public static GraphCompilationDto ToDto(
     GraphCompilation <int, IDependentActivity <int> > graphCompilation,
     int cyclomaticComplexity,
     int duration)
 {
     if (graphCompilation == null)
     {
         throw new ArgumentNullException(nameof(graphCompilation));
     }
     return(new GraphCompilationDto
     {
         AllResourcesExplicitTargetsButNotAllActivitiesTargeted = graphCompilation.AllResourcesExplicitTargetsButNotAllActivitiesTargeted,
         CircularDependencies = graphCompilation.CircularDependencies != null?graphCompilation.CircularDependencies.Select(x => ToDto(x)).ToList() : new List <CircularDependencyDto>(),
                                    MissingDependencies = graphCompilation.MissingDependencies != null?graphCompilation.MissingDependencies.ToList() : new List <int>(),
                                                              DependentActivities = graphCompilation.DependentActivities != null?graphCompilation.DependentActivities.Select(x => ToDto(x)).ToList() : new List <DependentActivityDto>(),
                                                                                        ResourceSchedules = graphCompilation.ResourceSchedules != null?graphCompilation.ResourceSchedules.Select(x => ToDto(x)).ToList() : new List <ResourceScheduleDto>(),
                                                                                                                CyclomaticComplexity = cyclomaticComplexity,
                                                                                                                Duration = duration
     });
 }