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);
        }
Пример #2
0
        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);
        }