public async Task <JsonResult> RevokeCollaborationRequest([FromHeader] int accountId, [FromRoute] int collaborationId) { var collaborationRequest = await _collaborationService.GetCollaborationRequest(collaborationId, accountId, true); if (collaborationRequest == null) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while getting data." })); } switch (collaborationRequest.IsAccepted) { case true: return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "Collaboration requested was accepted." })); case false when collaborationRequest.RejectedOn.HasValue: return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "Collaboration requested was rejected." })); default: var result = await _collaborationService.DeleteCollaborationRequest(collaborationRequest); return(!result.HasValue || !result.Value ? new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while removing data." }) : new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Success })); } }