Exemplo n.º 1
0
 internal C8oProgress(C8oProgress progress)
 {
     continuous = progress.continuous;
     finished   = progress.finished;
     pull       = progress.pull;
     current    = progress.current;
     total      = progress.total;
     status     = progress.status;
     taskInfo   = progress.taskInfo;
     raw        = progress.raw;
 }
Exemplo n.º 2
0
        internal void OnProgress(C8oProgress progress)
        {
            if (!c8oProgress.Equals(default(KeyValuePair <C8oOnProgress, bool>)))
            {
                if (c8oProgress.Value)
                {
                    var locker = new object();
                    lock (locker)
                    {
                        c8o.RunUI(() =>
                        {
                            lock (locker)
                            {
                                try
                                {
                                    c8oProgress.Key.Invoke(progress);
                                }
                                catch (Exception e)
                                {
                                    OnFailure(e, new Dictionary <string, object>()
                                    {
                                        { C8o.ENGINE_PARAMETER_PROGRESS, progress }
                                    });
                                }
                                finally
                                {
                                    Monitor.Pulse(locker);
                                }
                            }
                        });

                        Monitor.Wait(locker);
                    }
                }
                else
                {
                    c8oProgress.Key.Invoke(progress);
                }
            }
            else if (nextPromise != null)
            {
                nextPromise.OnProgress(progress);
            }
        }