Replaced DateTimeOffset usage in the calendar.

This commit is contained in:
Burak Kaan Köse
2025-05-20 21:08:19 +02:00
parent c4e561dee6
commit aba7539e7d
9 changed files with 47 additions and 67 deletions

View File

@@ -17,24 +17,23 @@ public class CalendarItem : ICalendarItem
public string Description { get; set; }
public string Location { get; set; }
public DateTime StartDate { get; set; }
public string StartTimeOffset { get; set; }
public string EndTimeOffset { get; set; }
public DateTime EndDate
{
get
{
return StartDate.AddSeconds(DurationInSeconds);
}
}
public DateTimeOffset StartDateTimeOffset => DateTimeOffset.Parse(StartTimeOffset);
public DateTimeOffset EndDateTimeOffsete => DateTimeOffset.Parse(EndTimeOffset);
public TimeSpan StartDateOffset { get; set; }
public TimeSpan EndDateOffset { get; set; }
public DateTime StartDate => StartDateTimeOffset.DateTime;//TimeZoneInfo.ConvertTime(StartDateTimeOffset, TimeZoneInfo.Local).DateTime;
public DateTime EndDate => EndDateTimeOffsete.DateTime;// TimeZoneInfo.ConvertTime(, TimeZoneInfo.Local).DateTime;
private ITimePeriod _period;
public ITimePeriod Period
{
get
{
// Period must be loaded by user's current UI culture based on StartDateTimeOffset and EndDateTimeOffset
// Get the time zone corresponding to the current culture
_period ??= new TimeRange(StartDate, EndDate);
return _period;
@@ -94,7 +93,7 @@ public class CalendarItem : ICalendarItem
}
}
public double DurationInSeconds { get; set; }
public double DurationInSeconds => Period.Duration.TotalSeconds;
public string Recurrence { get; set; }
public string OrganizerDisplayName { get; set; }
@@ -144,7 +143,7 @@ public class CalendarItem : ICalendarItem
/// </summary>
public Guid EventTrackingId => IsOccurrence ? RecurringCalendarItemId.Value : Id;
public CalendarItem CreateRecurrence(DateTime startDate, double durationInSeconds)
public CalendarItem CreateRecurrence(DateTimeOffset startDateOffset, DateTimeOffset endDateOffset)
{
// Create a copy with the new start date and duration
@@ -154,8 +153,8 @@ public class CalendarItem : ICalendarItem
Title = Title,
Description = Description,
Location = Location,
StartDate = startDate,
DurationInSeconds = durationInSeconds,
StartTimeOffset = startDateOffset.ToString("o"),
EndTimeOffset = endDateOffset.ToString("o"),
Recurrence = Recurrence,
OrganizerDisplayName = OrganizerDisplayName,
OrganizerEmail = OrganizerEmail,
@@ -168,8 +167,6 @@ public class CalendarItem : ICalendarItem
Status = Status,
CustomEventColorHex = CustomEventColorHex,
HtmlLink = HtmlLink,
StartDateOffset = StartDateOffset,
EndDateOffset = EndDateOffset,
RemoteEventId = RemoteEventId,
IsHidden = IsHidden,
IsLocked = IsLocked,

View File

@@ -8,9 +8,9 @@ public interface ICalendarItem
string Title { get; }
Guid Id { get; }
IAccountCalendar AssignedCalendar { get; }
DateTime StartDate { get; set; }
DateTime StartDate { get; }
DateTime EndDate { get; }
double DurationInSeconds { get; set; }
double DurationInSeconds { get; }
ITimePeriod Period { get; }
bool IsAllDayEvent { get; }