public static bool IsAbortNeeded(this FileSystemClientImpl fs, Result result)
        {
            if (result.IsSuccess())
            {
                return(false);
            }

            switch (fs.Fs.GetCurrentThreadFsContext().HandleResult(result))
            {
            case AbortSpecifier.Default:
                if (fs.Globals.ResultHandlingUtility.IsResultHandledByApplication)
                {
                    return(ResultFs.HandledByAllProcess.Includes(result));
                }
                else
                {
                    return(!(ResultFs.HandledByAllProcess.Includes(result) ||
                             ResultFs.HandledBySystemProcess.Includes(result)));
                }

            case AbortSpecifier.Abort:
                return(true);

            case AbortSpecifier.Return:
                return(false);

            default:
                Abort.UnexpectedDefault();
                return(default);
            }
        }
        internal static void AbortIfNeeded(this FileSystemClientImpl fs, Result result,
                                           [CallerMemberName] string functionName = "")
        {
            if (!IsAbortNeeded(fs, result))
            {
                return;
            }

            fs.LogResultErrorMessage(result, functionName);

            if (!result.IsSuccess())
            {
                Abort.DoAbort(result);
            }
        }
 public static void LogResultErrorMessage(this FileSystemClientImpl fs, Result result,
                                          [CallerMemberName] string functionName = "")
 {
     // Todo
 }
 public static void LogResultErrorMessage(this FileSystemClientImpl fs, Result result)
 {
     // Todo
 }