Example #1
0
        public void StoreWorkflowData(IEnumerable <KeyValuePair <string, string> > workspaceData)
        {
            try
            {
                if (!_wfLock.Wait(TimeSpan.FromSeconds(60.0)))
                {
                    throw new SynchronizationLockException();
                }

                Workspace.Batch(wsd =>
                                workspaceData.ForEach(data => wsd.Put(data.Key, data.Value)));
            }
            catch (SynchronizationLockException)
            {
                var es = string.Format("Timed out waiting to write workspace data to {0}", Id);
                _log.Error(es);
                var on = Catalog.Factory.Resolve <IApplicationAlert>();
                on.RaiseAlert(ApplicationAlertKind.System, es);
            }
            finally
            {
                _wfLock.Release();
            }
        }