public async Task <IActionResult> CancelReleaseScheduledShiftAssignment(int scheduledShiftAssignmentId)
        {
            var now = _clock.UtcNow.UtcDateTime;

            var assignment = await _shiftRepository.GetScheduledShiftAssignment(scheduledShiftAssignmentId);

            var shift = await _shiftRepository.GetScheduledShift(assignment.ScheduledShiftId);

            if ((//is an admin
                    User.RoleInPatrol(shift.PatrolId).CanMaintainSchedule()
                    //shift belongs to current user
                    || assignment.AssignedUserId == User.UserId()) &&
                now < shift.StartsAt)
            {
                await _scheduleService.CancelShiftRelease(scheduledShiftAssignmentId);

                return(Ok());
            }
            else
            {
                return(Forbid());
            }
        }