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); } }
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); } }