本文整理汇总了C#中IProgressStatus.Report方法的典型用法代码示例。如果您正苦于以下问题:C# IProgressStatus.Report方法的具体用法?C# IProgressStatus.Report怎么用?C# IProgressStatus.Report使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProgressStatus
的用法示例。
在下文中一共展示了IProgressStatus.Report方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetRangeTaskProgress
/// <summary>
/// Sets the progress of the whole based on the progress within a percentage range of the main progress (e.g. 0-100% of a task within the global range of 0-20%)
/// </summary>
/// <param name="progress"></param>
/// <param name="startPercentage">The percentage the task began at</param>
/// <param name="endPercentage">The percentage the task ends at</param>
/// <param name="taskPercent">The percentage complete of the sub-task (0-100)</param>
private static void SetRangeTaskProgress(IProgressStatus progress, int startPercentage, int endPercentage, int taskPercent)
{
int range = endPercentage - startPercentage;
if (range <= 0) throw new ArgumentException("endPercentage must be greater than startPercentage");
int offset = (int)Math.Round(range * (taskPercent / 100d));
progress.Report(Math.Min(startPercentage + offset, 100));
}
示例2: Process
protected override void Process(IProgressStatus progress)
{
foreach (var configuration in ResolveConfigurations())
{
var logger = configuration.Resolve<ILogger>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
var timer = new Stopwatch();
timer.Start();
logger.Info(configuration.Name + " is being reserialized");
using (new TransparentSyncDisabler())
{
var targetDataStore = configuration.Resolve<ITargetDataStore>();
var helper = configuration.Resolve<SerializationHelper>();
// nuke any existing items in the store before we begin. This is a full reserialize so we want to
// get rid of any existing stuff even if it's not part of existing configs
logger.Warn("[D] Clearing existing items from {0}".FormatWith(targetDataStore.FriendlyName));
targetDataStore.Clear();
var roots = configuration.Resolve<PredicateRootPathResolver>().GetRootSourceItems();
int index = 1;
foreach (var root in roots)
{
helper.DumpTree(root, configuration);
progress.Report((int) ((index/(double) roots.Length)*100));
index++;
}
}
timer.Stop();
logger.Info("{0} reserialization complete in {1}ms".FormatWith(configuration.Name, timer.ElapsedMilliseconds));
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
}
示例3: Process
protected override void Process(IProgressStatus progress)
{
foreach (var configuration in ResolveConfigurations())
{
var logger = configuration.Resolve<ILogger>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
logger.Info("Control Panel Reserialize: Processing Unicorn configuration " + configuration.Name);
var predicate = configuration.Resolve<IPredicate>();
var serializationProvider = configuration.Resolve<ISerializationProvider>();
var roots = configuration.Resolve<PredicateRootPathResolver>().GetRootSourceItems();
int index = 1;
foreach (var root in roots)
{
var rootReference = serializationProvider.GetReference(root);
if (rootReference != null)
{
logger.Warn("[D] existing serialized items under {0}".FormatWith(rootReference.DisplayIdentifier));
// TODO: this doesn't really account for excluded children - it just nukes everything.
// ideally it would leave excluded serialized items alone.
rootReference.Delete();
}
logger.Info("[U] Serializing included items under root {0}".FormatWith(root.DisplayIdentifier));
Serialize(root, predicate, serializationProvider, logger);
progress.Report((int) ((index/(double) roots.Length)*100));
index++;
}
logger.Info("Control Panel Reserialize: Finished reserializing Unicorn configuration " + configuration.Name);
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
}
示例4: Process
protected override void Process(IProgressStatus progress)
{
progress.ReportStatus("Starting WebForms demonstration...");
for (int i = 0; i <= 100; i++)
{
// slight delay to see loading time
System.Threading.Thread.Sleep(50);
// advance the progress bar status (you can use x % as well as x of y total items)
progress.Report(i);
// demonstrate setting a substatus of the progress bar (e.g. "making database backup")
if (i % 10 == 0) progress.ReportTransientStatus(string.Format("{0}/{1}", i, 100));
// write some stuff to the console to demonstrate detailed output
progress.ReportStatus("At {0}", MessageType.Info, i);
if (i == 90) progress.ReportStatus("Oops, fake error", MessageType.Error);
if (i == 91) progress.ReportStatus("Warning: this can be harmful if misused.", MessageType.Warning);
if (i == 92)
{
progress.ReportStatus("You can also {0} {1}", MessageType.Debug, "use", "string formatting");
}
if (i == 95)
{
progress.ReportStatus("I'm about to throw an exception and write its data to the console!");
// code that can throw an exception should have it caught and written to the console
// normally you might wrap the whole processing in a try-catch block
try
{
throw new Exception("I'm giving it all she's got Jim!", new Exception("Warp core breach"));
}
catch(Exception ex)
{
progress.ReportException(ex);
}
}
}
progress.ReportStatus("WebForms demo complete. See the <a href=\"Tasks.aspx\">tasks demo</a> and the <a href=\"customized.aspx\">customization demo</a>");
}
示例5: Process
protected override void Process(IProgressStatus progress)
{
var configurations = ResolveConfigurations();
foreach (var configuration in configurations)
{
var logger = configuration.Resolve<ILogger>();
var helper = configuration.Resolve<SerializationHelper>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
logger.Info("Control Panel Sync: Processing Unicorn configuration " + configuration.Name);
using (new TransparentSyncDisabler())
{
var pathResolver = configuration.Resolve<PredicateRootPathResolver>();
var roots = pathResolver.GetRootSerializedItems();
var index = 0;
helper.SyncTree(configuration, item =>
{
progress.Report((int) (((index + 1)/(double) roots.Length)*100));
index++;
}, roots);
}
logger.Info("Control Panel Sync: Completed syncing Unicorn configuration " + configuration.Name);
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
CorePipeline.Run("unicornSyncEnd", new UnicornSyncEndPipelineArgs(configurations));
}
示例6: ExecuteTask
protected void ExecuteTask(IProgressStatus progress)
{
for (int i = 0; i <= 100; i++)
{
// slight delay to see loading time
Thread.Sleep(10);
// demonstrate setting a substatus of the progress bar (e.g. "making database backup")
if (i % 10 == 0)
{
progress.ReportTransientStatus(string.Format("{0}/{1}", i, 100));
// write some stuff to the console to demonstrate detailed output
progress.ReportStatus("Task percent {0}", MessageType.Info, i);
}
// advance the progress bar status (you can use x % as well as x of y total items)
progress.Report(i);
}
}
示例7: Process
protected override void Process(IProgressStatus progress)
{
foreach (var configuration in ResolveConfigurations())
{
var logger = configuration.Resolve<ILogger>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
logger.Info("Control Panel Reserialize: Processing Unicorn configuration " + configuration.Name);
using (new TransparentSyncDisabler())
{
var helper = configuration.Resolve<SerializationHelper>();
var roots = configuration.Resolve<PredicateRootPathResolver>().GetRootSourceItems();
int index = 1;
foreach (var root in roots)
{
helper.DumpTree(root);
progress.Report((int) ((index/(double) roots.Length)*100));
index++;
}
}
logger.Info("Control Panel Reserialize: Finished reserializing Unicorn configuration " + configuration.Name);
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
}
示例8: Process
protected override void Process(IProgressStatus progress)
{
foreach (var configuration in ResolveConfigurations())
{
var logger = configuration.Resolve<ILogger>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
logger.Info("Control Panel Sync: Processing Unicorn configuration " + configuration.Name);
var pathResolver = configuration.Resolve<PredicateRootPathResolver>();
var retryer = configuration.Resolve<IDeserializeFailureRetryer>();
var consistencyChecker = configuration.Resolve<IConsistencyChecker>();
var loader = configuration.Resolve<SerializationLoader>();
var roots = pathResolver.GetRootSerializedItems();
for (int index = 0; index < roots.Length; index++)
{
// note: this would be simpler if we used loader.LoadAll() here
// however, we wouldn't be able to track progress.
loader.LoadTree(roots[index], retryer, consistencyChecker);
progress.Report((int)(((index + 1) / (double)roots.Length) * 100));
}
logger.Info("Control Panel Sync: Completed syncing Unicorn configuration " + configuration.Name);
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
}
示例9: ProcessInternal
protected virtual void ProcessInternal(IProgressStatus progress)
{
if (_headingService != null && !_isAutomatedTool)
{
progress.ReportStatus(_headingService.GetHeadingHtml());
}
// note: these logs are intentionally to progress and not loggingConsole as we don't need them in the Sitecore logs
progress.ReportTransientStatus("Executing.");
var heartbeat = new Timer(3000);
var startTime = DateTime.Now;
heartbeat.AutoReset = true;
heartbeat.Elapsed += (sender, args) =>
{
var elapsed = Math.Round((args.SignalTime - startTime).TotalSeconds);
try
{
progress.ReportTransientStatus("Executing for {0} sec.", elapsed.ToString(CultureInfo.InvariantCulture));
}
catch
{
// e.g. HTTP connection disconnected - prevent infinite looping
heartbeat.Stop();
}
};
heartbeat.Start();
try
{
using (new SecurityDisabler())
{
using (new ItemFilterDisabler()) // disable all item filtering (if we're running in live mode we need this to get unadulterated items)
{
Process(progress);
}
}
}
finally
{
heartbeat.Stop();
}
progress.Report(100);
progress.ReportTransientStatus("Completed.");
progress.ReportStatus(_isAutomatedTool ? "\r\n" : "<br>");
progress.ReportStatus("Completed. Want to <a href=\"?verb=\">return to the control panel?</a>");
}
示例10: ProcessInternal
protected virtual void ProcessInternal(IProgressStatus progress)
{
// this bad-ass ASCII art is from http://www.ascii-art.de/ascii/uvw/unicorn.txt - original credit to 'sk'
const string unicorn = @"<pre>
/
.7
\ , //
|\.--._/|//
/\ ) ) ).'/
/( \ // / _ _ _ _ ___ ____ ___ ____ _ _
/( J`((_/ \ | | | | \ | |_ _/ ___/ _ \| _ \| \ | |
/ ) | _\ / | | | | \| || | | | | | | |_) | \| |
/|) \ eJ L | |_| | |\ || | |__| |_| | _ <| |\ |
| \ L \ L L \___/|_| \_|___\____\___/|_| \_\_| \_|
/ \ J `. J L
| ) L \/ \
/ \ J (\ /
| \ \ \```
</pre>";
// note: these logs are intentionally to progress and not loggingConsole as we don't need them in the Sitecore logs
progress.ReportStatus(unicorn, MessageType.Warning);
progress.ReportTransientStatus("Executing.");
var heartbeat = new Timer(3000);
var startTime = DateTime.Now;
heartbeat.AutoReset = true;
heartbeat.Elapsed += (sender, args) =>
{
var elapsed = Math.Round((args.SignalTime - startTime).TotalSeconds);
progress.ReportTransientStatus("Executing for {0} sec.", elapsed.ToString(CultureInfo.InvariantCulture));
};
heartbeat.Start();
try
{
using (new SecurityDisabler())
{
using (new ItemFilterDisabler()) // disable all item filtering (if we're running in live mode we need this to get unadulterated items)
{
Process(progress);
}
}
}
finally
{
heartbeat.Stop();
}
progress.Report(100);
progress.ReportTransientStatus("Completed.");
progress.ReportStatus(_isAutomatedTool ? "\r\n" : "<br>");
progress.ReportStatus("Completed. Want to <a href=\"?verb=\">return to the control panel?</a>");
}
示例11: Process
protected override void Process(IProgressStatus progress)
{
var configurations = ResolveConfigurations();
foreach (var configuration in configurations)
{
var logger = configuration.Resolve<ILogger>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
logger.Info("Control Panel Sync: Processing Unicorn configuration " + configuration.Name);
var beginArgs = new UnicornSyncBeginPipelineArgs(configuration);
CorePipeline.Run("unicornSyncBegin", beginArgs);
if (beginArgs.Aborted)
{
logger.Error("Unicorn Sync Begin pipeline was aborted. Not executing sync for this configuration.");
continue;
}
if (beginArgs.SyncIsHandled)
{
logger.Info("Unicorn Sync Begin pipeline signalled that it handled the sync for this configuration.");
continue;
}
var pathResolver = configuration.Resolve<PredicateRootPathResolver>();
var retryer = configuration.Resolve<IDeserializeFailureRetryer>();
var consistencyChecker = configuration.Resolve<IConsistencyChecker>();
var loader = configuration.Resolve<SerializationLoader>();
var roots = pathResolver.GetRootSerializedItems();
var index = 0;
loader.LoadAll(roots, retryer, consistencyChecker, item =>
{
progress.Report((int)(((index + 1) / (double)roots.Length) * 100));
index++;
});
CorePipeline.Run("unicornSyncComplete", new UnicornSyncCompletePipelineArgs(configuration));
logger.Info("Control Panel Sync: Completed syncing Unicorn configuration " + configuration.Name);
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
CorePipeline.Run("unicornSyncEnd", new UnicornSyncEndPipelineArgs(configurations));
}