< Summary - Jellyfin

Information
Class: Jellyfin.Extensions.Json.Converters.JsonDateTimeConverter
Assembly: Jellyfin.Extensions
File(s): /srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonDateTimeConverter.cs
Line coverage
100%
Covered lines: 5
Uncovered lines: 0
Coverable lines: 5
Total lines: 34
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Read(...)100%11100%
Write(...)100%22100%

File(s)

/srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonDateTimeConverter.cs

#LineLine coverage
 1using System;
 2using System.Globalization;
 3using System.Text.Json;
 4using System.Text.Json.Serialization;
 5
 6namespace Jellyfin.Extensions.Json.Converters
 7{
 8    /// <summary>
 9    /// Legacy DateTime converter.
 10    /// Milliseconds aren't output if zero by default.
 11    /// </summary>
 12    public class JsonDateTimeConverter : JsonConverter<DateTime>
 13    {
 14        /// <inheritdoc />
 15        public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
 16        {
 10717            return reader.GetDateTime();
 18        }
 19
 20        /// <inheritdoc />
 21        public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
 22        {
 24023            if (value.Millisecond == 0)
 24            {
 25                // Remaining ticks value will be 0, manually format.
 4626                writer.WriteStringValue(value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffZ", CultureInfo.Invariant
 27            }
 28            else
 29            {
 19430                writer.WriteStringValue(value);
 31            }
 19432        }
 33    }
 34}