// Token: 0x06000007 RID: 7 RVA: 0x000025F4 File Offset: 0x000007F4 public override async Task <ComplianceMessage> GetResponseAsync(ComplianceMessage message) { byte[] messageBlob = ComplianceSerializer.Serialize <ComplianceMessage>(ComplianceMessage.Description, message); byte[] responseBlob = await this.TakeActionWithRetryOnCommunicationException <byte[]>(async() => await this.ProxyClient.ProcessMessageAsync(messageBlob), true); return(ComplianceSerializer.DeSerialize <ComplianceMessage>(ComplianceMessage.Description, responseBlob)); }
// Token: 0x06000033 RID: 51 RVA: 0x00002AB8 File Offset: 0x00000CB8 public override ComplianceMessage Process(ComplianceMessage input) { IPayloadRetriever payloadRetriever; FaultDefinition faultDefinition; WorkPayload workPayload; IApplicationPlugin applicationPlugin; if (Registry.Instance.TryGetInstance <IPayloadRetriever>(RegistryComponent.TaskDistribution, TaskDistributionComponent.PayloadRetriever, out payloadRetriever, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\WorkBlock.cs", 40) && payloadRetriever.TryGetPayload <WorkPayload>(WorkPayload.Description, input.Payload, out workPayload, out faultDefinition) && Registry.Instance.TryGetInstance <IApplicationPlugin>(RegistryComponent.Application, workPayload.WorkDefinitionType, out applicationPlugin, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\WorkBlock.cs", 44)) { ComplianceMessage complianceMessage = input.Clone(); complianceMessage.MessageId = string.Format("{0}-WORKRESULT", input.MessageId); complianceMessage.MessageSourceId = input.MessageId; complianceMessage.MessageSource = input.MessageTarget; complianceMessage.ComplianceMessageType = ComplianceMessageType.RecordResult; WorkPayload inputObject = null; if (ApplicationHelper.TryDoWork(complianceMessage, workPayload, out inputObject, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\WorkBlock.cs", 54)) { complianceMessage.Payload = ComplianceSerializer.Serialize <WorkPayload>(WorkPayload.Description, inputObject); } if (faultDefinition != null) { ExceptionHandler.FaultMessage(complianceMessage, faultDefinition, true); } return(complianceMessage); } if (faultDefinition != null) { ExceptionHandler.FaultMessage(input, faultDefinition, true); } return(null); }
// 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)); }
private void ReturnMessage() { if (base.Message != null) { if (ExceptionHandler.IsFaulted(base.Message)) { this.FailMessage(); return; } if (this.result != null) { ComplianceMessage complianceMessage = base.Message.Clone(); Target messageTarget = complianceMessage.MessageTarget; complianceMessage.MessageTarget = complianceMessage.MessageSource; complianceMessage.MessageSource = messageTarget; complianceMessage.ComplianceMessageType = ComplianceMessageType.RecordResult; complianceMessage.ProtocolContext.DispatchData = this; complianceMessage.Payload = ComplianceSerializer.Serialize <WorkPayload>(WorkPayload.Description, new WorkPayload { WorkDefinition = this.result.GetSerializedResult(), WorkDefinitionType = complianceMessage.WorkDefinitionType }); RoutingCache.Instance.QueueDispatch(complianceMessage); } } }
public IEnumerable <T> GetAllPayloads <T>(ComplianceSerializationDescription <T> description, byte[] blob, out FaultDefinition faultDefinition) where T : Payload, new() { T t; if (ComplianceSerializer.TryDeserialize <T>(description, blob, out t, out faultDefinition, "GetAllPayloads", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 88)) { return(new T[] { t }); } PayloadReference reference; if (ComplianceSerializer.TryDeserialize <PayloadReference>(PayloadReference.Description, blob, out reference, out faultDefinition, "GetAllPayloads", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 95)) { PayloadRetriever.DriverRetriever retriever = new PayloadRetriever.DriverRetriever(); IEnumerable <T> payloads = null; if (ExceptionHandler.Proxy.TryRun(delegate { payloads = retriever.RetrievePayload <T>(description, reference, int.MaxValue); }, TaskDistributionSettings.DataLookupTime, out faultDefinition, null, null, default(CancellationToken), null, "GetAllPayloads", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 99)) { return(payloads); } faultDefinition = retriever.FaultDefinition; } return(null); }
// Token: 0x0600011B RID: 283 RVA: 0x00006E0C File Offset: 0x0000500C private void UpdateFailureResults(WorkPayload workPayload) { FaultDefinition results; FaultDefinition faultDefinition; if (ComplianceSerializer.TryDeserialize <FaultDefinition>(FaultDefinition.Description, workPayload.WorkDefinition, out results, out faultDefinition, "UpdateFailureResults", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionCommon\\ObjectModel\\ComplianceSearch.cs", 429)) { this.UpdateErrors(results); } }
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(); }
public static IEnumerable <ComplianceMessage> GetMessagesFromBlobs(IEnumerable <byte[]> blobs) { if (blobs != null) { foreach (byte[] blob in blobs) { yield return(ComplianceSerializer.DeSerialize <ComplianceMessage>(ComplianceMessage.Description, blob)); } } yield break; }
// Token: 0x06000118 RID: 280 RVA: 0x00006BC0 File Offset: 0x00004DC0 internal byte[] GetExchangeWorkDefinition() { SearchWorkDefinition searchWorkDefinition = new SearchWorkDefinition(); searchWorkDefinition.Parser = SearchWorkDefinition.QueryParser.KQL; searchWorkDefinition.DetailCount = 500; searchWorkDefinition.Query = this.ToKqlQuery(); WorkPayload workPayload = new WorkPayload(); workPayload.WorkDefinition = ComplianceSerializer.Serialize <SearchWorkDefinition>(SearchWorkDefinition.Description, searchWorkDefinition); workPayload.WorkDefinitionType = WorkDefinitionType.EDiscovery; return(ComplianceSerializer.Serialize <WorkPayload>(WorkPayload.Description, workPayload)); }
// Token: 0x0600008E RID: 142 RVA: 0x000048BC File Offset: 0x00002ABC private void FailMessage() { if (ExceptionHandler.IsFaulted(base.Message)) { ComplianceMessage complianceMessage = base.Message.Clone(); Target messageTarget = complianceMessage.MessageTarget; complianceMessage.MessageTarget = complianceMessage.MessageSource; complianceMessage.MessageSource = messageTarget; complianceMessage.ComplianceMessageType = ComplianceMessageType.RecordResult; complianceMessage.ProtocolContext.DispatchData = this; complianceMessage.Payload = ComplianceSerializer.Serialize <WorkPayload>(WorkPayload.Description, base.Message.ProtocolContext.FaultDefinition.ToPayload()); RoutingCache.Instance.QueueDispatch(complianceMessage); } }
public static byte[][] GetMessageBlobs(IEnumerable <ComplianceMessage> messages) { int num = messages.Count <ComplianceMessage>(); int num2 = 0; byte[][] array = new byte[num][]; foreach (ComplianceMessage inputObject in messages) { byte[] array2 = ComplianceSerializer.Serialize <ComplianceMessage>(ComplianceMessage.Description, inputObject); array[num2] = array2; num2++; } return(array); }
// Token: 0x06000037 RID: 55 RVA: 0x00002BD0 File Offset: 0x00000DD0 public override ComplianceMessage Process(ComplianceMessage input) { ComplianceMessage complianceMessage = new ComplianceMessage { CorrelationId = input.CorrelationId, TenantId = input.TenantId, MessageId = default(Guid).ToString() }; FaultDefinition faultDefinition = null; RetrievedPayload payload = new RetrievedPayload(); PayloadReference payloadReference; if (!ComplianceSerializer.TryDeserialize <PayloadReference>(PayloadReference.Description, input.Payload, out payloadReference, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\RetrievePayloadBlock.cs", 43)) { throw new BadStructureFormatException(string.Format("Problem in deserializing the payload reference:{0}", input.ComplianceMessageType)); } OrganizationId organizationId; if (!OrganizationId.TryCreateFromBytes(input.TenantId, Encoding.UTF8, out organizationId)) { throw new ArgumentException(string.Format("Problem in creating Organization Id from the tenant id:{0}", input.ComplianceMessageType)); } Guid jobRunId; int taskId; PayloadLevel payloadLevel; if (PayloadHelper.TryReadFromPayloadReference(payloadReference, out jobRunId, out taskId, out payloadLevel)) { switch (payloadLevel) { case PayloadLevel.Job: { int taskId2; if (!int.TryParse(payloadReference.Bookmark, out taskId2)) { taskId2 = -1; } payload = this.RetrieveJobDistributionPayload(organizationId, jobRunId, taskId2); break; } case PayloadLevel.Task: payload = this.RetrieveTaskDistributionPayload(organizationId, jobRunId, taskId); break; } } complianceMessage.Payload = payload; return(complianceMessage); }
protected override ComplianceMessage CreateStartJobMessage() { ComplianceMessage complianceMessage = base.CreateStartJobMessage(); complianceMessage.WorkDefinitionType = WorkDefinitionType.EDiscovery; JobPayload jobPayload = new JobPayload(); jobPayload.JobId = this.DataObject.JobRunId.ToString(); jobPayload.Target = complianceMessage.MessageTarget; jobPayload.PayloadId = string.Empty; jobPayload.Children.Add(PayloadHelper.GetPayloadReference(this.DataObject.JobRunId, -1)); jobPayload.Payload = this.DataObject.GetExchangeWorkDefinition(); complianceMessage.Payload = ComplianceSerializer.Serialize <JobPayload>(JobPayload.Description, jobPayload); return(complianceMessage); }
// Token: 0x0600000D RID: 13 RVA: 0x00002AEC File Offset: 0x00000CEC public virtual async Task <bool[]> SendMessageAsync(IEnumerable <ComplianceMessage> messages) { IEnumerable <ComplianceMessage> responses = await this.SendMessageAsyncInternal(messages); foreach (ComplianceMessage complianceMessage in responses) { FaultDefinition faultDefinition; StatusPayload status; if (ComplianceSerializer.TryDeserialize <StatusPayload>(StatusPayload.Description, complianceMessage.Payload, out status, out faultDefinition, "SendMessageAsync", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionCommon\\Client\\WorkloadClientBase.cs", 45)) { return((from t in messages select status.QueuedMessages.Contains(t.MessageId)).ToArray <bool>()); } } return(new bool[1]); }
// Token: 0x06000028 RID: 40 RVA: 0x00002944 File Offset: 0x00000B44 public override IEnumerable <ComplianceMessage> Process(ComplianceMessage input) { IPayloadRetriever retriever; FaultDefinition faultDefinition; JobPayload job; if (Registry.Instance.TryGetInstance <IPayloadRetriever>(RegistryComponent.TaskDistribution, TaskDistributionComponent.PayloadRetriever, out retriever, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\DistributeBlock.cs", 38) && retriever.TryGetPayload <JobPayload>(JobPayload.Description, input.Payload, out job, out faultDefinition)) { WorkPayload workPayload; WorkPayload inputObject; if (MessageHelper.IsFromDriver(input) && retriever.TryGetPayload <WorkPayload>(WorkPayload.Description, job.Payload, out workPayload, out faultDefinition) && ApplicationHelper.TryPreprocess(input, workPayload, out inputObject, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\DistributeBlock.cs", 48)) { job.Payload = ComplianceSerializer.Serialize <WorkPayload>(WorkPayload.Description, inputObject); } if (faultDefinition == null && !ExceptionHandler.IsFaulted(input)) { foreach (byte[] childBlob in job.Children) { foreach (JobPayload childJob in retriever.GetAllPayloads <JobPayload>(JobPayload.Description, childBlob, out faultDefinition)) { ComplianceMessage childMessage = input.Clone(); childMessage.MessageTarget = childJob.Target; childMessage.MessageId = childJob.JobId; childMessage.MessageSource = input.MessageTarget; childMessage.MessageSourceId = input.MessageId; if (childJob.Children.Count == 0) { childMessage.ComplianceMessageType = ComplianceMessageType.StartWork; childMessage.Payload = job.Payload; } else { childJob.Payload = job.Payload; childMessage.Payload = ComplianceSerializer.Serialize <JobPayload>(JobPayload.Description, childJob); } yield return(childMessage); } } } } if (faultDefinition != null) { ExceptionHandler.FaultMessage(input, faultDefinition, true); } yield break; }
protected override Task <IEnumerable <ComplianceMessage> > SendMessageAsyncInternal(IEnumerable <ComplianceMessage> messages) { return(Task.Run <IEnumerable <ComplianceMessage> >(delegate() { StatusPayload statusPayload = new StatusPayload(); foreach (ComplianceMessage complianceMessage in messages) { string tenantName = string.Empty; OrganizationId organizationId; if (OrganizationId.TryCreateFromBytes(complianceMessage.TenantId, Encoding.UTF8, out organizationId) && organizationId.OrganizationalUnit != null) { tenantName = organizationId.OrganizationalUnit.Name; using (IDisposable disposable = (IDisposable)this.GetRpsProvider(tenantName)) { byte[] value = ComplianceSerializer.Serialize <ComplianceMessage>(ComplianceMessage.Description, complianceMessage); PSCommand pscommand = new PSCommand(); pscommand.AddCommand(new Command("Send-ComplianceMessage", false)); pscommand.AddParameter("SerializedComplianceMessage", value); MethodBase method = this.rpsProviderAssembly.RpsProviderType.GetMethod("Execute", new Type[] { typeof(PSCommand), typeof(TimeSpan) }); object obj = disposable; object[] array = new object[2]; array[0] = pscommand; IEnumerable <PSObject> enumerable = (IEnumerable <PSObject>)method.Invoke(obj, array); if (enumerable != null && enumerable.Count <PSObject>() == 1 && (bool)enumerable.ToArray <PSObject>()[0].BaseObject) { statusPayload.QueuedMessages.Add(complianceMessage.MessageId); } } } } return (IEnumerable <ComplianceMessage>) new ComplianceMessage[] { new ComplianceMessage { Payload = ComplianceSerializer.Serialize <StatusPayload>(StatusPayload.Description, statusPayload) } }; })); }
// Token: 0x06000119 RID: 281 RVA: 0x00006C1C File Offset: 0x00004E1C internal override void UpdateJobResults() { long num = 0L; long num2 = 0L; foreach (KeyValuePair <ComplianceBindingType, ComplianceBinding> keyValuePair in base.Bindings) { WorkPayload workPayload; FaultDefinition faultDefinition; if (keyValuePair.Value.JobResults != null && keyValuePair.Value.JobResults.Length != 0 && ComplianceSerializer.TryDeserialize <WorkPayload>(WorkPayload.Description, keyValuePair.Value.JobResults, out workPayload, out faultDefinition, "UpdateJobResults", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionCommon\\ObjectModel\\ComplianceSearch.cs", 325)) { switch (workPayload.WorkDefinitionType) { case WorkDefinitionType.EDiscovery: { SearchResult searchResult = ComplianceSerializer.DeSerialize <SearchResult>(SearchResult.Description, workPayload.WorkDefinition); if (searchResult != null) { num += searchResult.TotalCount; num2 += searchResult.TotalSize; if (searchResult.Results != null && searchResult.Results.Count != 0) { foreach (SearchResult.TargetSearchResult item in searchResult.Results) { this.successfulResults.Add(item); } } } break; } case WorkDefinitionType.Fault: this.UpdateFailureResults(workPayload); break; } } } this.ResultNumber = num; this.ResultSize = num2; }
public ResultBase RecordResult(ResultBase existing, WorkPayload addition) { SearchResult searchResult = new SearchResult(); SearchResult searchResult2 = existing as SearchResult; if (addition != null) { FaultDefinition faultDefinition; if (addition.WorkDefinitionType == WorkDefinitionType.Fault) { FaultDefinition faultDefinition2; if (!ComplianceSerializer.TryDeserialize <FaultDefinition>(FaultDefinition.Description, addition.WorkDefinition, out faultDefinition, out faultDefinition2, "RecordResult", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\ApplicationPlugins\\EDiscovery\\SearchApplicationPlugin.cs", 82)) { faultDefinition = faultDefinition2; } } else if (ComplianceSerializer.TryDeserialize <SearchResult>(SearchResult.Description, addition.WorkDefinition, out searchResult, out faultDefinition, "RecordResult", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\ApplicationPlugins\\EDiscovery\\SearchApplicationPlugin.cs", 87)) { if (searchResult2 == null) { searchResult2 = searchResult; } else { searchResult2.UpdateTotalSize(searchResult.TotalSize); searchResult2.UpdateTotalCount(searchResult.TotalCount); searchResult2.MergeFaults(searchResult); } } if (faultDefinition != null) { if (searchResult2 == null) { searchResult2 = new SearchResult(); } searchResult2.MergeFaults(faultDefinition); } } return(searchResult2); }
public async Task <byte[]> ProcessMessageAsync(byte[] message) { ComplianceMessage response = null; ComplianceMessage request; FaultDefinition faultDefinition; MessageProcessorBase messageProcessor; if (ComplianceSerializer.TryDeserialize <ComplianceMessage>(ComplianceMessage.Description, message, out request, out faultDefinition, "ProcessMessageAsync", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Endpoint\\MessageProcessor.cs", 49) && Registry.Instance.TryGetInstance <MessageProcessorBase>(RegistryComponent.MessageProcessor, request.ComplianceMessageType, out messageProcessor, out faultDefinition, "ProcessMessageAsync", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Endpoint\\MessageProcessor.cs", 51)) { MessageLogger.Instance.LogMessageReceived(request); response = await messageProcessor.ProcessMessage(request); } if (faultDefinition != null) { response = new ComplianceMessage { WorkDefinitionType = WorkDefinitionType.Fault, Payload = faultDefinition.ToPayload() }; } return(ComplianceSerializer.Serialize <ComplianceMessage>(ComplianceMessage.Description, response)); }
public async Task <byte[][]> ReceiveMessagesAsync(byte[][] messageBlobs) { return(await Task.Run <byte[][]>(delegate() { StatusPayload statusPayload = new StatusPayload(); foreach (byte[] blob in messageBlobs) { ComplianceMessage complianceMessage; FaultDefinition fault; if (ComplianceSerializer.TryDeserialize <ComplianceMessage>(ComplianceMessage.Description, blob, out complianceMessage, out fault, "ReceiveMessagesAsync", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Endpoint\\MessageReceiver.cs", 56)) { MessageReceiverBase messageReceiverBase; if (Registry.Instance.TryGetInstance <MessageReceiverBase>(RegistryComponent.MessageReceiver, complianceMessage.ComplianceMessageType, out messageReceiverBase, out fault, "ReceiveMessagesAsync", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Endpoint\\MessageReceiver.cs", 58)) { if (messageReceiverBase.ReceiveMessage(complianceMessage)) { statusPayload.QueuedMessages.Add(complianceMessage.MessageId); } } else if (complianceMessage.ComplianceMessageType == ComplianceMessageType.EchoRequest) { statusPayload.QueuedMessages.Add(complianceMessage.MessageId); } else { ExceptionHandler.FaultMessage(complianceMessage, fault, true); } } } return new byte[][] { ComplianceSerializer.Serialize <ComplianceMessage>(ComplianceMessage.Description, new ComplianceMessage { ComplianceMessageType = ComplianceMessageType.Status, Payload = ComplianceSerializer.Serialize <StatusPayload>(StatusPayload.Description, statusPayload) }) }; })); }
public WorkPayload Preprocess(ComplianceMessage target, WorkPayload payload) { SearchWorkDefinition searchWorkDefinition; FaultDefinition faultDefinition; ISearchResultsProvider searchResultsProvider; if (ComplianceSerializer.TryDeserialize <SearchWorkDefinition>(SearchWorkDefinition.Description, payload.WorkDefinition, out searchWorkDefinition, out faultDefinition, "Preprocess", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\ApplicationPlugins\\EDiscovery\\SearchApplicationPlugin.cs", 128) && Registry.Instance.TryGetInstance <ISearchResultsProvider>(RegistryComponent.EDiscovery, EDiscoveryComponent.SearchResultProvider, out searchResultsProvider, out faultDefinition, "Preprocess", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\ApplicationPlugins\\EDiscovery\\SearchApplicationPlugin.cs", 130)) { searchWorkDefinition = searchResultsProvider.ParseSearch(target, searchWorkDefinition); return(new WorkPayload { PayloadId = payload.PayloadId, WorkDefinitionType = WorkDefinitionType.EDiscovery, WorkDefinition = ComplianceSerializer.Serialize <SearchWorkDefinition>(SearchWorkDefinition.Description, searchWorkDefinition) }); } if (faultDefinition != null) { ExceptionHandler.FaultMessage(target, faultDefinition, true); } return(null); }
// Token: 0x0600003D RID: 61 RVA: 0x00002FCC File Offset: 0x000011CC public override ComplianceMessage Process(ComplianceMessage input) { StatusPayload statusPayload = new StatusPayload(); if (input == null) { return(new ComplianceMessage { Payload = ComplianceSerializer.Serialize <StatusPayload>(StatusPayload.Description, statusPayload) }); } statusPayload.QueuedMessages.Add(input.MessageId); WorkPayload workPayload; FaultDefinition faultDefinition; OrganizationId orgId; if (ComplianceSerializer.TryDeserialize <WorkPayload>(WorkPayload.Description, input.Payload, out workPayload, out faultDefinition, "Process", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Blocks\\StoreResultsBlock.cs", 47) && OrganizationId.TryCreateFromBytes(input.TenantId, Encoding.UTF8, out orgId)) { Guid correlationId = input.CorrelationId; ComplianceJobProvider complianceJobProvider = new ComplianceJobProvider(orgId); ComplianceJobStatus status = ComplianceJobStatus.StatusUnknown; switch (workPayload.WorkDefinitionType) { case WorkDefinitionType.EDiscovery: status = ComplianceJobStatus.Succeeded; break; case WorkDefinitionType.Fault: status = ComplianceJobStatus.Failed; break; } complianceJobProvider.UpdateWorkloadResults(correlationId, input.Payload, ComplianceBindingType.ExchangeBinding, status); } return(new ComplianceMessage { Payload = ComplianceSerializer.Serialize <StatusPayload>(StatusPayload.Description, statusPayload) }); }
// Token: 0x06000122 RID: 290 RVA: 0x00007204 File Offset: 0x00005404 private void ParseSearchCondtions(List <byte[]> conditions) { if (conditions == null || conditions.Count == 0) { return; } foreach (byte[] blob in conditions) { ComplianceSearchCondition complianceSearchCondition = ComplianceSerializer.DeSerialize <ComplianceSearchCondition>(ComplianceSearchCondition.Description, blob); if (complianceSearchCondition != null) { switch (complianceSearchCondition.Name) { case ComplianceSearchCondition.ConditionName.StartDate: { DateTime value; if (this.TryParseDateString(complianceSearchCondition.Content, out value)) { this.StartDate = new DateTime?(value); } break; } case ComplianceSearchCondition.ConditionName.EndDate: { DateTime value; if (this.TryParseDateString(complianceSearchCondition.Content, out value)) { this.EndDate = new DateTime?(value); } break; } } } } }
public bool TryGetPayload <T>(ComplianceSerializationDescription <T> description, byte[] blob, out T payload, out FaultDefinition faultDefinition) where T : Payload, new() { if (ComplianceSerializer.TryDeserialize <T>(description, blob, out payload, out faultDefinition, "TryGetPayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 39)) { return(true); } PayloadReference reference; if (ComplianceSerializer.TryDeserialize <PayloadReference>(PayloadReference.Description, blob, out reference, out faultDefinition, "TryGetPayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 48)) { PayloadRetriever.DriverRetriever retriever = new PayloadRetriever.DriverRetriever(); T currentPayload = default(T); if (ExceptionHandler.Proxy.TryRun(delegate { currentPayload = retriever.RetrievePayload <T>(description, reference, int.MaxValue).FirstOrDefault <T>(); }, TaskDistributionSettings.DataLookupTime, out faultDefinition, null, null, default(CancellationToken), null, "TryGetPayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 53)) { payload = currentPayload; return(true); } faultDefinition = retriever.FaultDefinition; } return(false); }
public override byte[] GetSerializedResult() { return(ComplianceSerializer.Serialize <SearchResult>(SearchResult.Description, this)); }
// Token: 0x0600029F RID: 671 RVA: 0x0000C0AF File Offset: 0x0000A2AF public override byte[] GetSerializedResult() { return(ComplianceSerializer.Serialize <FaultDefinition>(FaultDefinition.Description, this)); }
// Token: 0x0600012F RID: 303 RVA: 0x00007587 File Offset: 0x00005787 internal byte[] ToBlob() { return(ComplianceSerializer.Serialize <ComplianceSearchCondition>(ComplianceSearchCondition.Description, this)); }