Example #1
0
        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.CreateUser, _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.UploadUser(_db, _user, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadUser))
            {
                TriggerOnComplete(reply, _user);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _reply = reply;
                Resource = task.Resource;
                Remainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, Resource, _requestingPartyType,
                    _session, Security.Authorization.ResourcePermissionType.Checkout, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                TriggerOnComplete(_reply, new Tuple<Data.Resource, JObject>(Resource, Remainder));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DetermineIfExists))
            {
                if (reply.IsError)
                {
                    _onCompleteSent = true;
                    IsInstalled = false;
                    TriggerOnComplete(reply, IsInstalled);
                    return;
                }

                _count++;
                if (_count >= 5 && !_onCompleteSent)
                {
                    _onCompleteSent = true;
                    IsInstalled = true;
                    TriggerOnComplete(null, IsInstalled);
                }
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #4
0
        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.CreateUser, _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.UploadUser(_db, _user, _sendTimeout, _receiveTimeout,
                                                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadUser))
            {
                TriggerOnComplete(reply, _user);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #5
0
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DetermineIfExists))
            {
                if (reply.IsError)
                {
                    _onCompleteSent = true;
                    IsInstalled     = false;
                    TriggerOnComplete(reply, IsInstalled);
                    return;
                }

                _count++;
                if (_count >= 5 && !_onCompleteSent)
                {
                    _onCompleteSent = true;
                    IsInstalled     = true;
                    TriggerOnComplete(null, IsInstalled);
                }
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
 public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
 {
     Tasks.DownloadUser task = (Tasks.DownloadUser)sender;
     Session = _sessionMgr.AuthenticateUser(_db, task.User, _password);
     IsAuthenticated = (Session != null);
     TriggerOnComplete(null, new Tuple<Security.Session, bool>(Session, IsAuthenticated));
 }
Example #7
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop       = DateTime.Now;
            TimeSpan duration   = stop - _start;
            int      successQty = 0;

            OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply)reply;

            WriteLine("Install.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            for (int i = 0; i < r.Results.Count; i++)
            {
                if (r.Results[i].Error != null)
                {
                    WriteLine("\t" + r.Results[i].Id + " : " + r.Results[i].Error);
                }
                else
                {
                    successQty++;
                    WriteLine("\t" + r.Results[i].Id + " : success.");
                }
            }

            if (successQty == r.Results.Count)
            {
                OnInstallSuccess();
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _reply    = reply;
                Resource  = task.Resource;
                Remainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, Resource, _requestingPartyType,
                                                                  _session, Security.Authorization.ResourcePermissionType.Checkout, _sendTimeout, _receiveTimeout,
                                                                  _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                TriggerOnComplete(_reply, new Tuple <Data.Resource, JObject>(Resource, Remainder));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #9
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            WriteLine("SearchTest.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
Example #10
0
 public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
 {
     Tasks.DownloadUser task = (Tasks.DownloadUser)sender;
     Session         = _sessionMgr.AuthenticateUser(_db, task.User, _password);
     IsAuthenticated = (Session != null);
     TriggerOnComplete(null, new Tuple <Security.Session, bool>(Session, IsAuthenticated));
 }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            WriteLine("SearchTest.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            Tuple<Resource, OpenDMS.Storage.Data.Version> r = (Tuple<Resource, OpenDMS.Storage.Data.Version>)result;
            WriteLine("CreateNewResource.Complete - Resource: " + r.Item1.ResourceId.ToString() + " and Version: " + r.Item2.VersionId.ToString() + " successfully created in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
Example #13
0
        protected void TriggerOnComplete(ICommandReply reply)
        {
            if (OnComplete == null)
                throw new NotImplementedException("OnComplete must be implemented.");

            Reply = reply;
            OnComplete(this, reply);
        }
Example #14
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;
            Tuple <Resource, OpenDMS.Storage.Data.Version> res = (Tuple <Resource, OpenDMS.Storage.Data.Version>)result;

            WriteLine("CreateNewVersion.Complete - Resource: " + res.Item1.ResourceId.ToString() + " and Version: " + res.Item2.VersionId.ToString() + " successfully created in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }

                // First, we load up revisions
                for (int i = 0; i < _resource.VersionIds.Count; i++)
                {
                    _revisions.Add(_resource.VersionIds[i], null);
                }

                // Now our _revisions holds indexes for all version ids
                // Dispatch all our heads to get the revisions
                // *note* do not combine these loops - we want the full dictionary before starting
                for (int i = 0; i < _resource.VersionIds.Count; i++)
                {
                    RunTaskProcess(new Tasks.HeadVersion(_db, _resource.VersionIds[i], _sendTimeout,
                                                         _receiveTimeout, _sendBufferSize, _receiveBufferSize));
                }
            }
            else if (t == typeof(Tasks.HeadVersion))
            {
                Tasks.HeadVersion task = (Tasks.HeadVersion)sender;

                if (!_revisions.ContainsKey(task.VersionId))
                {
                    TriggerOnError(task, "The id '" + task.VersionId.ToString() + "' could not be found.", new KeyNotFoundException());
                    return;
                }

                lock (_revisions)
                {
                    _receivedCount++;
                    _revisions[task.VersionId] = task.Revision;
                    if (_revisions.Count == _receivedCount)
                    {
                        TriggerOnComplete(reply, _revisions);
                    }
                    else
                    {
                        TriggerOnProgress(task, Networking.Protocols.Tcp.DirectionType.Download, -1, -1,
                                          ((decimal)((decimal)_receivedCount / (decimal)_revisions.Count)));
                    }
                }
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();
            
            if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }

                // First, we load up revisions
                for (int i = 0; i < _resource.VersionIds.Count; i++)
                {
                    _revisions.Add(_resource.VersionIds[i], null);
                }

                // Now our _revisions holds indexes for all version ids
                // Dispatch all our heads to get the revisions
                // *note* do not combine these loops - we want the full dictionary before starting
                for (int i = 0; i < _resource.VersionIds.Count; i++)
                {
                    RunTaskProcess(new Tasks.HeadVersion(_db, _resource.VersionIds[i], _sendTimeout, 
                        _receiveTimeout, _sendBufferSize, _receiveBufferSize));
                }
            }
            else if (t == typeof(Tasks.HeadVersion))
            {
                Tasks.HeadVersion task = (Tasks.HeadVersion)sender;
                
                if (!_revisions.ContainsKey(task.VersionId))
                {
                    TriggerOnError(task, "The id '" + task.VersionId.ToString() + "' could not be found.", new KeyNotFoundException());
                    return;
                }
                
                lock (_revisions)
                {
                    _receivedCount++;
                    _revisions[task.VersionId] = task.Revision;
                    if (_revisions.Count == _receivedCount)
                    {
                        TriggerOnComplete(reply, _revisions);
                    }
                    else
                    {
                        TriggerOnProgress(task, Networking.Protocols.Tcp.DirectionType.Download, -1, -1,
                            ((decimal)((decimal)_receivedCount / (decimal)_revisions.Count)));
                    }
                }
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #17
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 TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _resource = task.Resource;
                _resourceRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _resource, _requestingPartyType,
                    _session, Security.Authorization.ResourcePermissionType.Checkout, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.MarkResourceForCheckout(_resource, _session.User.Username, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MarkResourceForCheckout))
            {
                List<Exception> errors;
                Tasks.MarkResourceForCheckout task = (Tasks.MarkResourceForCheckout)sender;
                Transitions.Resource txResource = new Transitions.Resource();
                Model.Document doc = txResource.Transition(_resource, out errors);
                doc.CombineWith(_resourceRemainder);
                RunTaskProcess(new Tasks.UploadResource(_db, doc, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResource))
            {
                Tasks.UploadResource task = (Tasks.UploadResource)sender;
                if(reply.IsError)
                {
                    TriggerOnError(sender, reply.ToString(), null);
                    return;
                }
                RunTaskProcess(new Tasks.DownloadVersion(_db, _id, _sendTimeout, _receiveTimeout, 
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.DownloadVersion))
            {
                Tasks.DownloadVersion task = (Tasks.DownloadVersion)sender;
                Version = task.Version;
                Remainder = task.Remainder;
                TriggerOnComplete(reply, new Tuple<Data.Version, JObject>(Version, Remainder));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #19
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            GlobalUsageRights gur = (GlobalUsageRights)result;

            WriteLine("ModifyGlobalPermissions.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
Example #20
0
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _resource          = task.Resource;
                _resourceRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _resource, _requestingPartyType,
                                                                  _session, Security.Authorization.ResourcePermissionType.Checkout, _sendTimeout, _receiveTimeout,
                                                                  _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.MarkResourceForCheckout(_resource, _session.User.Username, _sendTimeout, _receiveTimeout,
                                                                 _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MarkResourceForCheckout))
            {
                List <Exception> errors;
                Tasks.MarkResourceForCheckout task       = (Tasks.MarkResourceForCheckout)sender;
                Transitions.Resource          txResource = new Transitions.Resource();
                Model.Document doc = txResource.Transition(_resource, out errors);
                doc.CombineWith(_resourceRemainder);
                RunTaskProcess(new Tasks.UploadResource(_db, doc, _sendTimeout, _receiveTimeout,
                                                        _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResource))
            {
                Tasks.UploadResource task = (Tasks.UploadResource)sender;
                if (reply.IsError)
                {
                    TriggerOnError(sender, reply.ToString(), null);
                    return;
                }
                RunTaskProcess(new Tasks.DownloadVersion(_db, _id, _sendTimeout, _receiveTimeout,
                                                         _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.DownloadVersion))
            {
                Tasks.DownloadVersion task = (Tasks.DownloadVersion)sender;
                Version   = task.Version;
                Remainder = task.Remainder;
                TriggerOnComplete(reply, new Tuple <Data.Version, JObject>(Version, Remainder));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            GlobalUsageRights gur = (GlobalUsageRights)result;

            WriteLine("GetGlobalPermissions.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
        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.");
        }
Example #23
0
        protected void TriggerOnComplete(ICommandReply reply)
        {
            if (OnComplete == null)
            {
                throw new NotImplementedException("OnComplete must be implemented.");
            }

            Reply = reply;
            OnComplete(this, reply);
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;
            Tuple<OpenDMS.Storage.Data.Resource, OpenDMS.Storage.Data.Version> res =
                (Tuple<OpenDMS.Storage.Data.Resource, OpenDMS.Storage.Data.Version>)result;

            WriteLine("ModifyVersion.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + res.Item2.VersionId.ToString());
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;
            Tuple <OpenDMS.Storage.Data.Resource, OpenDMS.Storage.Data.Version> res =
                (Tuple <OpenDMS.Storage.Data.Resource, OpenDMS.Storage.Data.Version>)result;

            WriteLine("ModifyVersion.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + res.Item2.VersionId.ToString());
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;
            List<OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply.Entry> results = (List<OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply.Entry>)result;

            WriteLine("DeleteResource.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            for(int i=0; i<results.Count; i++)
                WriteLine("\tId: " + results[i].Id.ToString());
        }
Example #27
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            OpenDMS.Storage.Providers.CouchDB.Commands.PutDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.PutDocumentReply)reply;

            if (r.Ok)
                WriteLine("ModifyGroup.Complete - success in " + duration.TotalMilliseconds.ToString() + "ms.");
            else
                WriteLine("ModifyGroup.Complete - failed in " + duration.TotalMilliseconds.ToString() + "ms.");
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;
            List <OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply.Entry> results = (List <OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply.Entry>)result;

            WriteLine("DeleteResource.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            for (int i = 0; i < results.Count; i++)
            {
                WriteLine("\tId: " + results[i].Id.ToString());
            }
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;
            Tuple<OpenDMS.Storage.Data.Version, Newtonsoft.Json.Linq.JObject> res =
                (Tuple<OpenDMS.Storage.Data.Version, Newtonsoft.Json.Linq.JObject>)result;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply)reply;

            WriteLine("CheckoutVersion.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + res.Item1.VersionId.ToString());
        }
Example #30
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;
            Tuple <OpenDMS.Storage.Data.Version, Newtonsoft.Json.Linq.JObject> res =
                (Tuple <OpenDMS.Storage.Data.Version, Newtonsoft.Json.Linq.JObject>)result;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply)reply;

            WriteLine("CheckoutVersion.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + res.Item1.VersionId.ToString());
        }
Example #31
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply)reply;

            OpenDMS.Storage.Providers.CouchDB.Transitions.User txUser = new OpenDMS.Storage.Providers.CouchDB.Transitions.User();
            OpenDMS.Storage.Security.User user = txUser.Transition(r.Document);

            WriteLine("GetUser.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + user.Id + ", Name: " + user.Username);
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply)reply;

            OpenDMS.Storage.Providers.CouchDB.Transitions.GroupCollection gc = new OpenDMS.Storage.Providers.CouchDB.Transitions.GroupCollection();
            List<OpenDMS.Storage.Security.Group> groups = gc.Transition(r.View);

            for (int i = 0; i < groups.Count; i++)
            {
                comboBox1.Invoke(new MethodInvoker(delegate { comboBox1.Items.Add(groups[i]); }));
            }

            comboBox1.Invoke(new MethodInvoker(delegate { panel1.Visible = false; }));
        }
Example #33
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply)reply;

            OpenDMS.Storage.Providers.CouchDB.Transitions.UserCollection uc = new OpenDMS.Storage.Providers.CouchDB.Transitions.UserCollection();
            List <OpenDMS.Storage.Security.User> users = uc.Transition(r.View);

            for (int i = 0; i < users.Count; i++)
            {
                comboBox1.Invoke(new MethodInvoker(delegate { comboBox1.Items.Add(users[i]); }));
            }

            comboBox1.Invoke(new MethodInvoker(delegate { panel1.Visible = false; }));
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply)reply;

            OpenDMS.Storage.Providers.CouchDB.Transitions.User txUser = new OpenDMS.Storage.Providers.CouchDB.Transitions.User();
            OpenDMS.Storage.Security.User user = txUser.Transition(r.Document);

            WriteLine("GetUser.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + user.Id + ", Name: " + user.Username);
        }
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;
            Newtonsoft.Json.Linq.JObject remainder;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply)reply;

            OpenDMS.Storage.Providers.CouchDB.Transitions.Resource txResource = new OpenDMS.Storage.Providers.CouchDB.Transitions.Resource();
            OpenDMS.Storage.Data.Resource resource = txResource.Transition(r.Document, out remainder);

            WriteLine("GetResourceReadOnly.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + resource.ResourceId.ToString());
        }
Example #36
0
        protected void TriggerOnComplete(ICommandReply reply)
        {
            if (OnComplete == null)
                throw new NotImplementedException("OnComplete must be implemented.");

            try
            {
                OnComplete(this, reply);
            }
            catch (System.Exception e)
            {
                Logger.Storage.Error("An exception occurred while calling the OnComplete event.", e);
                throw;
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                Resource = task.Resource;
                ResourceRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, Resource, _requestingPartyType,
                    _session, Security.Authorization.ResourcePermissionType.Checkout, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.MarkResourceForCheckout(Resource, _session.User.Username, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MarkResourceForCheckout))
            {
                Tasks.MarkResourceForCheckout task = (Tasks.MarkResourceForCheckout)sender;
                Resource = task.Resource;
                RunTaskProcess(new Tasks.UploadResource(_db, Resource, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResource))
            {
                RunTaskProcess(new Tasks.DownloadVersion(_db, Resource.CurrentVersionId, _sendTimeout, 
                    _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.DownloadVersion))
            {
                Tasks.DownloadVersion task = (Tasks.DownloadVersion)sender;
                Version = task.Version;
                VersionRemainder = task.Remainder;
                TriggerOnComplete(reply, new Tuple<Data.Resource, JObject, Data.Version, JObject>(Resource, ResourceRemainder, Version, VersionRemainder));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #38
0
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                Resource          = task.Resource;
                ResourceRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, Resource, _requestingPartyType,
                                                                  _session, Security.Authorization.ResourcePermissionType.Checkout, _sendTimeout, _receiveTimeout,
                                                                  _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.MarkResourceForCheckout(Resource, _session.User.Username, _sendTimeout, _receiveTimeout,
                                                                 _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MarkResourceForCheckout))
            {
                Tasks.MarkResourceForCheckout task = (Tasks.MarkResourceForCheckout)sender;
                Resource = task.Resource;
                RunTaskProcess(new Tasks.UploadResource(_db, Resource, _sendTimeout, _receiveTimeout,
                                                        _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResource))
            {
                RunTaskProcess(new Tasks.DownloadVersion(_db, Resource.CurrentVersionId, _sendTimeout,
                                                         _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.DownloadVersion))
            {
                Tasks.DownloadVersion task = (Tasks.DownloadVersion)sender;
                Version          = task.Version;
                VersionRemainder = task.Remainder;
                TriggerOnComplete(reply, new Tuple <Data.Resource, JObject, Data.Version, JObject>(Resource, ResourceRemainder, Version, VersionRemainder));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #39
0
        private void OnAuthenticated(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            Tuple<OpenDMS.Storage.Security.Session, bool> r = (Tuple<OpenDMS.Storage.Security.Session, bool>)result;

            if (!r.Item2)
            {
                WriteLine("Authenticate - The user failed authentication in " + duration.TotalMilliseconds.ToString() + "ms.");
                return;
            }

            WriteLine("Authenticate - the user passed authentication and has been assigned the authentication token: " + r.Item1.AuthToken.ToString());
            OnAuthenticationSuccess(r.Item1);
        }
Example #40
0
        private void OnAuthenticated(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            Tuple <OpenDMS.Storage.Security.Session, bool> r = (Tuple <OpenDMS.Storage.Security.Session, bool>)result;

            if (!r.Item2)
            {
                WriteLine("Authenticate - The user failed authentication in " + duration.TotalMilliseconds.ToString() + "ms.");
                return;
            }

            WriteLine("Authenticate - the user passed authentication and has been assigned the authentication token: " + r.Item1.AuthToken.ToString());
            OnAuthenticationSuccess(r.Item1);
        }
Example #41
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            Newtonsoft.Json.Linq.JObject remainder;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetDocumentReply)reply;

            OpenDMS.Storage.Providers.CouchDB.Transitions.Resource txResource = new OpenDMS.Storage.Providers.CouchDB.Transitions.Resource();
            OpenDMS.Storage.Data.Resource resource = txResource.Transition(r.Document, out remainder);

            WriteLine("GetResourceReadOnly.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            WriteLine("\tId: " + resource.ResourceId.ToString());
        }
Example #42
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            OpenDMS.Storage.Providers.CouchDB.Commands.PutDocumentReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.PutDocumentReply)reply;

            if (r.Ok)
            {
                WriteLine("ModifyResource.Complete - success in " + duration.TotalMilliseconds.ToString() + "ms.");
            }
            else
            {
                WriteLine("ModifyResource.Complete - failed in " + duration.TotalMilliseconds.ToString() + "ms.");
            }
        }
Example #43
0
        protected void TriggerOnComplete(ICommandReply reply, object result)
        {
            if (OnComplete == null)
            {
                throw new NotImplementedException("OnComplete must be implemented.");
            }

            try
            {
                OnComplete(this, reply, result);
            }
            catch (System.Exception e)
            {
                Logger.Storage.Error("An exception occurred while calling the OnComplete event.", e);
                throw;
            }
        }
Example #44
0
        public void IsInstalled_OnComplete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;


            if (!(bool)result)
            {
                BtnInstall.Invoke(new MethodInvoker(delegate { BtnInstall.Enabled = true; }));
                WriteLine("Result - OpenDMS.Storage has not been successfully installed on the CouchDB server.  Determined in " + duration.TotalMilliseconds.ToString() + "ms.");
            }
            else
            {
                IsInstalled = true;
                BtnInstall.Invoke(new MethodInvoker(delegate { BtnInstall.Enabled = false; }));
                WriteLine("Result - OpenDMS.Storage is successfully installed on the CouchDB server.  Determined in " + duration.TotalMilliseconds.ToString() + "ms.");
            }
        }
Example #45
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop     = DateTime.Now;
            TimeSpan duration = stop - _start;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply)reply;

            WriteLine("GetAllUsers.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            OpenDMS.Storage.Providers.CouchDB.Transitions.UserCollection uc = new OpenDMS.Storage.Providers.CouchDB.Transitions.UserCollection();
            List <OpenDMS.Storage.Security.User> users = uc.Transition(r.View);

            WriteLine("The following groups were loaded:");
            for (int i = 0; i < users.Count; i++)
            {
                WriteLine("\t" + users[i].Username);
            }
        }
Example #46
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;

            OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.GetViewReply)reply;

            WriteLine("GetAllUsers.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            OpenDMS.Storage.Providers.CouchDB.Transitions.UserCollection uc = new OpenDMS.Storage.Providers.CouchDB.Transitions.UserCollection();
            List<OpenDMS.Storage.Security.User> users = uc.Transition(r.View);

            WriteLine("The following groups were loaded:");
            for (int i=0; i<users.Count; i++)
            {
                WriteLine("\t" + users[i].Username);
            }
        }
Example #47
0
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.Search))
            {
                SearchProviders.CdbLucene.SearchReply searchReply;
                Tasks.Search task = (Tasks.Search)sender;
                Commands.GetDocumentReply r = (Commands.GetDocumentReply)reply;
                Transitions.SearchReply sr = new Transitions.SearchReply();
                searchReply = sr.Transition(task.Document);

                TriggerOnComplete(reply, searchReply.MakeResult());
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #48
0
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.Search))
            {
                SearchProviders.CdbLucene.SearchReply searchReply;
                Tasks.Search task            = (Tasks.Search)sender;
                Commands.GetDocumentReply r  = (Commands.GetDocumentReply)reply;
                Transitions.SearchReply   sr = new Transitions.SearchReply();
                searchReply = sr.Transition(task.Document);

                TriggerOnComplete(reply, searchReply.MakeResult());
            }
            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);
            }
        }
        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);
            }
        }
Example #51
0
        void Checkout_Complete(EngineRequest request, ICommandReply reply, object result)
        {
            Tuple <OpenDMS.Storage.Data.Resource, Newtonsoft.Json.Linq.JObject> r = (Tuple <OpenDMS.Storage.Data.Resource, Newtonsoft.Json.Linq.JObject>)result;

            request                        = new OpenDMS.Storage.Providers.EngineRequest();
            request.Engine                 = _engine;
            request.Database               = _db;
            request.OnActionChanged       += new EngineBase.ActionDelegate(EngineAction);
            request.OnProgress            += new EngineBase.ProgressDelegate(Progress);
            request.OnComplete            += new EngineBase.CompletionDelegate(Complete);
            request.OnTimeout             += new EngineBase.TimeoutDelegate(Timeout);
            request.OnError               += new EngineBase.ErrorDelegate(Error);
            request.OnAuthorizationDenied += new EngineBase.AuthorizationDelegate(AuthorizationDenied);
            request.AuthToken              = _window.Session.AuthToken;
            request.RequestingPartyType    = OpenDMS.Storage.Security.RequestingPartyType.User;

            _start = DateTime.Now;
            WriteLine("Modifying the resource...");
            r.Item1.Metadata.Add("$modified", DateTime.Now);
            _engine.ModifyResource(request, r.Item1);
        }
        void Checkout_Complete(EngineRequest request, ICommandReply reply, object result)
        {
            Tuple<OpenDMS.Storage.Data.Resource, Newtonsoft.Json.Linq.JObject> r = (Tuple<OpenDMS.Storage.Data.Resource, Newtonsoft.Json.Linq.JObject>)result;

            request = new OpenDMS.Storage.Providers.EngineRequest();
            request.Engine = _engine;
            request.Database = _db;
            request.OnActionChanged += new EngineBase.ActionDelegate(EngineAction);
            request.OnProgress += new EngineBase.ProgressDelegate(Progress);
            request.OnComplete += new EngineBase.CompletionDelegate(Complete);
            request.OnTimeout += new EngineBase.TimeoutDelegate(Timeout);
            request.OnError += new EngineBase.ErrorDelegate(Error);
            request.OnAuthorizationDenied += new EngineBase.AuthorizationDelegate(AuthorizationDenied);
            request.AuthToken = _window.Session.AuthToken;
            request.RequestingPartyType = OpenDMS.Storage.Security.RequestingPartyType.User;

            _start = DateTime.Now;
            WriteLine("Modifying the resource...");
            r.Item1.Metadata.Add("$modified", DateTime.Now);
            _engine.ModifyResource(request, r.Item1);
        }
Example #53
0
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            // 1) Download
            // 2) Check Perms
            // 3) Upload Resource (no need to update versions, etc as we just want to change resource)

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _storedResource  = task.Resource;
                _storedRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _storedResource,
                                                                  _requestingPartyType, _session, Security.Authorization.ResourcePermissionType.Modify, _sendTimeout, _receiveTimeout,
                                                                  _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.UploadResource(_db, _resource, _sendTimeout, _receiveTimeout,
                                                        _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResource))
            {
                TriggerOnComplete(reply, _resource);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();
            // 1) Download
            // 2) Check Perms
            // 3) Upload Resource (no need to update versions, etc as we just want to change resource)

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _storedResource = task.Resource;
                _storedRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _storedResource,
                    _requestingPartyType, _session, Security.Authorization.ResourcePermissionType.Modify, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.UploadResource(_db, _resource, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadResource))
            {
                TriggerOnComplete(reply, _resource);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #55
0
        private void Complete(EngineRequest request, ICommandReply reply, object result)
        {
            DateTime stop = DateTime.Now;
            TimeSpan duration = stop - _start;
            int successQty = 0;

            OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply r = (OpenDMS.Storage.Providers.CouchDB.Commands.PostBulkDocumentsReply)reply;

            WriteLine("Install.Complete - results received in " + duration.TotalMilliseconds.ToString() + "ms.");

            for (int i = 0; i < r.Results.Count; i++)
            {
                if (r.Results[i].Error != null)
                    WriteLine("\t" + r.Results[i].Id + " : " + r.Results[i].Error);
                else
                {
                    successQty++;
                    WriteLine("\t" + r.Results[i].Id + " : success.");
                }
            }

            if (successQty == r.Results.Count)
                OnInstallSuccess();
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _resource = task.Resource;
                _resourceRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _resource, _requestingPartyType,
                    _session, Security.Authorization.ResourcePermissionType.Modify, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.MarkResourceForCheckout(_resource, _session.User.Username, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MarkResourceForCheckout))
            {
                Tasks.MarkResourceForCheckout task = (Tasks.MarkResourceForCheckout)sender;
                _resource = task.Resource;

                List<Exception> errors;
                List<Model.Document> docs = new List<Model.Document>();
                Transitions.Version txVersion = new Transitions.Version();
                Transitions.Resource txResource = new Transitions.Resource();

                docs.Add(txResource.Transition(_resource, out errors));
                if (errors != null)
                {
                    TriggerOnError(null, errors[0].Message, errors[0]);
                    return;
                }
                docs[0].CombineWith(_resourceRemainder);
                docs.Add(txVersion.Transition(_version, out errors));
                if (errors != null)
                {
                    TriggerOnError(null, errors[0].Message, errors[0]);
                    return;
                }

                RunTaskProcess(new Tasks.MakeBulkDocument(docs, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MakeBulkDocument))
            {
                Tasks.MakeBulkDocument task = (Tasks.MakeBulkDocument)sender;
                RunTaskProcess(new Tasks.UploadBulkDocuments(_db, task.BulkDocument, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadBulkDocuments))
            {
                Tasks.UploadBulkDocuments task = (Tasks.UploadBulkDocuments)sender;

                Commands.PostBulkDocumentsReply.Entry entry = task.FindEntryById(_version.VersionId.ToString());

                if (entry == null)
                {
                    TriggerOnError(task, "Failed to locate " + _version.VersionId.ToString() + " in the " +
                        "bulk document post results.", null);
                    return;
                }

                // This is needed so that couchdb can apply the content to the correct revision.
                _version.UpdateRevision(entry.Rev);

                // If no content -> return
                if (_version.Content == null)
                {
                    Resource = _resource;
                    Version = _version;
                    TriggerOnComplete(reply, new Tuple<Data.Resource, Data.Version>(_resource, _version));
                    return;
                }

                // Upload Data.Content from Data.Version
                RunTaskProcess(new Tasks.UploadContent(_db, _version, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadContent))
            {
                Resource = _resource;
                Version = _version;
                TriggerOnComplete(reply, new Tuple<Data.Resource, Data.Version>(_resource, _version));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
Example #57
0
 public abstract void TaskComplete(Tasks.Base sender, ICommandReply reply);
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _resource = task.Resource;
                _remainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _resource, _requestingPartyType,
                    _session, Security.Authorization.ResourcePermissionType.Delete,
                    _sendTimeout, _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }

                // First, we load up revisions
                for (int i = 0; i < _resource.VersionIds.Count; i++)
                {
                    _versions.Add(_resource.VersionIds[i], new Data.Version(_resource.VersionIds[i]));
                }

                // Now our _revisions holds indexes for all version ids
                // Dispatch all our heads to get the revisions
                // *note* do not combine these loops - we want the full dictionary before starting
                for (int i = 0; i < _resource.VersionIds.Count; i++)
                {
                    RunTaskProcess(new Tasks.HeadVersion(_db, _resource.VersionIds[i], _sendTimeout,
                        _receiveTimeout, _sendBufferSize, _receiveBufferSize));
                }
            }
            else if (t == typeof(Tasks.HeadVersion))
            {
                Tasks.HeadVersion task = (Tasks.HeadVersion)sender;

                if (!_versions.ContainsKey(task.VersionId))
                {
                    TriggerOnError(task, "The id '" + task.VersionId.ToString() + "' could not be found.", new KeyNotFoundException());
                    return;
                }

                lock (_versions)
                {
                    _receivedCount++;
                    _versions[task.VersionId].UpdateRevision(task.Revision);
                    if (_versions.Count == _receivedCount)
                    {
                        List<Exception> errors;
                        List<Model.Document> docs = new List<Model.Document>();
                        Transitions.Resource txResource = new Transitions.Resource();
                        Model.Document doc = txResource.Transition(_resource, out errors);

                        if (errors != null)
                        {
                            TriggerOnError(null, errors[0].Message, errors[0]);
                            return;
                        }

                        // Pointless, we are deleting it
                        //doc.CombineWith(_remainder);
                        doc.Add("_deleted", true);
                        docs.Add(doc);

                        Dictionary<Data.VersionId, Data.Version>.Enumerator en = _versions.GetEnumerator();

                        while (en.MoveNext())
                        {
                            Transitions.Version txVersion = new Transitions.Version();
                            Model.Document doc2 = txVersion.Transition(en.Current.Value, out errors);
                            if (errors != null)
                            {
                                TriggerOnError(null, errors[0].Message, errors[0]);
                                return;
                            }
                            doc2.Add("_deleted", true);
                            docs.Add(doc2);
                        }

                        RunTaskProcess(new Tasks.MakeBulkDocument(docs, _sendTimeout, _receiveTimeout,
                            _sendBufferSize, _receiveBufferSize));
                    }
                    else
                    {
                        TriggerOnProgress(task, Networking.Protocols.Tcp.DirectionType.Download, -1, -1,
                            ((decimal)((decimal)_receivedCount / (decimal)_versions.Count)));
                    }
                }
            }
            else if (t == typeof(Tasks.MakeBulkDocument))
            {
                Tasks.MakeBulkDocument task = (Tasks.MakeBulkDocument)sender;
                RunTaskProcess(new Tasks.UploadBulkDocuments(_db, task.BulkDocument, _sendTimeout,
                    _receiveTimeout, _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadBulkDocuments))
            {
                Tasks.UploadBulkDocuments task = (Tasks.UploadBulkDocuments)sender;
                TriggerOnComplete(reply, task.Results);
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }
        public override void TaskComplete(Tasks.Base sender, ICommandReply reply)
        {
            Type t = sender.GetType();

            if (t == typeof(Tasks.DownloadResource))
            {
                Tasks.DownloadResource task = (Tasks.DownloadResource)sender;
                _resource          = task.Resource;
                _resourceRemainder = task.Remainder;
                RunTaskProcess(new Tasks.CheckResourcePermissions(_db, _resource, _requestingPartyType,
                                                                  _session, Security.Authorization.ResourcePermissionType.Modify, _sendTimeout, _receiveTimeout,
                                                                  _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.CheckResourcePermissions))
            {
                Tasks.CheckResourcePermissions task = (Tasks.CheckResourcePermissions)sender;
                if (!task.IsAuthorized)
                {
                    TriggerOnAuthorizationDenied(task);
                    return;
                }
                RunTaskProcess(new Tasks.MarkResourceForCheckout(_resource, _session.User.Username, _sendTimeout, _receiveTimeout,
                                                                 _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MarkResourceForCheckout))
            {
                Tasks.MarkResourceForCheckout task = (Tasks.MarkResourceForCheckout)sender;
                _resource = task.Resource;

                List <Exception>      errors;
                List <Model.Document> docs       = new List <Model.Document>();
                Transitions.Version   txVersion  = new Transitions.Version();
                Transitions.Resource  txResource = new Transitions.Resource();

                docs.Add(txResource.Transition(_resource, out errors));
                if (errors != null)
                {
                    TriggerOnError(null, errors[0].Message, errors[0]);
                    return;
                }
                docs[0].CombineWith(_resourceRemainder);
                docs.Add(txVersion.Transition(_version, out errors));
                if (errors != null)
                {
                    TriggerOnError(null, errors[0].Message, errors[0]);
                    return;
                }

                RunTaskProcess(new Tasks.MakeBulkDocument(docs, _sendTimeout, _receiveTimeout,
                                                          _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MakeBulkDocument))
            {
                Tasks.MakeBulkDocument task = (Tasks.MakeBulkDocument)sender;
                RunTaskProcess(new Tasks.UploadBulkDocuments(_db, task.BulkDocument, _sendTimeout, _receiveTimeout,
                                                             _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadBulkDocuments))
            {
                Tasks.UploadBulkDocuments task = (Tasks.UploadBulkDocuments)sender;

                Commands.PostBulkDocumentsReply.Entry entry = task.FindEntryById(_version.VersionId.ToString());

                if (entry == null)
                {
                    TriggerOnError(task, "Failed to locate " + _version.VersionId.ToString() + " in the " +
                                   "bulk document post results.", null);
                    return;
                }

                // This is needed so that couchdb can apply the content to the correct revision.
                _version.UpdateRevision(entry.Rev);

                // If no content -> return
                if (_version.Content == null)
                {
                    Resource = _resource;
                    Version  = _version;
                    TriggerOnComplete(reply, new Tuple <Data.Resource, Data.Version>(_resource, _version));
                    return;
                }

                // Upload Data.Content from Data.Version
                RunTaskProcess(new Tasks.UploadContent(_db, _version, _sendTimeout, _receiveTimeout,
                                                       _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadContent))
            {
                Resource = _resource;
                Version  = _version;
                TriggerOnComplete(reply, new Tuple <Data.Resource, Data.Version>(_resource, _version));
            }
            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.CreateResource, _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))
            {
                string username = _session.User.Username;
                DateTime creation = DateTime.Now;
                List<Exception> errors;
                List<Model.Document> docs = new List<Model.Document>();

                Tasks.DownloadResourceUsageRightsTemplate task = (Tasks.DownloadResourceUsageRightsTemplate)sender;
                
                // Create the Resource and Version objects
                List<Data.VersionId> versions = new List<Data.VersionId>();

                Data.ResourceId resourceId = Data.ResourceId.Create();

                _version = new Data.Version(new Data.VersionId(resourceId), _args.VersionArgs.Metadata, _args.VersionArgs.Content)
                {
                    Md5 = _args.VersionArgs.Md5,
                    Extension = _args.VersionArgs.Extension,
                    Created = creation,
                    Creator = username,
                    Modified = creation,
                    Modifier = username
                };

                versions.Add(_version.VersionId);

                _resource = new Data.Resource(resourceId, null, versions, _version.VersionId,
                    _args.Metadata, task.Value.UsageRights)
                {
                    Tags = _args.Tags,
                    Created = creation,
                    Creator = username,
                    Modified = creation,
                    Modifier = username,
                    CheckedOutAt = creation,
                    CheckedOutTo = username,
                    LastCommit = creation,
                    LastCommitter = username,
                    Title = _args.Title
                };
                
                // Transition to json objects
                
                Transitions.Resource txResource = new Transitions.Resource();
                docs.Add(txResource.Transition(_resource, out errors));
                if (errors != null)
                {
                    TriggerOnError(null, errors[0].Message, errors[0]);
                    return;
                }
                Transitions.Version txVersion = new Transitions.Version();
                docs.Add(txVersion.Transition(_version, out errors));
                if (errors != null)
                {
                    TriggerOnError(null, errors[0].Message, errors[0]);
                    return;
                }

                RunTaskProcess(new Tasks.MakeBulkDocument(docs, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.MakeBulkDocument))
            {
                Tasks.MakeBulkDocument task = (Tasks.MakeBulkDocument)sender;
                RunTaskProcess(new Tasks.UploadBulkDocuments(_db, task.BulkDocument, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadBulkDocuments))
            {
                Tasks.UploadBulkDocuments task = (Tasks.UploadBulkDocuments)sender;

                Commands.PostBulkDocumentsReply.Entry entry = task.FindEntryById(_version.VersionId.ToString());

                if (entry == null)
                {
                    TriggerOnError(task, "Failed to locate " + _version.VersionId.ToString() + " in the " +
                        "bulk document post results.", null);
                    return;
                }

                // This is needed so that couchdb can apply the content to the correct revision.
                _version.UpdateRevision(entry.Rev);

                // Upload Data.Content from Data.Version
                RunTaskProcess(new Tasks.UploadContent(_db, _version, _sendTimeout, _receiveTimeout,
                    _sendBufferSize, _receiveBufferSize));
            }
            else if (t == typeof(Tasks.UploadContent))
            {
                TriggerOnComplete(reply, new Tuple<Data.Resource, Data.Version>(_resource, _version));
            }
            else
            {
                TriggerOnError(sender, reply.ToString(), null);
            }
        }