public static SubCalEvent ToSubCal(this Event googleEvent, EventID AuthenticationID, uint CurrentCount) { SubCalEvent retValue = new SubCalEvent(); retValue.ThirdPartyEventID = googleEvent.Id; retValue.ThirdPartyType = ThirdPartyControl.CalendarTool.google.ToString(); retValue.ThirdPartyUserID = googleEvent.Organizer?.Email; retValue.ID = AuthenticationID.getIDUpToRepeatDayCalendarEvent() + "_" + CurrentCount + "_1"; retValue.CalendarID = AuthenticationID.getIDUpToRepeatDayCalendarEvent() + "_" + CurrentCount + "_0"; retValue.isThirdParty = true; retValue.SubCalAddressDescription = googleEvent.Location; retValue.SubCalStartDate = (long)(new DateTimeOffset(googleEvent.Start.DateTime.Value) - TilerElementExtension.JSStartTime).TotalMilliseconds; retValue.SubCalEndDate = (long)(new DateTimeOffset(googleEvent.End.DateTime.Value) - TilerElementExtension.JSStartTime).TotalMilliseconds; retValue.SubCalTotalDuration = (googleEvent.End.DateTime.Value - googleEvent.Start.DateTime.Value); retValue.SubCalRigid = true; retValue.SubCalAddressDescription = googleEvent.Location;// SubCalendarEventEntry.Location.Description; retValue.SubCalAddress = googleEvent.Location; retValue.SubCalCalendarName = googleEvent.Summary; retValue.isReadOnly = false; if (googleEvent.ExtendedProperties != null && googleEvent.ExtendedProperties.Private__ != null && googleEvent.ExtendedProperties.Private__.ContainsKey(GoogleTilerEventControl.tilerReadonlyKey)) { retValue.isReadOnly = Convert.ToBoolean(googleEvent.ExtendedProperties.Private__[GoogleTilerEventControl.tilerReadonlyKey]); } if (retValue.ThirdPartyUserID == null || retValue.SubCalCalendarName == null) { retValue.SubCalCalendarName = "busy"; } retValue.SubCalCalEventStart = retValue.SubCalStartDate; retValue.SubCalCalEventEnd = retValue.SubCalEndDate; retValue.isComplete = false; retValue.isEnabled = true; retValue.Duration = (long)retValue.SubCalTotalDuration.TotalMilliseconds; retValue.Priority = 0; retValue.ColorSelection = 0; return(retValue); }