Пример #1
0
        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);
        }
Пример #2
0
        public void Step(int stepCount, int maxCount)
        {
            ProgressItem progressItem = GetCurrentProgressItem();

            progressItem.stepCount += stepCount;
            progressItem.maxCount  += maxCount;
            ProgressItemUpdated(progressItem);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 protected void ProgressItemUpdated(ProgressItem progressItem)
 {
     ProgressItemUpdated(progressItem, null);
 }