private async Task HandleTrx()

in src/dotnet/Rider.Plugins.TrxPlugin/TrxManager.cs [147:216]


    private async Task<RdCallResponse> HandleTrx(string trxFilePath)
    {
        XDocument document;
        try
        {
            await using var stream = File.OpenRead(trxFilePath);
            document = await XDocument.LoadAsync(stream, LoadOptions.None, CancellationToken.None);
        }
        catch (Exception ex)
        {
            _myLogger.Error(ex);
            return new RdCallResponse("Failed", "import.messages.error.open");
        }

        var root = document.Root;
        var defaultNamespace = root?.GetDefaultNamespace();

        List<UnitTestResult> results;
        try
        {
            results = TrxParser.ParseResults(root, defaultNamespace);
        }
        catch (Exception ex)
        {
            _myLogger.Error(ex);
            return new RdCallResponse("Failed", "import.messages.error.parse");
        }

        var countOuterResults = results.Count;
        try
        {
            for (int i = 0; i < countOuterResults; i++)
            {
                TrxParser.AddInnerResults(results[i], results);
            }
        }
        catch (Exception ex)
        {
            _myLogger.Error(ex);
            return new RdCallResponse("Failed", "import.messages.error.innerResults");
        }

        try
        {
            TrxParser.AddDefinitions(root, results, defaultNamespace);
        }
        catch (Exception ex)
        {
            _myLogger.Error(ex);
            return new RdCallResponse("Failed", "import.messages.error.definitions");
        }

        try
        {
            var testRunId = root?.Attribute("id")?.Value;
            if (defaultNamespace?.ToString() == "")
            {
                testRunId = root.Element("TestRun")?.Element("id")?.Value;
            }

            await DisplayResults(_myLifetime, results, testRunId, trxFilePath);
        }
        catch (Exception ex)
        {
            _myLogger.Error(ex);
            return new RdCallResponse("Failed", "import.messages.error.displayResults");
        }

        return new RdCallResponse("Success", "Successfully parsed trx file");
    }