public UploadResourceUsageRightsTemplate(IDatabase db, ResourceUsageRightsTemplate template,
                                          int sendTimeout, int receiveTimeout, int sendBufferSize, int receiveBufferSize)
     : base(sendTimeout, receiveTimeout, sendBufferSize, receiveBufferSize)
 {
     Value = template;
     _db   = db;
 }
 public UploadResourceUsageRightsTemplate(IDatabase db, ResourceUsageRightsTemplate template,
     int sendTimeout, int receiveTimeout, int sendBufferSize, int receiveBufferSize)
     : base(sendTimeout, receiveTimeout, sendBufferSize, receiveBufferSize)
 {
     Value = template;
     _db = db;
 }
Ejemplo n.º 3
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            ResourceUsageRightsTemplate template = (ResourceUsageRightsTemplate)result;

            WriteLine("ModifyResourceUsageRightsTemplate.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
        public override void Process()
        {
            Remoting.SaveSingle rem;

            TriggerOnActionChanged(EngineActionType.GettingResourceUsageRightsTemplate, true);

            try
            {
                Transitions.ResourceUsageRights txRur = new Transitions.ResourceUsageRights();
                rem = new Remoting.SaveSingle(_db, txRur.Transition(Value), _sendTimeout, _receiveTimeout,
                                              _sendBufferSize, _receiveBufferSize);
            }
            catch (Exception e)
            {
                Logger.Storage.Error("An exception occurred while instantiating the Transactions.Tasks.Remoting.SaveSingle object.", e);
                throw;
            }

            rem.OnComplete += delegate(Remoting.Base sender, ICommandReply reply)
            {
                if (!((Commands.PutDocumentReply)reply).Ok)
                {
                    Value = null;
                }
                else
                {
                    Value = new ResourceUsageRightsTemplate(((Commands.PutDocumentReply)reply).Rev,
                                                            Value.UsageRights);
                }
                TriggerOnComplete(reply);
            };
            rem.OnError += delegate(Remoting.Base sender, string message, Exception exception)
            {
                TriggerOnError(message, exception);
            };
            rem.OnProgress += delegate(Remoting.Base sender, OpenDMS.Networking.Protocols.Tcp.DirectionType direction, int packetSize, decimal sendPercentComplete, decimal receivePercentComplete)
            {
                TriggerOnProgress(direction, packetSize, sendPercentComplete, receivePercentComplete);
            };
            rem.OnTimeout += delegate(Remoting.Base sender)
            {
                TriggerOnTimeout();
            };

            rem.Process();
        }
        public override void Process()
        {
            Remoting.SaveSingle rem;

            TriggerOnActionChanged(EngineActionType.GettingResourceUsageRightsTemplate, true);

            try
            {
                Transitions.ResourceUsageRights txRur = new Transitions.ResourceUsageRights();
                rem = new Remoting.SaveSingle(_db, txRur.Transition(Value), _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize);
            }
            catch (Exception e)
            {
                Logger.Storage.Error("An exception occurred while instantiating the Transactions.Tasks.Remoting.SaveSingle object.", e);
                throw;
            }

            rem.OnComplete += delegate(Remoting.Base sender, ICommandReply reply)
            {
                if (!((Commands.PutDocumentReply)reply).Ok)
                    Value = null;
                else
                {
                    Value = new ResourceUsageRightsTemplate(((Commands.PutDocumentReply)reply).Rev,
                        Value.UsageRights);
                }
                TriggerOnComplete(reply);
            };
            rem.OnError += delegate(Remoting.Base sender, string message, Exception exception)
            {
                TriggerOnError(message, exception);
            };
            rem.OnProgress += delegate(Remoting.Base sender, OpenDMS.Networking.Protocols.Tcp.DirectionType direction, int packetSize, decimal sendPercentComplete, decimal receivePercentComplete)
            {
                TriggerOnProgress(direction, packetSize, sendPercentComplete, receivePercentComplete);
            };
            rem.OnTimeout += delegate(Remoting.Base sender)
            {
                TriggerOnTimeout();
            };

            rem.Process();
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadGlobalPermissions))
            {
                Tasks.DownloadGlobalPermissions task = (Tasks.DownloadGlobalPermissions)sender;
                _gur = task.GlobalUsageRights;
                RunTaskProcess(new Tasks.CheckGlobalPermissions(_db, _gur, _requestingPartyType,
                    _session, Security.Authorization.GlobalPermissionType.ModifyResourceUsageRightsTemplate,
                    _sendTimeout, _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckGlobalPermissions))
            {
                Tasks.CheckGlobalPermissions task = (Tasks.CheckGlobalPermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.DownloadResourceUsageRightsTemplate(_db, _sendTimeout, 
                    _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.DownloadResourceUsageRightsTemplate))
            {
                Tasks.DownloadResourceUsageRightsTemplate task = (Tasks.DownloadResourceUsageRightsTemplate)sender;
                _rurt = new CouchDB.ResourceUsageRightsTemplate(task.Value.Revision, _usageRights);
                RunTaskProcess(new Tasks.UploadResourceUsageRightsTemplate(_db, _rurt,
                    _sendTimeout, _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResourceUsageRightsTemplate))
            {
                Tasks.UploadResourceUsageRightsTemplate task = (Tasks.UploadResourceUsageRightsTemplate)sender;
                _rurt = task.Value;
                ResourceUsageRightsTemplate = _rurt;
                TriggerOnComplete(reply, ResourceUsageRightsTemplate);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadGlobalPermissions))
            {
                Tasks.DownloadGlobalPermissions task = (Tasks.DownloadGlobalPermissions)sender;
                _gur = task.GlobalUsageRights;
                RunTaskProcess(new Tasks.CheckGlobalPermissions(_db, _gur, _requestingPartyType,
                                                                _session, Security.Authorization.GlobalPermissionType.ModifyResourceUsageRightsTemplate,
                                                                _sendTimeout, _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckGlobalPermissions))
            {
                Tasks.CheckGlobalPermissions task = (Tasks.CheckGlobalPermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.DownloadResourceUsageRightsTemplate(_db, _sendTimeout,
                                                                             _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.DownloadResourceUsageRightsTemplate))
            {
                Tasks.DownloadResourceUsageRightsTemplate task = (Tasks.DownloadResourceUsageRightsTemplate)sender;
                _rurt = new CouchDB.ResourceUsageRightsTemplate(task.Value.Revision, _usageRights);
                RunTaskProcess(new Tasks.UploadResourceUsageRightsTemplate(_db, _rurt,
                                                                           _sendTimeout, _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResourceUsageRightsTemplate))
            {
                Tasks.UploadResourceUsageRightsTemplate task = (Tasks.UploadResourceUsageRightsTemplate)sender;
                _rurt = task.Value;
                ResourceUsageRightsTemplate = _rurt;
                TriggerOnComplete(reply, ResourceUsageRightsTemplate);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }