public async Task <ActionResult> UpdateApiFieldsAsync([FromBody] ApiUpdate api) { var updateApiFields = new UpdateApiFields() { Name = api.Name, NewBusinessOwner = api.NewBusinessOwner, NewDescription = api.NewDescription, NewName = api.NewName, NewTechnicalOwner = api.NewTechnicalOwner, NewTitle = api.NewTitle, NewTags = api.NewTags }; var response = await _mediator.Send(updateApiFields); if (response.Result == UpdateResult.Updated) { return(Ok()); } else if (response.Result == UpdateResult.NotFound) { return(NotFound()); } else if (response.Result == UpdateResult.NotUpdated) { return(StatusCode(500)); // TODO return meaningful result to client } else { return(StatusCode(500)); // TODO return meaningful result to client } }
public async Task <Response <UpdateResult> > Handle(UpdateApiFields request) { var dbApi = await _context.Apis.FirstOrDefaultAsync(x => x.Name.Equals(request.Name)); if (dbApi == null) { return(new Response <UpdateResult>(UpdateResult.NotFound)); } else { if (!string.IsNullOrEmpty(request.NewName)) { dbApi.Name = request.NewName; } if (!string.IsNullOrEmpty(request.NewTitle)) { dbApi.Title = request.NewTitle; } if (!string.IsNullOrEmpty(request.NewDescription)) { dbApi.Description = request.NewDescription; } if (!string.IsNullOrEmpty(request.NewBusinessOwner)) { dbApi.BusinessOwner = request.NewBusinessOwner; } if (!string.IsNullOrEmpty(request.NewTechnicalOwner)) { dbApi.TechnicalOwner = request.NewTechnicalOwner; } if (request.NewTags != null) { var tagsResponse = await SetApiTagsAsync(request); if (tagsResponse.Result == UpdateResult.Updated) { await _context.SaveChangesAsync(); return(new Response <UpdateResult>(UpdateResult.Updated)); } else { return(new Response <UpdateResult>(UpdateResult.NotUpdated, $"Update aborted - could not update tags. Message is {tagsResponse.Description}")); } } else { await _context.SaveChangesAsync(); return(new Response <UpdateResult>(UpdateResult.Updated)); } } }
private async Task <Response <UpdateResult> > SetApiTagsAsync(UpdateApiFields request) { var setApiTags = new SetApiTags() { ApiName = request.Name, Tags = request.NewTags, Commit = false, UseLocal = true }; return(await _mediator.Send(setApiTags)); }