Exemplo n.º 1
0
 /// <summary>
 /// Reports the specified progress.
 /// </summary>
 /// <param name="progress">The progress.</param>
 public void Report(Sundew.Base.Computation.Progress <Report> progress)
 {
     this.reports.Add(progress);
     if (progress.Report?.ReportType == ReportType.CompletedGeneration)
     {
         this.reports.CompleteAdding();
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Reports the specified progress.
        /// </summary>
        /// <param name="progress">The progress.</param>
        public void Report(Sundew.Base.Computation.Progress <Report> progress)
        {
            switch (progress.Report?.ReportType)
            {
            case ReportType.StartingGeneration:
                this.log.LogMessage(MessageImportance.Normal, "Starting code generation");
                break;

            case ReportType.AddingItems:
                this.log.LogMessage(MessageImportance.Low, $"Added item: {progress.Report.Parameter}");
                break;

            case ReportType.CompletedAdding:
                this.log.LogMessage(MessageImportance.Normal, "Completed adding items");
                break;

            case ReportType.GeneratedItem:
                this.log.LogMessage(MessageImportance.High, $"Completed item: {progress.Report.Parameter}");
                break;

            case ReportType.CompletedTarget:
                this.log.LogMessage(MessageImportance.Low, $"Completed target: {progress.Report.Parameter}");
                break;

            case ReportType.TargetChanged:
                this.log.LogMessage(MessageImportance.Low, $"Changed target: {progress.Report.Parameter}");
                break;

            case ReportType.CompletedGeneration:
                this.log.LogMessage(MessageImportance.High, "Completed code generation");
                break;

            case ReportType.Cancelled:
                this.log.LogMessage(MessageImportance.High, "Cancelled code generation");
                break;

            case ReportType.Error:
                this.log.LogError(progress.Report.Parameter.ToStringOrEmpty());
                break;

            case null:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(progress.Report.ReportType));
            }
        }
        /// <summary>
        /// Reports the specified progress.
        /// </summary>
        /// <param name="progress">The progress.</param>
        public void Report(Sundew.Base.Computation.Progress <Report> progress)
        {
            if (progress.Report == null)
            {
                return;
            }

            switch (progress.Report.ReportType)
            {
            case ReportType.StartingGeneration:
                this.textWriter.WriteLine("Starting generation");
                break;

            case ReportType.GeneratedItem:
            case ReportType.AppliedContent:
            case ReportType.CompletedTarget:
                this.textWriter.WriteLine(progress.Report.Parameter?.ToString() ?? string.Empty);
                break;

            case ReportType.CompletedGeneration:
                this.textWriter.WriteLine("Completed generation");
                break;
            }
        }