private void WriteData(StreamWriter writer, string waterMark, out int continuationToken, out DateTime minCreatedDateTime, out int totalCount) { ParsingHelper.TryParseWaterMark(waterMark, out continuationToken, out minCreatedDateTime); Logger.Info($"Starting ingesting releaseenvironment : {continuationToken}, {minCreatedDateTime}"); int count = 0; int currentCount; do { var releases = this._releaseRestApiProvider.GetReleases(minCreatedDateTime, continuationToken, out int continuationTokenOutput); Logger.Info($"ReleaseEnvironment: {continuationToken}"); currentCount = releases.Count; count += currentCount; if (currentCount > 0 && continuationTokenOutput == 0) { continuationToken = releases[currentCount - 1].Id + 1; minCreatedDateTime = releases[currentCount - 1].CreatedOn; } else if (continuationTokenOutput != 0) { if (currentCount > 0 && releases[currentCount - 1].Id == continuationTokenOutput) { continuationToken = continuationTokenOutput + 1; } else { continuationToken = continuationTokenOutput; } } List <string> releaseObjects = new List <string>(); Parallel.ForEach(releases, (release) => { var releaseFullObject = this._releaseRestApiProvider.GetRelease(release.Id); foreach (var releaseEnvironment in releaseFullObject.Environments) { JObject jObject = JObject.FromObject(releaseEnvironment); jObject.Add("OrganizationName", organizationName); jObject.Add("ProjectId", projectId); jObject.Add("Data", jObject); releaseObjects.Add(JsonConvert.SerializeObject(jObject)); } }); totalCount = releaseObjects.Count; foreach (var releaseObject in releaseObjects) { writer.WriteLine(releaseObject); } } while (currentCount != 0 && continuationToken != 0 && count <= batchSize); }
private void WriteData(StreamWriter writer, string waterMark, out int continuationToken, out DateTime minCreatedDateTime, out int totalCount) { ParsingHelper.TryParseWaterMark(waterMark, out continuationToken, out minCreatedDateTime); Logger.Info($"Starting ingesting releaseartifact : {continuationToken}, {minCreatedDateTime}"); int count = 0; int currentCount; do { var releases = this._releaseRestApiProvider.GetReleases(minCreatedDateTime, continuationToken, out int continuationTokenOutput, ReleaseExpands.Artifacts); Logger.Info($"ReleaseArtifact: {continuationToken}"); currentCount = releases.Count; count += currentCount; if (currentCount > 0 && continuationTokenOutput == 0) { continuationToken = releases[currentCount - 1].Id + 1; minCreatedDateTime = releases[currentCount - 1].CreatedOn; } else if (continuationTokenOutput != 0) { if (currentCount > 0 && releases[currentCount - 1].Id == continuationTokenOutput) { continuationToken = continuationTokenOutput + 1; } else { continuationToken = continuationTokenOutput; } } totalCount = releases.Count; foreach (var release in releases) { foreach (var artifact in release.Artifacts) { JObject jObject = JObject.FromObject(artifact); jObject.Add("OrganizationName", organizationName); jObject.Add("ProjectId", projectId); jObject.Add("ReleaseId", release.Id); writer.WriteLine(JsonConvert.SerializeObject(jObject)); } } } while (currentCount != 0 && continuationToken != 0 && count <= batchSize); }
private void WriteData(StreamWriter writer, string waterMark, out int continuationToken, out DateTime minModifiedDate, out int totalCount) { ParsingHelper.TryParseWaterMark(waterMark, out continuationToken, out minModifiedDate); Logger.Info($"Starting ingesting releasedeployment : {continuationToken}, {minModifiedDate}"); int count = 0; int currentCount; do { var deployments = this._releaseRestApiProvider.GetDeployments(minModifiedDate, continuationToken, out int continuationTokenOutput); Logger.Info($"ReleaseDeployment: {continuationToken}"); currentCount = deployments.Count; count += currentCount; if (currentCount > 0 && continuationTokenOutput == 0) { continuationToken = deployments[currentCount - 1].Id + 1; minModifiedDate = deployments[currentCount - 1].LastModifiedOn; } else if (continuationTokenOutput != 0) { if (currentCount > 0 && deployments[currentCount - 1].Id == continuationTokenOutput) { continuationToken = continuationTokenOutput + 1; } else { continuationToken = continuationTokenOutput; } } totalCount = deployments.Count; foreach (var deployment in deployments) { JObject jObject = JObject.FromObject(deployment); jObject.Add("OrganizationName", organizationName); jObject.Add("ProjectId", projectId); writer.WriteLine(JsonConvert.SerializeObject(jObject)); } } while (currentCount != 0 && continuationToken != 0 && count <= batchSize); }
private void WriteData(StreamWriter writer, string waterMark, out int continuationToken, out DateTime minCreatedDateTime, out int totalCount) { ParsingHelper.TryParseWaterMark(waterMark, out continuationToken, out minCreatedDateTime); Logger.Info($"Starting ingesting releaseTimelineRecord : {continuationToken}, {minCreatedDateTime}"); int count = 0; int currentCount; do { var releases = this._releaseRestApiProvider.GetReleases(minCreatedDateTime, continuationToken, out int continuationTokenOutput, ReleaseExpands.Environments); Logger.Info($"ReleaseTimelineRecord: {continuationToken}"); currentCount = releases.Count; count += currentCount; if (currentCount > 0 && continuationTokenOutput == 0) { continuationToken = releases[currentCount - 1].Id + 1; minCreatedDateTime = releases[currentCount - 1].CreatedOn; } else if (continuationTokenOutput != 0) { if (currentCount > 0 && releases[currentCount - 1].Id == continuationTokenOutput) { continuationToken = continuationTokenOutput + 1; } else { continuationToken = continuationTokenOutput; } } List <string> releaseObjects = new List <string>(); Parallel.ForEach(releases, (release) => { var releaseFullObject = this._releaseRestApiProvider.GetRelease(release.Id); foreach (var releaseEnvironment in releaseFullObject.Environments) { foreach (var deployStep in releaseEnvironment.DeploySteps) { foreach (var phase in deployStep.ReleaseDeployPhases) { JObject jObject = JObject.FromObject(phase); jObject.Add("OrganizationName", organizationName); jObject.Add("ProjectId", projectId); jObject.Add("ReleaseId", releaseEnvironment.ReleaseId); jObject.Add("ReleaseEnvironmentId", releaseEnvironment.Id); jObject.Add("ReleaseTimelineId", phase.RunPlanId); jObject.Add("Type", "Phase"); releaseObjects.Add(JsonConvert.SerializeObject(jObject)); foreach (var job in phase.DeploymentJobs) { JObject jObject2 = JObject.FromObject(job.Job); jObject2.Add("OrganizationName", organizationName); jObject2.Add("ProjectId", projectId); jObject2.Add("ReleaseId", releaseEnvironment.ReleaseId); jObject2.Add("ReleaseEnvironmentId", releaseEnvironment.Id); jObject2.Add("ParentId", phase.RunPlanId); jObject2.Add("ReleaseTimelineId", phase.RunPlanId); jObject2.Add("Type", "Job"); releaseObjects.Add(JsonConvert.SerializeObject(jObject2)); foreach (var task in job.Tasks) { JObject jObject3 = JObject.FromObject(task); jObject3.Add("OrganizationName", organizationName); jObject3.Add("ProjectId", projectId); jObject3.Add("ReleaseId", releaseEnvironment.ReleaseId); jObject3.Add("ReleaseEnvironmentId", releaseEnvironment.Id); jObject3.Add("ParentId", job.Job.TimelineRecordId); jObject3.Add("ReleaseTimelineId", phase.RunPlanId); jObject3.Add("Type", "Task"); releaseObjects.Add(JsonConvert.SerializeObject(jObject3)); } } } } } }); totalCount = releaseObjects.Count; foreach (var releaseObject in releaseObjects) { writer.WriteLine(releaseObject); } } while (currentCount != 0 && continuationToken != 0 && count <= batchSize); }