public async Task <IActionResult> PatchNoteAsync([FromRoute] string recordId, [FromBody] ClientModels.Todos.TodoPatchInfo patchInfo, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); if (patchInfo == null) { var error = ServiceErrorResponses.BodyIsMissing("RecordPatchInfo"); return(this.BadRequest(error)); } if (!Guid.TryParse(recordId, out var recordIdGuid)) { var error = ServiceErrorResponses.TodoNotFound(recordId); return(this.NotFound(error)); } if (!await IsSameUser(recordIdGuid, cancellationToken)) { var error = ServiceErrorResponses.TodoNotFound(recordId); return(NotFound(error)); } var modelPatchInfo = TodoPathcInfoConverter.Convert(recordIdGuid, patchInfo); Models.Todos.Todo modelRecord; try { modelRecord = await this._todoService.PatchAsync(modelPatchInfo, cancellationToken).ConfigureAwait(false); } catch (RecordNotFoundException) { var error = ServiceErrorResponses.TodoNotFound(recordId); return(this.NotFound(error)); } var clientNote = TodoConverter.Convert(modelRecord); return(this.Ok(clientNote)); }