public IProgress StartProgress() { ProgressItem progressItem = new ProgressItem(); progressItem.stepCount = 0; progressItem.maxCount = 1; long progressId = 0; while (progressId == 0) { progressId = (long)(new Random().NextDouble() * long.MaxValue); foreach (ProgressItem existingProgressItem in progressItems) { if (existingProgressItem.progressId == progressId) { progressId = 0; break; } } } progressItem.progressId = progressId; progressItems.Add(progressItem); ProgressEvent pEvent = new ProgressEvent(); pEvent.ProgressID = progressId; return(pEvent); }
public void Step(int stepCount, int maxCount) { ProgressItem progressItem = GetCurrentProgressItem(); progressItem.stepCount += stepCount; progressItem.maxCount += maxCount; ProgressItemUpdated(progressItem); }
public void Failure(Exception e) { if (progressItems.Count == 0) { throw new NotSupportedException(); } ProgressItem progressItem = progressItems[progressItems.Count - 1]; progressItems.RemoveAt(progressItems.Count - 1); ProgressItemUpdated(progressItem, e); }
protected void ProgressItemUpdated(ProgressItem progressItem, Exception e) { ProgressEvent progressEvent = new ProgressEvent(); progressEvent.ProgressID = progressItem.progressId; progressEvent.CurrentSteps = progressItem.stepCount; progressEvent.ProgressID = progressItem.maxCount; progressEvent.Exception = e; ProgressListener.HandleProgress(progressEvent); }
public void EndProgress(Object result) { if (progressItems.Count == 0) { throw new NotSupportedException(); } ProgressItem progressItem = progressItems[progressItems.Count - 1]; progressItems.RemoveAt(progressItems.Count - 1); progressItem.stepCount = progressItem.maxCount; ProgressItemUpdated(progressItem); }
protected void ProgressItemUpdated(ProgressItem progressItem) { ProgressItemUpdated(progressItem, null); }