/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v6.0.12
src/Npgsql.NodaTime/Internal/TimeTzHandler.cs
41 строка
2 KB
Shay Rojansky
Apply file-scoped namespaces for 6.0 (#4298)
28 янв 2022, 15:13
Не верифицирован
28 янв 2022, 15:13
2e0ad2d
Код
Авторство
О чём код?
using System; using NodaTime; using Npgsql.BackendMessages; using Npgsql.Internal; using Npgsql.Internal.TypeHandling; using Npgsql.PostgresTypes; using BclTimeTzHandler = Npgsql.Internal.TypeHandlers.DateTimeHandlers.TimeTzHandler; namespace Npgsql.NodaTime.Internal; sealed partial class TimeTzHandler : NpgsqlSimpleTypeHandler<OffsetTime>, INpgsqlSimpleTypeHandler<DateTimeOffset> { readonly BclTimeTzHandler _bclHandler; internal TimeTzHandler(PostgresType postgresType) : base(postgresType) => _bclHandler = new BclTimeTzHandler(postgresType); // Adjust from 1 microsecond to 100ns. Time zone (in seconds) is inverted. public override OffsetTime Read(NpgsqlReadBuffer buf, int len, FieldDescription? fieldDescription = null) => new( LocalTime.FromTicksSinceMidnight(buf.ReadInt64() * 10), Offset.FromSeconds(-buf.ReadInt32())); public override int ValidateAndGetLength(OffsetTime value, NpgsqlParameter? parameter) => 12; public override void Write(OffsetTime value, NpgsqlWriteBuffer buf, NpgsqlParameter? parameter) { buf.WriteInt64(value.TickOfDay / 10); buf.WriteInt32(-(int)(value.Offset.Ticks / NodaConstants.TicksPerSecond)); } DateTimeOffset INpgsqlSimpleTypeHandler<DateTimeOffset>.Read(NpgsqlReadBuffer buf, int len, FieldDescription? fieldDescription) => _bclHandler.Read<DateTimeOffset>(buf, len, fieldDescription); int INpgsqlSimpleTypeHandler<DateTimeOffset>.ValidateAndGetLength(DateTimeOffset value, NpgsqlParameter? parameter) => _bclHandler.ValidateAndGetLength(value, parameter); void INpgsqlSimpleTypeHandler<DateTimeOffset>.Write(DateTimeOffset value, NpgsqlWriteBuffer buf, NpgsqlParameter? parameter) => _bclHandler.Write(value, buf, parameter); }