Continuted work on Fusion XML API. Running into issues with deserialization into Event objects.

This commit is contained in:
Neil Dorin
2017-05-03 00:04:24 -06:00
parent 850f16b494
commit 8a5e38402a
5 changed files with 73 additions and 25 deletions

View File

@@ -34,6 +34,8 @@ namespace PepperDash.Essentials.Fusion
string GUID; string GUID;
Event NextMeeting;
public EssentialsHuddleSpaceFusionSystemController(EssentialsHuddleSpaceRoom room, uint ipId) public EssentialsHuddleSpaceFusionSystemController(EssentialsHuddleSpaceRoom room, uint ipId)
: base(room.Key + "-fusion") : base(room.Key + "-fusion")
{ {
@@ -106,8 +108,12 @@ namespace PepperDash.Essentials.Fusion
//CrestronXMLSerialization.SerializeObject(xmlWriter, request); //CrestronXMLSerialization.SerializeObject(xmlWriter, request);
DateTime now = DateTime.UtcNow;
Debug.Console(1, this, "Current time: {0}", now.ToString());
string requestTest = string requestTest =
string.Format("<RequestSchedule><RequestID>{0}</RequestID><RoomID>{1}</RoomID><Start>2017-05-01T12:45:39</Start><HourSpan>24</HourSpan></RequestSchedule>", requestID, GUID); string.Format("<RequestSchedule><RequestID>{0}</RequestID><RoomID>{1}</RoomID><Start>2017-05-02T00:00:00</Start><HourSpan>24</HourSpan></RequestSchedule>", requestID, GUID);
Debug.Console(1, this, "Sending Fusion ScheduleQuery: \n{0}", requestTest); Debug.Console(1, this, "Sending Fusion ScheduleQuery: \n{0}", requestTest);
@@ -143,7 +149,7 @@ namespace PepperDash.Essentials.Fusion
void FusionRoomSchedule_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args) void FusionRoomSchedule_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args)
{ {
Debug.Console(1, this, "Sig: {0} FusionResponse: {1}", args.Sig, args.Sig.StringValue); Debug.Console(1, this, "Event: {0}\n Sig: {1}\nFusionResponse:\n{2}", args.Event, args.Sig.Name, args.Sig.StringValue);
try try
{ {
@@ -155,11 +161,11 @@ namespace PepperDash.Essentials.Fusion
Debug.Console(1, this, "ScheduleResponse DeSerialization Successfull for Room: '{0}'", scheduleResponse.RoomName); Debug.Console(1, this, "ScheduleResponse DeSerialization Successfull for Room: '{0}'", scheduleResponse.RoomName);
if (scheduleResponse.Events.Count > 0) if (scheduleResponse.Event.Count > 0)
{ {
Debug.Console(1, this, "Meetings Count: {0}\n", scheduleResponse.Events.Count); Debug.Console(1, this, "Meetings Count: {0}\n", scheduleResponse.Event.Count);
foreach (Event e in scheduleResponse.Events) foreach (Event e in scheduleResponse.Event)
{ {
Debug.Console(1, this, "Subject: {0}", e.Subject); Debug.Console(1, this, "Subject: {0}", e.Subject);
Debug.Console(1, this, "MeetingID: {0}", e.MeetingID); Debug.Console(1, this, "MeetingID: {0}", e.MeetingID);
@@ -616,13 +622,10 @@ namespace PepperDash.Essentials.Fusion
//[XmlElement(ElementName = "RoomName")] //[XmlElement(ElementName = "RoomName")]
public string RoomName { get; set; } public string RoomName { get; set; }
//[XmlElement(ElementName = "Event")] //[XmlElement(ElementName = "Event")]
public List<Event> Events { get; set; } public List<Event> Event { get; set; }
} }
//[XmlRoot(ElementName = "Event")] //[XmlRoot(ElementName = "Event")]
/// <summary>
/// Data structure for a Fusion Event
/// </summary>
public class Event public class Event
{ {
//[XmlElement(ElementName = "MeetingID")] //[XmlElement(ElementName = "MeetingID")]
@@ -641,6 +644,8 @@ namespace PepperDash.Essentials.Fusion
public string Organizer { get; set; } public string Organizer { get; set; }
//[XmlElement(ElementName = "Attendees")] //[XmlElement(ElementName = "Attendees")]
public Attendees Attendees { get; set; } public Attendees Attendees { get; set; }
//[XmlElement(ElementName = "Resources")]
public Resources Resources { get; set; }
//[XmlElement(ElementName = "IsEvent")] //[XmlElement(ElementName = "IsEvent")]
public string IsEvent { get; set; } public string IsEvent { get; set; }
//[XmlElement(ElementName = "IsRoomViewMeeting")] //[XmlElement(ElementName = "IsRoomViewMeeting")]
@@ -650,7 +655,7 @@ namespace PepperDash.Essentials.Fusion
//[XmlElement(ElementName = "IsExchangePrivate")] //[XmlElement(ElementName = "IsExchangePrivate")]
public string IsExchangePrivate { get; set; } public string IsExchangePrivate { get; set; }
//[XmlElement(ElementName = "MeetingTypes")] //[XmlElement(ElementName = "MeetingTypes")]
public string MeetingTypes { get; set; } public MeetingTypes MeetingTypes { get; set; }
//[XmlElement(ElementName = "ParticipantCode")] //[XmlElement(ElementName = "ParticipantCode")]
public string ParticipantCode { get; set; } public string ParticipantCode { get; set; }
//[XmlElement(ElementName = "PhoneNo")] //[XmlElement(ElementName = "PhoneNo")]
@@ -659,37 +664,78 @@ namespace PepperDash.Essentials.Fusion
public string WelcomeMsg { get; set; } public string WelcomeMsg { get; set; }
//[XmlElement(ElementName = "Subject")] //[XmlElement(ElementName = "Subject")]
public string Subject { get; set; } public string Subject { get; set; }
//[XmlElement(ElementName = "LiveMeetingURL")] //[XmlElement(ElementName = "LiveMeeting")]
public LiveMeetingURL LiveMeetingURL { get; set; } public LiveMeeting LiveMeeting { get; set; }
//[XmlElement(ElementName = "ShareDocPath")] //[XmlElement(ElementName = "ShareDocPath")]
public string ShareDocPath { get; set; } public string ShareDocPath { get; set; }
//[XmlElement(ElementName = "Location")] //[XmlElement(ElementName = "HaveAttendees")]
public string Location { get; set; } public string HaveAttendees { get; set; }
//[XmlElement(ElementName = "OrganizerSMTP")] //[XmlElement(ElementName = "HaveResources")]
public string OrganizerSMTP { get; set; } public string HaveResources { get; set; }
public List<Room> Resources { get; set; }
} }
//[XmlRoot(ElementName = "Resources")]
public class Resources
{
//[XmlElement(ElementName = "Rooms")]
public Rooms Rooms { get; set; }
}
//[XmlRoot(ElementName = "Rooms")]
public class Rooms
{
//[XmlElement(ElementName = "Room")]
public List<Room> Room { get; set; }
}
//[XmlRoot(ElementName = "Room")]
public class Room public class Room
{ {
//[XmlElement(ElementName = "Name")]
public string Name { get; set; } public string Name { get; set; }
//[XmlElement(ElementName = "ID")]
public string ID { get; set; } public string ID { get; set; }
//[XmlElement(ElementName = "MPType")]
public string MPType { get; set; } public string MPType { get; set; }
} }
//[XmlRoot(ElementName="Attendees")] //[XmlRoot(ElementName = "Attendees")]
public class Attendees public class Attendees
{ {
//[XmlElement(ElementName="Required")] //[XmlElement(ElementName = "Required")]
public List<Attendee> Required { get; set; } public Required Required { get; set; }
//[XmlElement(ElementName="Optional")] //[XmlElement(ElementName = "Optional")]
public List<Attendee> Optional { get; set; } public Optional Optional { get; set; }
} }
public class Attendee //[XmlRoot(ElementName = "Required")]
public class Required
{ {
public string Attendee { get; set; } //[XmlElement(ElementName = "Attendee")]
public List<string> Attendee { get; set; }
}
//[XmlRoot(ElementName = "Optional")]
public class Optional
{
//[XmlElement(ElementName = "Attendee")]
public List<string> Attendee { get; set; }
}
//[XmlRoot(ElementName = "MeetingType")]
public class MeetingType
{
//[XmlAttribute(AttributeName = "ID")]
public string ID { get; set; }
//[XmlAttribute(AttributeName = "Value")]
public string Value { get; set; }
}
//[XmlRoot(ElementName = "MeetingTypes")]
public class MeetingTypes
{
//[XmlElement(ElementName = "MeetingType")]
public List<MeetingType> MeetingType { get; set; }
} }
//[XmlRoot(ElementName = "LiveMeeting")] //[XmlRoot(ElementName = "LiveMeeting")]
@@ -701,6 +747,8 @@ namespace PepperDash.Essentials.Fusion
public string ID { get; set; } public string ID { get; set; }
//[XmlElement(ElementName = "Key")] //[XmlElement(ElementName = "Key")]
public string Key { get; set; } public string Key { get; set; }
//[XmlElement(ElementName = "Subject")]
public string Subject { get; set; }
} }
//[XmlRoot(ElementName = "LiveMeetingURL")] //[XmlRoot(ElementName = "LiveMeetingURL")]