Can you show me how you attach the properties to the event?
I tried using the code you provided above (pasted here), but the IEnumerable class doesn’t have an append function. Do you have an extension method defined for that class?
public void SendEvent(string alarmID , string id, string source, string message, string reason, IEnumerable<string> relatedCredentialHolderIds)
{
ACUtil.Log(false, "sendevent", id.ToString() + source + message + reason);
IEnumerable<ACProperty> props = new List<ACProperty>();
ACUtil.Log(false, "Send Event", "**********************Here Sending AcProperty");
ACProperty alarmIDDetails = new ACProperty("AlarmNotes", "This is a sample alarm note");
props.Append(alarmIDDetails);
FireEventsOccurred(new[] { new ACEvent(alarmID, id, source, DateTime.Now, message, reason, relatedCredentialHolderIds, null, props) });
}
In my tests I’ve been using just simple lists and adding properties with “Add”, like so
public static ACEvent ToACEvent(DoorControllerEvent dce)
{
var eventId = Guid.NewGuid().ToString();
var eventTypeId = dce.EventId.ToString();
var properties = new List<ACProperty>();
var relatedCredentialHolderIds = new List<string>();
if (dce.CredentialHolderId != Guid.Empty)
{
relatedCredentialHolderIds.Add(dce.CredentialHolderId.ToString());
}
// Check if the event is from the door or the access point
string sourceId;
if (dce.AccessPoint != 0)
{
sourceId = CreateAccessPointId(dce.DoorId, dce.AccessPoint);
properties.Add(new ACProperty("AccessPoint", sourceId));
}
else
{
sourceId = dce.DoorId.ToString();
properties.Add(new ACProperty("door", sourceId));
}
ACUtil.Log(false, "Send Event", "**********************Here Sending AcProperty");
ACProperty alarmIDDetails = new ACProperty("AlarmNotes", "This is a sample alarm note");
properties.Add(alarmIDDetails);
return new ACEvent(eventId, eventTypeId, sourceId, dce.Timestamp, string.Empty, dce.Reason, relatedCredentialHolderIds, null, properties);
}