< Summary

Class:SVETA.Api.Helpers.DateTimeConverterExtension
Assembly:WinSolutions.Sveta.Server
File(s):/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Data/DataModel/Extensions/DateTimeConverterExtension.cs
Covered lines:10
Uncovered lines:22
Coverable lines:32
Total lines:79
Line coverage:31.2% (10 of 32)
Covered branches:5
Total branches:16
Branch coverage:31.2% (5 of 16)

Metrics

MethodLine coverage Branch coverage
ToMoscowTime(...)69.23%50%
StartOfDay(...)0%100%
EndOfDate(...)0%100%
GetStartOfDate(...)0%0%
GetEndOfDate(...)0%0%
IsNullOrMinValue(...)100%66.66%
GetDate(...)0%0%
ToISOString(...)0%0%

File(s)

/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Data/DataModel/Extensions/DateTimeConverterExtension.cs

#LineLine coverage
 1using System;
 2using Microsoft.OData.Edm;
 3
 4namespace SVETA.Api.Helpers
 5{
 6    public static class DateTimeConverterExtension
 7    {
 8        public static DateTime ToMoscowTime(this DateTime dateTime)
 3069        {
 30610            string displayName = "Moscow Standard Time";
 30611            string standartName = "(UTC+3) Moscow Standard Time";
 30612            string daylightName = "Moscow Standard Time";
 30613            TimeZoneInfo cstZone = TimeZoneInfo.CreateCustomTimeZone(displayName, new TimeSpan(3, 0,0), standartName, da
 14            try
 30615            {
 30616                if (dateTime != DateTime.MinValue)
 30617                    return TimeZoneInfo.ConvertTimeFromUtc(DateTime.SpecifyKind(dateTime, DateTimeKind.Utc), cstZone);
 18                else
 019                    return dateTime;
 20            }
 021            catch (Exception)
 022            {
 023                return DateTime.MinValue;
 24            }
 30625        }
 26
 27        public static DateTime StartOfDay(this DateTime dateTime) =>
 028            DateTime.SpecifyKind( new DateTime(dateTime.Year,
 029                dateTime.Month,
 030                dateTime.Day,
 031                0,
 032                0,
 033                0,
 034                0), DateTimeKind.Local);
 35        public static DateTime EndOfDate(this DateTime dateTime) =>
 036            DateTime.SpecifyKind(new DateTime(dateTime.Year,
 037                dateTime.Month,
 038                dateTime.Day,
 039                23,
 040                59,
 041                59,
 042                999), DateTimeKind.Local);
 43
 44        /// <summary>
 45        /// Возвращает Datetime.MinValue если значение null или minValue, иначе дату и начало дня с учетом часового пояс
 46        /// </summary>
 47        /// <param name="dateTime">Дата и время с часовым поясом</param>
 48        /// <returns>объект datetime</returns>
 049        public static DateTime GetStartOfDate(this DateTimeOffset dateTime) => dateTime != DateTimeOffset.MinValue ? dat
 50
 51        /// <summary>
 52        /// Возвращает Datetime.MinValue если значение null или minValue, иначе дату и конец дня с учетом часового пояса
 53        /// </summary>
 54        /// <param name="dateTime">Дата и время с часовым поясом</param>
 55        /// <returns>объект datetime</returns>
 056        public static DateTime GetEndOfDate(this DateTimeOffset dateTime) => dateTime != DateTimeOffset.MinValue ? dateT
 57
 58        /// <summary>
 59        /// Проверяет, является ли значение null или DateTime.MinValue
 60        /// </summary>
 61        /// <param name="dateTime">Дата и время с часовым поясом</param>
 62        /// <returns>значение true/false</returns>
 2063        public static bool IsNullOrMinValue(this DateTime? dateTime) => !dateTime.HasValue || dateTime == DateTime.MinVa
 64
 65        /// <summary>
 66        /// Возвращает Datetime.MinValue если значение null или minValue, иначе дату
 67        /// </summary>
 68        /// <param name="dateTime">Дата и время с часовым поясом</param>
 69        /// <returns>объект datetime</returns>
 070        public static DateTime GetDate(this DateTimeOffset dateTime) => dateTime != DateTimeOffset.MinValue ? dateTime.D
 71
 72        /// <summary>
 73        /// Возвращает строку в формате ISO8601 или null, если значение null или minValue
 74        /// </summary>
 75        /// <param name="dateTime">Дата и время с часовым поясом</param>
 76        /// <returns>строка в формате iso8601</returns>
 077        public static string ToISOString(this DateTimeOffset dateTime) => dateTime != DateTimeOffset.MinValue ? dateTime
 78    }
 79}