Changes to keep from clearing meeting list

This commit is contained in:
Andrew Welker
2020-09-29 14:41:55 -06:00
parent 1e6d65fe53
commit b502007fff

View File

@@ -133,16 +133,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
{ {
get get
{ {
bool value; var value = ActiveCalls != null && ActiveCalls.Any(c => c.IsActiveCall);
if (ActiveCalls != null)
{
value = ActiveCalls.Any(c => c.IsActiveCall);
}
else
{
value = false;
}
return value; return value;
} }
} }
@@ -503,12 +494,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
private void UpdateMeetingsList(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap) private void UpdateMeetingsList(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
{ {
var clearBytes = XSigHelpers.ClearOutputs(); var currentTime = DateTime.Now;
var currentMeetings =
codec.CodecSchedule.Meetings.Where(m => m.StartTime >= currentTime || m.EndTime >= currentTime).ToList();
trilist.SetString(joinMap.Schedule.JoinNumber, var meetingsData = UpdateMeetingsListXSig(currentMeetings);
Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length));
var meetingsData = UpdateMeetingsListXSig(codec.CodecSchedule.Meetings);
trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData); trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData);
@@ -520,21 +510,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
} }
}); });
trilist.SetUshort(joinMap.MeetingCount.JoinNumber, (ushort)codec.CodecSchedule.Meetings.Count); trilist.SetUshort(joinMap.MeetingCount.JoinNumber, (ushort)currentMeetings.Count);
} }
private string UpdateMeetingsListXSig(List<Meeting> meetings) private string UpdateMeetingsListXSig(List<Meeting> meetings)
{ {
/*const int maxCalls = 8;
const int maxStrings = 5;
const int offset = 6;
var callIndex = 0;
var digitalIndex = maxStrings*maxCalls;
*/
const int maxMeetings = 3; const int maxMeetings = 3;
const int maxDigitals = 1; const int maxDigitals = 2;
const int maxStrings = 6; const int maxStrings = 7;
const int offset = maxDigitals + maxStrings; const int offset = maxDigitals + maxStrings;
var digitalIndex = maxStrings*maxMeetings; //15 var digitalIndex = maxStrings*maxMeetings; //15
var stringIndex = 0; var stringIndex = 0;
@@ -544,16 +527,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
/* /*
* Digitals * Digitals
* IsJoinable - 1 * IsJoinable - 1
* IsDialable - 2
* *
* Serials * Serials
* Organizer - 1 * Organizer - 1
* Title - 2 * Title - 2
* Start Date - 3 * Start Date - 3
* Start Time - 3 * Start Time - 4
* End Date - 4 * End Date - 5
* End Time - 4 * End Time - 6
*/ */
foreach(var meeting in meetings) foreach(var meeting in meetings)
{ {
var currentTime = DateTime.Now; var currentTime = DateTime.Now;
@@ -564,20 +549,43 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
//digitals //digitals
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, meeting.Joinable); tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, meeting.Joinable);
tokenArray[digitalIndex + 1] = new XSigDigitalToken(digitalIndex + 2, meeting.Id != "0");
//serials //serials
tokenArray[stringIndex] = new XSigSerialToken(stringIndex + 1, meeting.Organizer); tokenArray[stringIndex] = new XSigSerialToken(stringIndex + 1, meeting.Organizer);
tokenArray[stringIndex + 1] = new XSigSerialToken(stringIndex + 2, meeting.Title); tokenArray[stringIndex + 1] = new XSigSerialToken(stringIndex + 2, meeting.Title);
tokenArray[stringIndex + 2] = new XSigSerialToken(stringIndex + 3, meeting.StartTime.ToShortDateString()); tokenArray[stringIndex + 2] = new XSigSerialToken(stringIndex + 3, meeting.StartTime.ToShortDateString());
tokenArray[stringIndex + 3] = new XSigSerialToken(stringIndex + 3, meeting.StartTime.ToShortTimeString()); tokenArray[stringIndex + 3] = new XSigSerialToken(stringIndex + 4, meeting.StartTime.ToShortTimeString());
tokenArray[stringIndex + 4] = new XSigSerialToken(stringIndex + 4, meeting.EndTime.ToShortDateString()); tokenArray[stringIndex + 4] = new XSigSerialToken(stringIndex + 5, meeting.EndTime.ToShortDateString());
tokenArray[stringIndex + 5] = new XSigSerialToken(stringIndex + 5, meeting.EndTime.ToShortTimeString()); tokenArray[stringIndex + 5] = new XSigSerialToken(stringIndex + 6, meeting.EndTime.ToShortTimeString());
tokenArray[stringIndex + 6] = new XSigSerialToken(stringIndex + 7, meeting.Id);
digitalIndex += maxDigitals; digitalIndex += maxDigitals;
meetingIndex += offset; meetingIndex += offset;
stringIndex += maxStrings; stringIndex += maxStrings;
} }
while (meetingIndex < maxMeetings*offset)
{
digitalIndex += maxDigitals;
meetingIndex += offset;
stringIndex += maxStrings;
//digitals
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, false);
tokenArray[digitalIndex + 1] = new XSigDigitalToken(digitalIndex + 2, false);
//serials
tokenArray[stringIndex] = new XSigSerialToken(stringIndex + 1, String.Empty);
tokenArray[stringIndex + 1] = new XSigSerialToken(stringIndex + 2, String.Empty);
tokenArray[stringIndex + 2] = new XSigSerialToken(stringIndex + 3, String.Empty);
tokenArray[stringIndex + 3] = new XSigSerialToken(stringIndex + 4, String.Empty);
tokenArray[stringIndex + 4] = new XSigSerialToken(stringIndex + 5, String.Empty);
tokenArray[stringIndex + 5] = new XSigSerialToken(stringIndex + 6, String.Empty);
tokenArray[stringIndex + 6] = new XSigSerialToken(stringIndex + 7, String.Empty);
}
return GetXSigString(tokenArray); return GetXSigString(tokenArray);
} }