コード例 #1
0
        internal static bool TryReadFromPayloadReference(PayloadReference payloadReference, out Guid jobRunId, out int taskId, out PayloadLevel payloadLevel)
        {
            jobRunId     = Guid.Empty;
            taskId       = -1;
            payloadLevel = PayloadLevel.Job;
            bool result;

            try
            {
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                PayloadIdentifier    payloadIdentifier    = javaScriptSerializer.Deserialize <PayloadIdentifier>(payloadReference.PayloadId);
                jobRunId = payloadIdentifier.JobRunId;
                if (payloadIdentifier.TaskId > -1)
                {
                    taskId       = payloadIdentifier.TaskId;
                    payloadLevel = PayloadLevel.Task;
                }
                else
                {
                    payloadLevel = PayloadLevel.Job;
                }
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }
            return(result);
        }
コード例 #2
0
        // Token: 0x06000038 RID: 56 RVA: 0x00002D10 File Offset: 0x00000F10
        protected RetrievedPayload RetrieveJobDistributionPayload(OrganizationId organizationId, Guid jobRunId, int taskId)
        {
            RetrievedPayload      retrievedPayload      = new RetrievedPayload();
            ComplianceJobProvider complianceJobProvider = new ComplianceJobProvider(organizationId);
            Guid tenantGuid = organizationId.GetTenantGuid();

            retrievedPayload.IsComplete = this.HasMoreTasks(organizationId, jobRunId);
            IEnumerable <CompositeTask> enumerable = from x in complianceJobProvider.FindCompositeTasks(tenantGuid, jobRunId, null, null)
                                                     where x.TaskId > taskId
                                                     select x;

            if (enumerable != null)
            {
                foreach (CompositeTask compositeTask in enumerable)
                {
                    JobPayload jobPayload = new JobPayload();
                    jobPayload.Target = new Target
                    {
                        TargetType = Target.Type.MailboxSmtpAddress,
                        Identifier = compositeTask.UserMaster
                    };
                    PayloadReference payloadReference = PayloadHelper.GetPayloadReference(jobRunId, compositeTask.TaskId);
                    jobPayload.Children.Add(ComplianceSerializer.Serialize <PayloadReference>(PayloadReference.Description, payloadReference));
                    retrievedPayload.Children.Add(jobPayload);
                    retrievedPayload.Bookmark = compositeTask.TaskId.ToString();
                }
                return(retrievedPayload);
            }
            throw new ArgumentException(string.Format("Not Task Data Found. TenantId-{0} JobId-{1} and TaskId-{2}", tenantGuid, jobRunId, taskId));
        }
コード例 #3
0
		public void Ctor() {
			var reference = new PayloadReference(Valid.Location, Valid.Hash, Valid.Key, Valid.IV, Valid.ExpirationUtc);
			Assert.That(reference.Location, Is.SameAs(Valid.Location));
			Assert.That(reference.Hash, Is.SameAs(Valid.Hash));
			Assert.That(reference.Key, Is.SameAs(Valid.Key));
			Assert.That(reference.IV, Is.SameAs(Valid.IV));
			Assert.That(reference.ExpiresUtc, Is.EqualTo(Valid.ExpirationUtc));
		}
コード例 #4
0
        public void Ctor()
        {
            var reference = new PayloadReference(Valid.Location, Valid.Hash, Valid.Key, Valid.IV, Valid.ExpirationUtc);

            Assert.That(reference.Location, Is.SameAs(Valid.Location));
            Assert.That(reference.Hash, Is.SameAs(Valid.Hash));
            Assert.That(reference.Key, Is.SameAs(Valid.Key));
            Assert.That(reference.IV, Is.SameAs(Valid.IV));
            Assert.That(reference.ExpiresUtc, Is.EqualTo(Valid.ExpirationUtc));
        }
コード例 #5
0
 public void Ctor()
 {
     var reference = new PayloadReference(Valid.Location, Valid.Hash, Valid.HashAlgorithmName, Valid.Key, Valid.IV, Valid.ExpirationUtc);
     Assert.Same(Valid.Location, reference.Location);
     Assert.Equal(Valid.HashAlgorithmName, reference.HashAlgorithmName);
     Assert.Same(Valid.Hash, reference.Hash);
     Assert.Same(Valid.Key, reference.Key);
     Assert.Same(Valid.IV, reference.IV);
     Assert.Equal(Valid.ExpirationUtc, reference.ExpiresUtc);
 }
コード例 #6
0
        public void Ctor()
        {
            var reference = new PayloadReference(Valid.Location, Valid.Hash, Valid.HashAlgorithmName, Valid.Key, Valid.IV, Valid.ExpirationUtc);

            Assert.Same(Valid.Location, reference.Location);
            Assert.Equal(Valid.HashAlgorithmName, reference.HashAlgorithmName);
            Assert.Same(Valid.Hash, reference.Hash);
            Assert.Same(Valid.Key, reference.Key);
            Assert.Same(Valid.IV, reference.IV);
            Assert.Equal(Valid.ExpirationUtc, reference.ExpiresUtc);
        }
コード例 #7
0
            public IEnumerable <T> RetrievePayload <T>(ComplianceSerializationDescription <T> description, PayloadReference reference, int count = 2147483647) where T : Payload, new()
            {
                ComplianceMessage message = new ComplianceMessage
                {
                    CorrelationId         = Guid.NewGuid(),
                    ComplianceMessageType = ComplianceMessageType.RetrieveRequest,
                    WorkDefinitionType    = WorkDefinitionType.Unrecognized
                };
                bool             isComplete = false;
                string           bookmark   = null;
                DriverClientBase driverClient;

                if (Registry.Instance.TryGetInstance <DriverClientBase>(RegistryComponent.Client, ClientType.DriverClient, out driverClient, out this.faultDefinition, "RetrievePayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 161))
                {
                    for (;;)
                    {
                        reference.Bookmark = bookmark;
                        reference.Count    = count;
                        message.Payload    = ComplianceSerializer.Serialize <PayloadReference>(PayloadReference.Description, reference);
                        Task <ComplianceMessage> payloadTask = driverClient.GetResponseAsync(message);
                        if (!payloadTask.Wait(TaskDistributionSettings.DataLookupTime))
                        {
                            break;
                        }
                        ComplianceMessage payloadResponse = payloadTask.Result;
                        RetrievedPayload  retrievedPayload;
                        if (ComplianceSerializer.TryDeserialize <RetrievedPayload>(RetrievedPayload.Description, payloadResponse.Payload, out retrievedPayload, out this.faultDefinition, "RetrievePayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 174))
                        {
                            bookmark   = retrievedPayload.Bookmark;
                            isComplete = retrievedPayload.IsComplete;
                            foreach (byte[] childBlob in retrievedPayload.Children)
                            {
                                T payload;
                                if (ComplianceSerializer.TryDeserialize <T>(description, childBlob, out payload, out this.faultDefinition, "RetrievePayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 181))
                                {
                                    yield return(payload);
                                }
                            }
                        }
                        if (count <= 1)
                        {
                            goto IL_236;
                        }
                        if (isComplete)
                        {
                            goto Block_5;
                        }
                    }
                    throw new TimeoutException();
Block_5:
IL_236:
                    yield break;
                }
                throw new InvalidOperationException();
            }