Beispiel #1
0
        public void ProcessResults_Populates_SingleJob()
        {
            var reqProc = new ComplianceRequestProcessor <ComplianceQuery>
            {
                BaseUrl = BaseUrl2,
                Type    = ComplianceType.SingleJob
            };

            List <ComplianceQuery> results = reqProc.ProcessResults(SingleJob);

            Assert.IsNotNull(results);
            ComplianceQuery complianceQuery = results.SingleOrDefault();

            Assert.IsNotNull(complianceQuery);
            List <ComplianceJob> jobs = complianceQuery.Jobs;

            Assert.IsNotNull(jobs);
            Assert.AreEqual(1, jobs.Count);
            ComplianceJob job = jobs.FirstOrDefault();

            Assert.IsNotNull(job);
            Assert.AreEqual("jU8rFK", job.JobID);
            Assert.AreEqual("Troglomyces twitteri", job.JobName);
            Assert.AreEqual("https://storage.googleapis.com/twitter-compliance/test_user_ids", job.DownloadUrl);
            Assert.AreEqual(DateTime.Parse("2020-09-04T20:04:41.819+00:00"), job.DownloadExpiresAt);
            Assert.AreEqual(ComplianceStatus.Complete, job.Status);
        }
Beispiel #2
0
        public void ProcessResults_Populates_MultipleJobs()
        {
            var reqProc = new ComplianceRequestProcessor <ComplianceQuery>
            {
                BaseUrl = BaseUrl2,
                Type    = ComplianceType.MultipleJobs
            };

            List <ComplianceQuery> results = reqProc.ProcessResults(MultipleJobs);

            Assert.IsNotNull(results);
            ComplianceQuery complianceQuery = results.SingleOrDefault();

            Assert.IsNotNull(complianceQuery);
            List <ComplianceJob> jobs = complianceQuery.Jobs;

            Assert.IsNotNull(jobs);
            Assert.AreEqual(2, jobs.Count);
            ComplianceJob job = jobs.FirstOrDefault();

            Assert.IsNotNull(job);
            Assert.AreEqual("NIXh2p", job.JobID);
            Assert.AreEqual("Feline species research", job.JobName);
            Assert.AreEqual("https://storage.googleapis.com/twitter-compliance/test_user_ids", job.DownloadUrl);
            Assert.AreEqual(DateTime.Parse("2020-06-16T11:17:32.819+00:00"), job.DownloadExpiresAt);
            Assert.AreEqual(ComplianceStatus.Complete, job.Status);
        }
Beispiel #3
0
 private void PreSaveValidate(ComplianceJob savedObject)
 {
     if (((ComplianceJobProvider)base.DataSession).FindJobsByName <ComplianceSearch>(savedObject.Name) != null)
     {
         TDataObject dataObject = this.DataObject;
         base.WriteError(new ComplianceSearchNameIsNotUniqueException(dataObject.Name), ErrorCategory.InvalidArgument, savedObject);
     }
 }
        // Token: 0x0600003A RID: 58 RVA: 0x00002F48 File Offset: 0x00001148
        private ComplianceJob GetComplianceJob(OrganizationId organizationId, Guid jobRunId)
        {
            ComplianceJobProvider complianceJobProvider = new ComplianceJobProvider(organizationId);
            Guid          tenantGuid    = organizationId.GetTenantGuid();
            ComplianceJob complianceJob = complianceJobProvider.FindComplianceJob(tenantGuid, jobRunId).Single <ComplianceJob>();

            if (complianceJob != null)
            {
                return(complianceJob);
            }
            throw new ArgumentException(string.Format("No job data found. TenantId-{0} and JobRunId-{1}", tenantGuid, jobRunId));
        }
Beispiel #5
0
        public async Task CreateComplianceJobAsync_WithReply_ReturnsTrue()
        {
            const string JobName   = "abc";
            const bool   Resumable = true;
            var          ctx       = await InitializeTwitterContextAsync(JobResponse);

            ComplianceJob job = await ctx.CreateComplianceJobAsync(JobName, Resumable);

            Assert.IsNotNull(job);
            Assert.AreEqual("YIAh2p", job.JobID);
            Assert.AreEqual("https://storage.googleapis.com/twitter-compliance/test_tweet_ids", job.DownloadUrl);
            Assert.AreEqual(DateTime.Parse("2020-06-16T21:17:43.819+00:00"), job.DownloadExpiresAt);
            Assert.AreEqual("https://storage.googleapis.com/twitter-compliance/customer_test_object_123456_d8ske9.json", job.UploadUrl);
            Assert.AreEqual(DateTime.Parse("2020-06-16T21:17:43.818+00:00"), job.UploadExpiresAt);
        }
Beispiel #6
0
        protected override IConfigurable PrepareDataObject()
        {
            ComplianceJob complianceJob = (ComplianceJob)base.PrepareDataObject();
            bool          flag          = false;

            string[] array = null;
            if (this.ProcessBindings(complianceJob, ComplianceBindingType.ExchangeBinding, out flag, out array))
            {
                base.Fields["ExchangeBinding"]    = array;
                complianceJob.ExchangeBindings    = array;
                complianceJob.AllExchangeBindings = flag;
            }
            if (this.ProcessBindings(complianceJob, ComplianceBindingType.PublicFolderBinding, out flag, out array))
            {
                base.Fields["PublicFolderBinding"]    = array;
                complianceJob.PublicFolderBindings    = array;
                complianceJob.AllPublicFolderBindings = flag;
            }
            if (this.ProcessBindings(complianceJob, ComplianceBindingType.SharePointBinding, out flag, out array))
            {
                base.Fields["SharePointBinding"]    = array;
                complianceJob.SharePointBindings    = array;
                complianceJob.AllSharePointBindings = flag;
            }
            if ((complianceJob.ExchangeBindings == null || complianceJob.ExchangeBindings.Count == 0) && !complianceJob.AllExchangeBindings && (complianceJob.PublicFolderBindings == null || complianceJob.PublicFolderBindings.Count == 0) && !complianceJob.AllPublicFolderBindings && (complianceJob.SharePointBindings == null || complianceJob.SharePointBindings.Count == 0) && !complianceJob.AllSharePointBindings)
            {
                base.WriteError(new ComplianceJobTaskException(Strings.NoBindingsSet), ErrorCategory.InvalidArgument, null);
            }
            if (base.Fields.IsModified("Description"))
            {
                complianceJob.Description = this.Description;
            }
            if (base.Fields.IsModified("Name"))
            {
                complianceJob.Name = this.Name;
            }
            complianceJob.LastModifiedTime = DateTime.UtcNow;
            return(complianceJob);
        }
Beispiel #7
0
        private bool ProcessBindings(ComplianceJob dataObject, ComplianceBindingType bindingType, out bool processedAllBindings, out string[] processedBindings)
        {
            processedAllBindings = false;
            processedBindings    = null;
            string text;
            string text2;
            bool   flag;

            string[] array;
            string[] array2;
            string[] array3;
            MultiValuedProperty <string> multiValuedProperty;

            switch (bindingType)
            {
            case ComplianceBindingType.ExchangeBinding:
                text   = "ExchangeBinding";
                text2  = "AllExchangeBindings";
                flag   = (bool)(base.Fields["AllExchangeBindings"] ?? false);
                array  = (string[])base.Fields["ExchangeBinding"];
                array2 = (string[])base.Fields["AddExchangeBinding"];
                array3 = (string[])base.Fields["RemoveExchangeBinding"];
                multiValuedProperty  = dataObject.ExchangeBindings;
                processedAllBindings = dataObject.AllExchangeBindings;
                break;

            case ComplianceBindingType.SharePointBinding:
                text   = "SharePointBinding";
                text2  = "AllSharePointBindings";
                flag   = (bool)(base.Fields["AllSharePointBindings"] ?? false);
                array  = (string[])base.Fields["SharePointBinding"];
                array2 = (string[])base.Fields["AddSharePointBinding"];
                array3 = (string[])base.Fields["RemoveSharePointBinding"];
                multiValuedProperty  = dataObject.SharePointBindings;
                processedAllBindings = dataObject.AllSharePointBindings;
                break;

            case ComplianceBindingType.PublicFolderBinding:
                text   = "PublicFolderBinding";
                text2  = "AllPublicFolderBindings";
                flag   = (bool)(base.Fields["AllPublicFolderBindings"] ?? false);
                array  = (string[])base.Fields["PublicFolderBinding"];
                array2 = (string[])base.Fields["AddPublicFolderBinding"];
                array3 = (string[])base.Fields["RemovePublicFolderBinding"];
                multiValuedProperty  = dataObject.PublicFolderBindings;
                processedAllBindings = dataObject.AllPublicFolderBindings;
                break;

            default:
                return(false);
            }
            bool result = false;

            if (base.Fields.IsModified(text))
            {
                result = true;
            }
            else if (multiValuedProperty != null)
            {
                array = multiValuedProperty.ToArray();
            }
            if (array2 != null && array2.Length > 0)
            {
                if (array == null)
                {
                    array = array2;
                }
                else
                {
                    array = array.Union(array2).ToArray <string>();
                }
                result = true;
            }
            if (array3 != null && array3.Length > 0 && array != null)
            {
                array  = array.Except(array3).ToArray <string>();
                result = true;
            }
            if (base.Fields.IsModified(text2))
            {
                processedAllBindings = flag;
                result = true;
            }
            if (flag)
            {
                if (array != null || multiValuedProperty != null)
                {
                    this.WriteWarning(Strings.AllSourceMailboxesParameterOverride(text2, text));
                }
                processedBindings = null;
            }
            else
            {
                processedBindings = array;
            }
            return(result);
        }
 public ComplianceJobIdParameter(ComplianceJob job) : this(((ComplianceJobId)job.Identity).Guid)
 {
 }
        // Token: 0x0600003B RID: 59 RVA: 0x00002F94 File Offset: 0x00001194
        private bool HasMoreTasks(OrganizationId organizationId, Guid jobRunId)
        {
            ComplianceJob complianceJob = this.GetComplianceJob(organizationId, jobRunId);

            return(complianceJob.JobStatus != ComplianceJobStatus.NotStarted && complianceJob.JobStatus != ComplianceJobStatus.Starting);
        }