private void UpdateZoomMeeting(Entity activity) { ZoomMeetingApi zm = new ZoomMeetingApi(UserConnection); string MeetingId = activity.GetTypedColumnValue <string>("MeetingId"); zm.RetrieveMeeting(MeetingId); MeetingResponse Original = zm.retrieveMeetingResponse; Original.Topic = (activity.GetTypedColumnValue <String>("Title") == Original.Topic) ? Original.Topic : activity.GetTypedColumnValue <String>("Title"); Original.Agenda = (activity.GetTypedColumnValue <String>("Notes") == Original.Topic) ? Original.Agenda : activity.GetTypedColumnValue <String>("Notes"); Original.Settings.AlternativeHosts = activity.GetTypedColumnValue <String>("AlternativeHosts"); DateTime startDate = activity.GetTypedColumnValue <DateTime>("StartDate"); TimeSpan offset = UserConnection.CurrentUser.TimeZone.GetUtcOffset(startDate); //DateTime Return in Users LocalTime this need to convert to UTC string zoomStart = startDate.Add(-offset).ToString("yyyy-MM-ddTHH:mm:ssZ"); DateTime Due = activity.GetTypedColumnValue <DateTime>("DueDate"); Guid TimeZoneId = activity.GetTypedColumnValue <Guid>("TimeZoneId"); string ZoomTimeZone = FindZoomTimeZone(TimeZoneId); Original.TimeZone = ZoomTimeZone; Original.StartTime = zoomStart; Int32 Duration = (Int32)Due.Subtract(startDate).TotalMinutes; Original.Duration = Duration; zm.UpdateZoomMeeting(Original, MeetingId); }
public override void OnSaving(object sender, EntityBeforeEventArgs e) { base.OnSaving(sender, e); Entity activity = (Entity)sender; UserConnection = activity.UserConnection; bool IsZoom = activity.GetTypedColumnValue <bool>("CreateZoomMeeting"); string M = activity.GetTypedColumnValue <String>("MeetingId"); if (IsZoom && String.IsNullOrEmpty(M)) { ZoomMeetingApi zm = new ZoomMeetingApi(UserConnection); DateTime startDate = activity.GetTypedColumnValue <DateTime>("StartDate"); TimeSpan offset = UserConnection.CurrentUser.TimeZone.GetUtcOffset(startDate); /* * DateTime Return in Users LocalTime this need to convert to UTC */ string zoomStart = startDate.Add(-offset).ToString("yyyy-MM-ddTHH:mm:ssZ"); DateTime Due = activity.GetTypedColumnValue <DateTime>("DueDate"); int Duration = (int)Due.Subtract(startDate).TotalMinutes; Guid TimeZoneId = activity.GetTypedColumnValue <Guid>("TimeZoneId"); if (TimeZoneId == Guid.Empty) { // _userConnection.CurrentUser.TimeZoneId = "Eastern" Guid g = IdValue("TimeZone", "Code", UserConnection.CurrentUser.TimeZoneId); TimeZoneId = g; } string ZoomTimeZone = FindZoomTimeZone(TimeZoneId); string topic = activity.GetTypedColumnValue <String>("Title"); string agenda = activity.GetTypedColumnValue <String>("Notes"); MeetingRequest mr = new MeetingRequest(PredifinedMeetings.Certification, topic, agenda, zoomStart, Duration, ZoomTimeZone); zm.CreateZoomMeeting(mr); /* * Update activity after creating a meeting */ activity.SetColumnValue("MeetingId", zm.mResponse.Id); activity.SetColumnValue("MeetingUUID", zm.mResponse.Uuid); activity.SetColumnValue("StartUrl", zm.mResponse.StartUrl); activity.SetColumnValue("JoinUrl", zm.mResponse.JoinUrl); activity.SetColumnValue("RegistrationUrl", zm.mResponse.RegistrationUrl); activity.SetColumnValue("HostId", zm.mResponse.HostId); activity.SetColumnValue("AlternativeHosts", zm.mResponse.Settings.AlternativeHosts); SendMessageToUi(activity.GetTypedColumnValue <Guid>("Id"), "Meeting Created"); } }
public override void OnDeleting(object sender, EntityBeforeEventArgs e) { base.OnDeleting(sender, e); Entity activity = (Entity)sender; UserConnection = activity.UserConnection; bool IsZoom = activity.GetTypedColumnValue <bool>("CreateZoomMeeting"); if (IsZoom) { ZoomMeetingApi zm = new ZoomMeetingApi(UserConnection); string MeetingId = activity.GetTypedColumnValue <String>("MeetingId"); zm.DeleteZoomMeeting(MeetingId); } }