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); } }
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.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)); }
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); } }
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."); }
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."); }
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 <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); } }
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); } }
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."); }
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."); }
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()); }
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()); }
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()); }
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; })); }
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()); }
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); } }
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); } }
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); }
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); }
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()); }
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."); } }
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; } }
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."); } }
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); } }
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); } }
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.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); } }
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); }
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); } }
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); } }
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); } }