using System; namespace AsbCloudApp.Data { /// <summary> /// временная зона /// </summary> public class SimpleTimezoneDto { /// <summary> /// смещение в часах относительно UTC /// </summary> public double Hours { get; set; } /// <summary> /// идентификатор часовой зоны /// </summary> public string? TimezoneId { get; set; } /// <summary> /// запрет на переопределение /// </summary> public bool IsOverride { get; set; } /// <summary> /// Смещение часового пояса /// </summary> public TimeSpan Offset => TimeSpan.FromHours(Hours); /// <inheritdoc/> public override bool Equals(object? obj) { if (obj is SimpleTimezoneDto tTimeZone && tTimeZone.Hours == Hours && tTimeZone.TimezoneId == TimezoneId && tTimeZone.IsOverride == IsOverride) return true; return false; } /// <inheritdoc/> public override int GetHashCode() => Hours.GetHashCode() | TimezoneId?.GetHashCode()??-1 | IsOverride.GetHashCode(); /// <inheritdoc/> public override string ToString() => $"{TimezoneId} (UTC+{Hours:00.##})"; } }