public virtual async Task <IActionResult> CreatePipeline([Required] int pipelineIdentifier, [Required] string organization, [Required] string project) { Data.Models.ReleasePipeline pipeline = await _context.ReleasePipelines .FirstOrDefaultAsync(rp => rp.PipelineIdentifier == pipelineIdentifier && rp.Organization.Equals(organization, StringComparison.OrdinalIgnoreCase) && rp.Project.Equals(project, StringComparison.OrdinalIgnoreCase) ); // If an release pipeline with same values already exist then do nothing if (pipeline != null) { return(StatusCode((int)HttpStatusCode.NotModified)); } var pipelineModel = new Data.Models.ReleasePipeline { PipelineIdentifier = pipelineIdentifier, Organization = organization, Project = project }; await _context.ReleasePipelines.AddAsync(pipelineModel); await _context.SaveChangesAsync(); return(CreatedAtRoute( new { action = "GetPipeline", id = pipelineModel.Id }, new ReleasePipeline(pipelineModel))); }
public virtual async Task <IActionResult> GetPipeline(int id) { Data.Models.ReleasePipeline pipeline = await _context.ReleasePipelines.Where(c => c.Id == id).FirstOrDefaultAsync(); if (pipeline == null) { return(NotFound()); } return(Ok(new ReleasePipeline(pipeline))); }
public virtual async Task <IActionResult> DeletePipeline(int id) { bool isPipelineInUse = await _context.ChannelReleasePipelines.AnyAsync(crp => crp.ReleasePipelineId == id); if (isPipelineInUse) { return(BadRequest(new ApiError($"The pipeline with id '{id}' is in use and cannot be deleted."))); } Data.Models.ReleasePipeline pipeline = await _context.ReleasePipelines .FirstOrDefaultAsync(c => c.Id == id); if (pipeline == null) { return(NotFound()); } _context.ReleasePipelines.Remove(pipeline); await _context.SaveChangesAsync(); return(Ok(new ReleasePipeline(pipeline))); }