예제 #1
0
        public async Task <ProjectTriggerEditor> CreateOrModify(string name, TriggerFilterResource filter, TriggerActionResource action)
        {
            var projectTriggerBuilder = await new ProjectTriggerEditor(repository).CreateOrModify(owner, name, filter, action).ConfigureAwait(false);

            trackedProjectTriggerBuilders.Add(projectTriggerBuilder);
            return(projectTriggerBuilder);
        }
예제 #2
0
        public ProjectTriggerEditor CreateOrModify(string name, TriggerFilterResource filter, TriggerActionResource action)
        {
            var projectTriggerBuilder = new ProjectTriggerEditor(repository).CreateOrModify(owner, name, filter, action);

            trackedProjectTriggerBuilders.Add(projectTriggerBuilder);
            return(projectTriggerBuilder);
        }
        public static ProjectTriggerMachineFilter ToModel(this TriggerFilterResource resource, IOctopusRepository repository)
        {
            var machineFilterResource = (MachineFilterResource)resource;

            var environments    = machineFilterResource.EnvironmentIds.Select(v => new ElementReference(repository.Environments.Get(v).Name));
            var roles           = machineFilterResource.Roles.Select(v => new ElementReference(v));
            var eventGroups     = machineFilterResource.EventGroups.Select(v => new ElementReference(v));
            var eventCategories = machineFilterResource.EventCategories.Select(v => new ElementReference(v));

            return(new ProjectTriggerMachineFilter(environments, roles, eventGroups, eventCategories));
        }
예제 #4
0
        public static async Task <ProjectTriggerMachineFilter> ToModel(this TriggerFilterResource resource, IOctopusAsyncRepository repository)
        {
            var machineFilterResource = (MachineFilterResource)resource;

            var environments = await Task.WhenAll(machineFilterResource.EnvironmentIds.Select(async v => new ElementReference((await repository.Environments.Get(v)).Name)));

            var roles           = machineFilterResource.Roles.Select(v => new ElementReference(v));
            var eventGroups     = machineFilterResource.EventGroups.Select(v => new ElementReference(v));
            var eventCategories = machineFilterResource.EventCategories.Select(v => new ElementReference(v));

            return(new ProjectTriggerMachineFilter(environments, roles, eventGroups, eventCategories));
        }
 public Task <ProjectTriggerEditor> CreateOrModify(ProjectResource project, string name, TriggerFilterResource filter, TriggerActionResource action)
 {
     return(new ProjectTriggerEditor(this).CreateOrModify(project, name, filter, action));
 }
 public Task <ProjectTriggerEditor> CreateOrModify(ProjectResource project, string name, TriggerFilterResource filter, TriggerActionResource action)
 {
     throw new System.NotImplementedException();
 }
예제 #7
0
        public async Task <ProjectTriggerEditor> CreateOrModify(ProjectResource project, string name, TriggerFilterResource filter, TriggerActionResource action)
        {
            var existing = await repository.FindByName(project, name).ConfigureAwait(false);

            if (existing == null)
            {
                Instance = await repository.Create(new ProjectTriggerResource
                {
                    Name      = name,
                    ProjectId = project.Id,
                    Filter    = filter,
                    Action    = action
                }).ConfigureAwait(false);
            }
            else
            {
                existing.Name   = name;
                existing.Filter = filter;
                existing.Action = action;
                Instance        = await repository.Modify(existing).ConfigureAwait(false);
            }

            return(this);
        }
예제 #8
0
        public Task <ProjectTriggerEditor> CreateOrModify(ProjectResource project, string name, TriggerFilterResource filter, TriggerActionResource action)
        {
            ThrowIfServerVersionIsNotCompatible().ConfigureAwait(false);

            return(new ProjectTriggerEditor(this).CreateOrModify(project, name, filter, action));
        }