Merge pull request #3185 from leigh-pointer/SchedularTimeControls
Fix for Schedular Allows incorrect Time format #3184
This commit is contained in:
@ -490,17 +490,21 @@ namespace Oqtane.Shared
|
||||
return $"[{@class.GetType()}] {message}";
|
||||
}
|
||||
|
||||
public static DateTime? LocalDateAndTimeAsUtc(DateTime? date, string time, TimeZoneInfo localTimeZone = null)
|
||||
public static DateTime? LocalDateAndTimeAsUtc(DateTime? date, DateTime? time, TimeZoneInfo localTimeZone = null)
|
||||
{
|
||||
localTimeZone ??= TimeZoneInfo.Local;
|
||||
|
||||
if (date != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(time))
|
||||
if (time != null)
|
||||
{
|
||||
return TimeZoneInfo.ConvertTime(DateTime.Parse(date.Value.Date.ToShortDateString() + " " + time), localTimeZone, TimeZoneInfo.Utc);
|
||||
DateTime localDateTime = date.Value.Date.Add(time.Value.TimeOfDay);
|
||||
return TimeZoneInfo.ConvertTimeToUtc(localDateTime, localTimeZone);
|
||||
}
|
||||
return TimeZoneInfo.ConvertTime(date.Value.Date, localTimeZone, TimeZoneInfo.Utc);
|
||||
|
||||
return TimeZoneInfo.ConvertTimeToUtc(date.Value.Date, localTimeZone);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -534,6 +538,49 @@ namespace Oqtane.Shared
|
||||
return (localDateTime?.Date, localTime);
|
||||
}
|
||||
|
||||
public static DateTime? LocalDateAndTimeAsUtc(DateTime? date, string time, TimeZoneInfo localTimeZone = null)
|
||||
{
|
||||
localTimeZone ??= TimeZoneInfo.Local;
|
||||
if (date != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(time))
|
||||
{
|
||||
return TimeZoneInfo.ConvertTime(DateTime.Parse(date.Value.Date.ToShortDateString() + " " + time), localTimeZone, TimeZoneInfo.Utc);
|
||||
}
|
||||
return TimeZoneInfo.ConvertTime(date.Value.Date, localTimeZone, TimeZoneInfo.Utc);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public static DateTime? UtcAsLocalDateAndTimeToDate(DateTime? dateTime, TimeZoneInfo timeZone = null)
|
||||
{
|
||||
var result = UtcAsLocalDateAndTime(dateTime, timeZone);
|
||||
return result.date;
|
||||
}
|
||||
|
||||
public static DateTime? UtcAsLocalDateAndTimeToTime(DateTime? dateTime, TimeZoneInfo timeZone = null)
|
||||
{
|
||||
var result = UtcAsLocalDateAndTime(dateTime, timeZone);
|
||||
|
||||
if (string.IsNullOrEmpty(result.time))
|
||||
{
|
||||
return result.date;
|
||||
}
|
||||
else
|
||||
{
|
||||
var timeParts = result.time.Split(':');
|
||||
if (timeParts.Length == 2 && int.TryParse(timeParts[0], out int hours) && int.TryParse(timeParts[1], out int minutes))
|
||||
{
|
||||
TimeSpan timeOfDay = new TimeSpan(hours, minutes, 0);
|
||||
return result.date?.Date + timeOfDay;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Handle parsing error
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Obsolete("ContentUrl(Alias alias, int fileId) is deprecated. Use FileUrl(Alias alias, int fileId) instead.", false)]
|
||||
public static string ContentUrl(Alias alias, int fileId)
|
||||
{
|
||||
|
Reference in New Issue
Block a user