コード例 #1
0
        protected override void ProcessRecord()
        {
            var baseResourceList = new List <ReleaseResource>();

            var project = _connection.Repository.Projects.FindByName(ProjectName);

            if (project == null)
            {
                throw OctoposhExceptions.ResourceNotFound(ProjectName, "Project");
            }
            else
            {
                switch (ParameterSetName)
                {
                case ByVersion:
                    foreach (var version in ReleaseVersion)
                    {
                        try
                        {
                            baseResourceList.Add(_connection.Repository.Projects.GetReleaseByVersion(project, version));
                        }
                        catch (Exception e)
                        {
                            WriteError(new ErrorRecord(e, "ResourceNotFound", ErrorCategory.ObjectNotFound, e.Message));
                        }
                    }
                    break;

                case ByLatest:

                    var releases = new List <ReleaseResource>();

                    if (Latest > 30)
                    {
                        releases = _connection.Repository.Projects.GetAllReleases(project).ToList();
                    }
                    else
                    {
                        releases = _connection.Repository.Projects.GetReleases(project).Items.ToList();
                    }

                    if (releases.Count > Latest)
                    {
                        baseResourceList.AddRange(releases.GetRange(0, Latest));
                    }
                    else
                    {
                        baseResourceList.AddRange(releases);
                    }

                    break;

                default:
                    baseResourceList.AddRange(_connection.Repository.Projects.GetAllReleases(project).ToList());
                    break;
                }
            }

            if (ResourceOnly)
            {
                WriteObject(baseResourceList);
            }

            else
            {
                var converter  = new OutputConverter();
                var outputList = converter.GetOctopusRelease(baseResourceList);

                WriteObject(outputList);
            }
        }