﻿
// <auto-generated/>
#nullable enable
#pragma warning disable CS1591 // Compensate for https://github.com/dotnet/roslyn/issues/54103

namespace Test
{
    partial class LoggerUtils
    {
        partial class MyLogger
        {
            /// <summary>
            /// Logs "Testing nullable property within class here..." at "Information" level.
            /// </summary>
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Gen.Logging", "VERSION")]
            public static partial void LogMethodNullablePropertyInClassMatchesNonNullable(global::Microsoft.Extensions.Logging.ILogger logger, global::Test.LoggerUtils.MyClassWithNullableProperty classWithNullablePropertyParam)
            {
                if (!logger.IsEnabled(global::Microsoft.Extensions.Logging.LogLevel.Information))
                {
                    return;
                }

                var state = global::Microsoft.Extensions.Logging.LoggerMessageHelper.ThreadLocalState;

                _ = state.ReserveTagSpace(3);
                state.TagArray[2] = new("classWithNullablePropertyParam.NullableDateTime", classWithNullablePropertyParam?.NullableDateTime);
                state.TagArray[1] = new("classWithNullablePropertyParam.NonNullableDateTime", classWithNullablePropertyParam?.NonNullableDateTime);
                state.TagArray[0] = new("{OriginalFormat}", "Testing nullable property within class here...");

                logger.Log(
                    global::Microsoft.Extensions.Logging.LogLevel.Information,
                    new(0, nameof(LogMethodNullablePropertyInClassMatchesNonNullable)),
                    state,
                    null,
                    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Gen.Logging", "VERSION")] static string (s, _) =>
                    {
                        return "Testing nullable property within class here...";
                    });

                state.Clear();
            }
        }
    }
}
