예제 #1
0
        public IHttpActionResult AddTriggerForJobUniqueName(string uniqueName, [FromBody] JobTriggerDtoBase triggerDto)
        {
            var job = this.queryService.GetJobByUniqueName(uniqueName);

            if (job == null)
            {
                return(this.NotFound());
            }

            return(this.AddTrigger(triggerDto, job));
        }
예제 #2
0
        public IHttpActionResult AddTriggerForJobId(long jobId, [FromBody] JobTriggerDtoBase triggerDto)
        {
            var job = this.queryService.GetJobById(jobId);

            if (job == null)
            {
                return(this.NotFound());
            }

            return(this.AddTrigger(triggerDto, job));
        }
예제 #3
0
        internal static IJobTrigger MapCommonValues(JobTriggerDtoBase dto, IJobTrigger trigger)
        {
            trigger.Comment         = dto.Comment;
            trigger.IsActive        = dto.IsActive;
            trigger.Parameters      = JsonConvert.SerializeObject(dto.Parameters);
            trigger.UserDisplayName = dto.UserDisplayName;
            trigger.UserId          = dto.UserId;
            trigger.Deleted         = dto.Deleted;

            return(trigger);
        }
예제 #4
0
        internal static JobTriggerDtoBase MapCommonValues(IJobTrigger trigger, JobTriggerDtoBase dto)
        {
            dto.Id         = trigger.Id;
            dto.Comment    = trigger.Comment;
            dto.IsActive   = trigger.IsActive;
            dto.Parameters = trigger.Parameters != null?JsonConvert.DeserializeObject(trigger.Parameters) : null;

            dto.UserDisplayName = trigger.UserDisplayName;
            dto.UserId          = trigger.UserId;
            dto.Deleted         = trigger.Deleted;

            return(dto);
        }
예제 #5
0
        private IHttpActionResult AddTrigger(JobTriggerDtoBase triggerDto, Job job)
        {
            if (triggerDto == null)
            {
                return(this.StatusCode(HttpStatusCode.BadRequest));
            }

            if (triggerDto is InstantTriggerDto)
            {
                triggerDto.IsActive = true;
            }

            var trigger = TriggerMapper.ConvertToTrigger(triggerDto as dynamic);

            ((IJobTrigger)trigger).JobId = job.Id;

            this.jobManagementService.AddTrigger(job.Id, trigger);

            return(this.Created(string.Format("jobs/{0}/triggers/{1}", job.Id, trigger.Id), TriggerMapper.ConvertToDto(trigger)));
        }
예제 #6
0
        public IHttpActionResult UpdateTrigger(long jobId, long triggerId, [FromBody] JobTriggerDtoBase dto)
        {
            var currentTrigger = this.queryService.GetTriggerById(jobId, triggerId);

            if (currentTrigger == null)
            {
                return(this.NotFound());
            }

            if (currentTrigger.IsActive && !dto.IsActive)
            {
                currentTrigger.IsActive = false;
                this.jobManagementService.DisableTrigger(jobId, currentTrigger.Id);
            }
            else if (!currentTrigger.IsActive && dto.IsActive)
            {
                currentTrigger.IsActive = true;
                this.jobManagementService.EnableTrigger(jobId, currentTrigger.Id);
            }

            if (dto is RecurringTriggerDto recurringTriggerDto)
            {
                var trigger = TriggerMapper.ConvertToTrigger(recurringTriggerDto);
                trigger.Id    = triggerId;
                trigger.JobId = jobId;

                this.jobManagementService.Update(trigger);
            }
            else if (dto is ScheduledTriggerDto scheduledTriggerDto)
            {
                var trigger = TriggerMapper.ConvertToTrigger(scheduledTriggerDto);
                trigger.Id    = triggerId;
                trigger.JobId = jobId;

                this.jobManagementService.Update(trigger);
            }

            return(this.Ok(dto));
        }