public async Task <JsonResult> AddSegmentToNote([FromHeader] int accountId, [FromBody] NoteSegment segment) { var errorMessage = segment.ValidateBody(); if (errorMessage) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "Segment body is empty." })); } var(error, user) = await _userService.GetUserProfileByAccountId(accountId); if (error || user == null) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while getting data." })); } var hasAssociation = await _collaborationService.IsNoteAssociatedWithThisUser(segment.NoteId, user.Id, SharedEnums.Permissions.Edit); if (!hasAssociation.HasValue) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while getting data." })); } if (!hasAssociation.Value) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "You are not authorized for this action." })); } var saveResult = await _noteService.InsertNoteSegment(segment); return(!saveResult.HasValue || saveResult.Value < 1 ? new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while saving data." }) : new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Success, Data = saveResult.Value })); }