added properties to support dynamic time before meeting start for warnings

This commit is contained in:
Andrew Welker
2020-09-28 19:15:39 -06:00
parent 33c3822b7c
commit c8e3f752db
5 changed files with 42 additions and 7 deletions

View File

@@ -701,6 +701,14 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
JoinType = eJoinType.Analog
});
[JoinName("MinutesBeforeMeetingStart")] public JoinDataComplete MinutesBeforeMeetingStart =
new JoinDataComplete(new JoinData {JoinNumber = 41, JoinSpan = 1},
new JoinMetadata
{
Description = "Minutes before meeting start that a meeting is joinable",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Analog
});
public VideoCodecControllerJoinMap(uint joinStart) : base(joinStart, typeof (VideoCodecControllerJoinMap))
{

View File

@@ -30,7 +30,15 @@ namespace PepperDash.Essentials.Devices.Common.Codec
public event EventHandler<EventArgs> MeetingsListHasChanged;
/// <summary>
private int _meetingWarningMinutes = 5;
public int MeetingWarningMinutes
{
get { return _meetingWarningMinutes; }
set { _meetingWarningMinutes = value; }
}
/// <summary>
/// Setter triggers MeetingsListHasChanged event
/// </summary>
public List<Meeting> Meetings
@@ -102,6 +110,8 @@ namespace PepperDash.Essentials.Devices.Common.Codec
{
public TimeSpan MeetingWarningMinutes = TimeSpan.FromMinutes(5);
public int MinutesBeforeMeeting;
public string Id { get; set; }
public string Organizer { get; set; }
public string Title { get; set; }
@@ -134,7 +144,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
{
get
{
return StartTime.AddMinutes(-5) <= DateTime.Now
return StartTime.AddMinutes(-MinutesBeforeMeeting) <= DateTime.Now
&& DateTime.Now <= EndTime; //.AddMinutes(-5);
}
}

View File

@@ -484,6 +484,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
{
trilist.SetSigFalseAction(joinMap.UpdateMeetings.JoinNumber, codec.GetSchedule);
trilist.SetUShortSigAction(joinMap.MinutesBeforeMeetingStart.JoinNumber, (i) =>
{
codec.CodecSchedule.MeetingWarningMinutes = i;
});
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) =>
{
var clearBytes = XSigHelpers.ClearOutputs();
@@ -532,9 +537,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
* Serials
* Organizer - 1
* Title - 2
* Agenda - 3
* Start Time - 4
* End Time - 5
* Start Time - 3
* End Time - 4
*/
foreach(var meeting in meetings)

View File

@@ -946,8 +946,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
public ThirdParty ThirdParty { get; set; }
}
public static List<Meeting> GetGenericMeetingsFromBookingResult(List<BookingsListResult> bookings,
int minutesBeforeMeetingStart)
{
var rv = GetGenericMeetingsFromBookingResult(bookings);
foreach (var meeting in rv)
{
meeting.MinutesBeforeMeeting = minutesBeforeMeetingStart;
}
return rv;
}
/// <summary>
/// Extracts the necessary meeting values from the Cisco bookings response ans converts them to the generic class
/// Extracts the necessary meeting values from the Zoom bookings response and converts them to the generic class
/// </summary>
/// <param name="bookings"></param>
/// <returns></returns>

View File

@@ -947,7 +947,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
if (codecBookings != null && codecBookings.Count > 0)
{
CodecSchedule.Meetings = zCommand.GetGenericMeetingsFromBookingResult(codecBookings);
CodecSchedule.Meetings = zCommand.GetGenericMeetingsFromBookingResult(
codecBookings, CodecSchedule.MeetingWarningMinutes);
}
break;