Exemple #1
0
        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);
        }
Exemple #2
0
        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");
            }
        }
Exemple #3
0
        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);
            }
        }