Browse Source

Rename `Convert` methods in `Clock` class.

pull/22236/head
maliming 1 year ago
parent
commit
5ddf9b5238
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs
  2. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs
  3. 8
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs
  4. 14
      framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Clock.cs
  5. 10
      framework/src/Volo.Abp.Timing/Volo/Abp/Timing/IClock.cs
  6. 20
      framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Default_Tests.cs
  7. 22
      framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Utc_Tests.cs

10
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs

@ -54,7 +54,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
{
if(x is string s && DateTime.TryParse(s, out var dt))
{
return Clock.ConvertTo(dt).ToString("O");
return Clock.ConvertToUserTime(dt).ToString("O");
}
return string.Empty;
@ -65,7 +65,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
{
if(x is DateTime dt && dt != default)
{
return Clock.ConvertTo(dt).ToString("O");
return Clock.ConvertToUserTime(dt).ToString("O");
}
return string.Empty;
@ -76,7 +76,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
{
if(x is DateTime dt && dt != default)
{
return Clock.ConvertTo(dt).ToString("O");
return Clock.ConvertToUserTime(dt).ToString("O");
}
return string.Empty;
}
@ -86,7 +86,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
{
if(x is DateTimeOffset dto && dto != default)
{
return Clock.ConvertTo(dto).DateTime.ToString("O");
return Clock.ConvertToUserTime(dto).DateTime.ToString("O");
}
return string.Empty;
@ -97,7 +97,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
{
if(x is DateTimeOffset dto && dto != default)
{
return Clock.ConvertTo(dto).DateTime.ToString("O");
return Clock.ConvertToUserTime(dto).DateTime.ToString("O");
}
return string.Empty;

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs

@ -60,14 +60,14 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService<A
if (TagHelper.AspFor.Model is DateTime dateTime)
{
DateTagHelper.Format = "{0:O}";
DateTagHelper.Value = Clock.ConvertTo(dateTime).ToString("O");
DateTagHelper.Value = Clock.ConvertToUserTime(dateTime).ToString("O");
attributes.Add("value", DateTagHelper.Value);
}
if (TagHelper.AspFor.Model is DateTimeOffset dateTimeOffset)
{
DateTagHelper.Format = "{0:O}";
DateTagHelper.Value = Clock.ConvertTo(dateTimeOffset).UtcDateTime.ToString("O");
DateTagHelper.Value = Clock.ConvertToUserTime(dateTimeOffset).UtcDateTime.ToString("O");
attributes.Add("value", DateTagHelper.Value);
}
}

8
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs

@ -51,14 +51,14 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ
if (TagHelper.AspForStart.Model is DateTime dateTime)
{
StartDateTagHelper.Format = "{0:O}";
StartDateTagHelper.Value = Clock.ConvertTo(dateTime).ToString("O");
StartDateTagHelper.Value = Clock.ConvertToUserTime(dateTime).ToString("O");
startDateAttributes.Add("value", StartDateTagHelper.Value);
}
if (TagHelper.AspForStart.Model is DateTimeOffset dateTimeOffset)
{
StartDateTagHelper.Format = "{0:O}";
StartDateTagHelper.Value = Clock.ConvertTo(dateTimeOffset).UtcDateTime.ToString("O");
StartDateTagHelper.Value = Clock.ConvertToUserTime(dateTimeOffset).UtcDateTime.ToString("O");
startDateAttributes.Add("value", StartDateTagHelper.Value);
}
}
@ -81,14 +81,14 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ
if (TagHelper.AspForEnd.Model is DateTime dateTime)
{
EndDateTagHelper.Format = "{0:O}";
EndDateTagHelper.Value = Clock.ConvertTo(dateTime).ToString("O");
EndDateTagHelper.Value = Clock.ConvertToUserTime(dateTime).ToString("O");
endDateAttributes.Add("value", EndDateTagHelper.Value);
}
if (TagHelper.AspForEnd.Model is DateTimeOffset dateTimeOffset)
{
EndDateTagHelper.Format = "{0:O}";
EndDateTagHelper.Value = Clock.ConvertTo(dateTimeOffset).UtcDateTime.ToString("O");
EndDateTagHelper.Value = Clock.ConvertToUserTime(dateTimeOffset).UtcDateTime.ToString("O");
endDateAttributes.Add("value", EndDateTagHelper.Value);
}
}

14
framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Clock.cs

@ -54,19 +54,19 @@ public class Clock : IClock, ITransientDependency
/// <summary>
/// Converts given UTC <see cref="DateTime"/> to user's time zone.
/// </summary>
/// <param name="dateTime">DateTime to be normalized.</param>
/// <param name="utcDateTime">DateTime to be normalized.</param>
/// <returns>Converted DateTime</returns>
public virtual DateTime ConvertTo(DateTime dateTime)
public virtual DateTime ConvertToUserTime(DateTime utcDateTime)
{
if (!SupportsMultipleTimezone ||
dateTime.Kind != DateTimeKind.Utc ||
utcDateTime.Kind != DateTimeKind.Utc ||
CurrentTimezoneProvider.TimeZone.IsNullOrWhiteSpace())
{
return dateTime;
return utcDateTime;
}
var timezoneInfo = TimezoneProvider.GetTimeZoneInfo(CurrentTimezoneProvider.TimeZone);
return TimeZoneInfo.ConvertTime(dateTime, timezoneInfo);
return TimeZoneInfo.ConvertTime(utcDateTime, timezoneInfo);
}
/// <summary>
@ -74,7 +74,7 @@ public class Clock : IClock, ITransientDependency
/// </summary>
/// <param name="dateTimeOffset">DateTimeOffset to be normalized.</param>
/// <returns>Converted DateTimeOffset</returns>
public virtual DateTimeOffset ConvertTo(DateTimeOffset dateTimeOffset)
public virtual DateTimeOffset ConvertToUserTime(DateTimeOffset dateTimeOffset)
{
if (!SupportsMultipleTimezone ||
CurrentTimezoneProvider.TimeZone.IsNullOrWhiteSpace())
@ -91,7 +91,7 @@ public class Clock : IClock, ITransientDependency
/// </summary>
/// <param name="dateTime">DateTime to be normalized.</param>
/// <returns>Converted DateTime</returns>
public DateTime ConvertFrom(DateTime dateTime)
public DateTime ConvertToUtc(DateTime dateTime)
{
if (!SupportsMultipleTimezone ||
dateTime.Kind == DateTimeKind.Utc ||

10
framework/src/Volo.Abp.Timing/Volo/Abp/Timing/IClock.cs

@ -29,21 +29,21 @@ public interface IClock
/// <summary>
/// Converts given UTC <see cref="DateTime"/> to user's time zone.
/// </summary>
/// <param name="dateTime">DateTime to be normalized.</param>
/// <param name="utcDateTime">DateTime to be normalized.</param>
/// <returns>Converted DateTime</returns>
DateTime ConvertTo(DateTime dateTime);
DateTime ConvertToUserTime(DateTime utcDateTime);
/// <summary>
/// Converts given <see cref="DateTimeOffset"/> to user's time zone.
/// </summary>
/// <param name="dateTimeOffset">DateTimeOffset to be normalized.</param>
/// <returns>Converted DateTimeOffset</returns>
DateTimeOffset ConvertTo(DateTimeOffset dateTimeOffset);
DateTimeOffset ConvertToUserTime(DateTimeOffset dateTimeOffset);
/// <summary>
/// Converts given user's <see cref="DateTime"/> to UTC or not.
/// Converts given <see cref="DateTime"/> to UTC if the given time is not UTC and the current clock provider supports multiple time zones.
/// </summary>
/// <param name="dateTime">DateTime to be normalized.</param>
/// <returns>Converted DateTime</returns>
DateTime ConvertFrom(DateTime dateTime);
DateTime ConvertToUtc(DateTime dateTime);
}

20
framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Default_Tests.cs

@ -22,7 +22,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc);
var convertedDateTime = _clock.ConvertTo(dateTime);
var convertedDateTime = _clock.ConvertToUserTime(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc);
convertedDateTime.ToString("O").ShouldBe("2025-03-01T05:30:00.0000000Z");
}
@ -30,7 +30,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local);
var convertedDateTime = _clock.ConvertTo(dateTime);
var convertedDateTime = _clock.ConvertToUserTime(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Local);
convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O"));
}
@ -38,7 +38,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change(null))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local);
var convertedDateTime = _clock.ConvertTo(dateTime);
var convertedDateTime = _clock.ConvertToUserTime(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Local);
convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O"));
}
@ -50,7 +50,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc), TimeSpan.Zero);
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.Zero);
convertedDateTimeOffset.ShouldBe(dateTimeOffset);
}
@ -58,7 +58,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.Zero);
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.Zero);
convertedDateTimeOffset.ShouldBe(dateTimeOffset);
}
@ -66,7 +66,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(3));
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3));
convertedDateTimeOffset.ShouldBe(dateTimeOffset);
}
@ -74,7 +74,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(8));
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(8));
convertedDateTimeOffset.ShouldBe(dateTimeOffset);
}
@ -86,7 +86,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified);
var convertedDateTime = _clock.ConvertFrom(dateTime);
var convertedDateTime = _clock.ConvertToUtc(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Unspecified);
convertedDateTime.ShouldBe(dateTime);
}
@ -94,7 +94,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local);
var convertedDateTime = _clock.ConvertFrom(dateTime);
var convertedDateTime = _clock.ConvertToUtc(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Local);
convertedDateTime.ShouldBe(dateTime);
}
@ -102,7 +102,7 @@ public class Clock_Default_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc);
var convertedDateTime = _clock.ConvertFrom(dateTime);
var convertedDateTime = _clock.ConvertToUtc(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc);
convertedDateTime.ShouldBe(dateTime);
}

22
framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Utc_Tests.cs

@ -32,7 +32,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc);
var convertedDateTime = _clock.ConvertTo(dateTime);
var convertedDateTime = _clock.ConvertToUserTime(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Unspecified);
convertedDateTime.ToString("O").ShouldBe("2025-03-01T08:30:00.0000000"); //Without Z
}
@ -41,7 +41,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
{
// ConvertTo will not convert the DateTimeKind.Local
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local);
var convertedDateTime = _clock.ConvertTo(dateTime);
var convertedDateTime = _clock.ConvertToUserTime(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Local);
convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O"));
}
@ -50,7 +50,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
{
// ConvertTo will not convert if the timezone is not set
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local);
var convertedDateTime = _clock.ConvertTo(dateTime);
var convertedDateTime = _clock.ConvertToUserTime(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Local);
convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O"));
}
@ -62,7 +62,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc), TimeSpan.Zero);
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3));
convertedDateTimeOffset.ToString("O").ShouldBe("2025-03-01T08:30:00.0000000+03:00");
}
@ -70,7 +70,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.Zero);
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3));
convertedDateTimeOffset.ToString("O").ShouldBe("2025-03-01T08:30:00.0000000+03:00");
}
@ -78,7 +78,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(3));
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3));
convertedDateTimeOffset.ShouldBe(dateTimeOffset);
}
@ -86,7 +86,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(8));
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3));
convertedDateTimeOffset.DateTime.ShouldBe(new DateTime(2025, 3, 1, 0, 30, 0, DateTimeKind.Unspecified));
}
@ -95,7 +95,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
{
// ConvertTo will not convert if the timezone is not set
var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(8));
var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset);
var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset);
convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(8));
convertedDateTimeOffset.ShouldBe(dateTimeOffset);
}
@ -107,7 +107,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified);
var convertedDateTime = _clock.ConvertFrom(dateTime);
var convertedDateTime = _clock.ConvertToUtc(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc);
convertedDateTime.ToString("O").ShouldBe("2025-03-01T02:30:00.0000000Z");
}
@ -115,7 +115,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local);
var convertedDateTime = _clock.ConvertFrom(dateTime);
var convertedDateTime = _clock.ConvertToUtc(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc);
convertedDateTime.ToString("O").ShouldBe("2025-03-01T02:30:00.0000000Z");
}
@ -123,7 +123,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest<AbpTimingTestModule>
using(_currentTimezoneProvider.Change("Europe/Istanbul"))
{
var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc);
var convertedDateTime = _clock.ConvertFrom(dateTime);
var convertedDateTime = _clock.ConvertToUtc(dateTime);
convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc);
convertedDateTime.ToString("O").ShouldBe("2025-03-01T05:30:00.0000000Z");
}

Loading…
Cancel
Save