public override string GetDoorInfoList(int Limit, [System.Xml.Serialization.XmlIgnoreAttribute()] bool LimitSpecified, string StartReference, [System.Xml.Serialization.XmlElementAttribute("DoorInfo")] out DoorInfo[] DoorInfo) { ServiceCapabilities capabilities = Simulator.SystemCapabilities.Instance.DoorServiceCapabilities; int offset = 0; if (!string.IsNullOrEmpty(StartReference)) { if (!Int32.TryParse(StartReference, out offset)) { FaultLib.ReturnFault("Invalid StartReferense value. ", new[] { "Sender", "InvalidArgVal", "InvalidArgVal" }); } } if (!LimitSpecified) { Limit = capabilities.MaxLimit > int.MaxValue ? int.MaxValue : (int)capabilities.MaxLimit; } DoorInfo = GetList <DoorInfo>(offset, true, Limit, true, C => C.DoorInfoList); string newStartReferense = null; if (offset + DoorInfo.Length < ConfStorage.DoorInfoList.Count) { newStartReferense = Convert.ToString(offset + DoorInfo.Length); } return(newStartReferense); }
public override DoorInfo[] GetDoorInfo([System.Xml.Serialization.XmlElementAttribute("Token")] string[] Token) { ServiceCapabilities capabilities = Simulator.SystemCapabilities.Instance.DoorServiceCapabilities; if (Token != null && Token.Length > capabilities.MaxLimit) { FaultLib.ReturnFault("Too many items was requested. ", new[] { "Sender", "InvalidArgVal", "TooManyItems" }); } return(GetListByTokenList <DoorInfo>(Token, C => C.DoorInfoList)); }
private SystemCapabilities() { // don't change service capabilities in other places to maintain synchronization of // typed properties and XmlElement's //Device Management Service DeviceServiceCapabilities = new DeviceServiceCapabilities(); DeviceServiceCapabilities.Network = new NetworkCapabilities(); DeviceServiceCapabilities.Security = new SecurityCapabilities(); DeviceServiceCapabilities.Security.HttpDigestSpecified = true; DeviceServiceCapabilities.Security.HttpDigest = true; DeviceServiceCapabilities.System = new Device10.SystemCapabilities(); DeviceServiceCapabilities.System.DiscoveryByeSpecified = true; DeviceServiceCapabilities.System.DiscoveryBye = false; //Door Control Service DoorServiceCapabilities = new ServiceDoorControl10.ServiceCapabilities(); DoorServiceCapabilities.MaxLimit = 7; //Access Control Service AccessControlCapabilities = new ServiceAccessControl10.ServiceCapabilities(); //AccessControlCapabilities.DisableAccessPointSpecified = true; //AccessControlCapabilities.DisableAccessPoint = true; AccessControlCapabilities.MaxLimit = 1; //Credential Service CredentialCapabilities = new ServiceCredential10.ServiceCapabilities(); CredentialCapabilities.MaxLimit = 3; CredentialCapabilities.MaxCredentials = 10; CredentialCapabilities.CredentialAccessProfileValiditySupported = true; CredentialCapabilities.CredentialValiditySupported = true; CredentialCapabilities.MaxAccessProfilesPerCredential = 5; CredentialCapabilities.ResetAntipassbackSupported = true; CredentialCapabilities.ValiditySupportsTimeValue = true; CredentialCapabilities.SupportedIdentifierType = new string[] { "pt:Card", "pt:PIN" }; //Supported Format Types (probably refactoring requiered to be flexible) List <ServiceCredential10.CredentialIdentifierFormatTypeInfo> formatTypes; ServiceCredential10.CredentialIdentifierFormatTypeInfo credentialIdentifierFormatTypeInfo; SupportedFormatTypes = new Dictionary <string, List <ServiceCredential10.CredentialIdentifierFormatTypeInfo> >(); formatTypes = new List <ServiceCredential10.CredentialIdentifierFormatTypeInfo>(); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND26"; credentialIdentifierFormatTypeInfo.Description = "Standard 26 bit Wiegand format as defined by SIA standard (SIA AC-01)."; formatTypes.Add(credentialIdentifierFormatTypeInfo); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND37"; credentialIdentifierFormatTypeInfo.Description = "Description"; formatTypes.Add(credentialIdentifierFormatTypeInfo); SupportedFormatTypes.Add("pt:Card", formatTypes); formatTypes = new List <ServiceCredential10.CredentialIdentifierFormatTypeInfo>(); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND37"; credentialIdentifierFormatTypeInfo.Description = "Description"; formatTypes.Add(credentialIdentifierFormatTypeInfo); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND37_FACILITY"; credentialIdentifierFormatTypeInfo.Description = "Description"; formatTypes.Add(credentialIdentifierFormatTypeInfo); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "SIMPLE_NUMBER32"; credentialIdentifierFormatTypeInfo.Description = "Description"; formatTypes.Add(credentialIdentifierFormatTypeInfo); SupportedFormatTypes.Add("pt:PIN", formatTypes); //Access Rules Service AccessRulesCapabilities = new ServiceAccessRules10.ServiceCapabilities(); AccessRulesCapabilities.MaxLimit = 2; AccessRulesCapabilities.MaxAccessPoliciesPerAccessProfile = 2; AccessRulesCapabilities.MaxAccessProfiles = 5; AccessRulesCapabilities.MultipleSchedulesPerAccessPointSupported = true; //Schedule Service ScheduleCapabilities = new ServiceSchedule10.ServiceCapabilities(); ScheduleCapabilities.MaxLimit = 2; ScheduleCapabilities.MaxSchedules = 4; ScheduleCapabilities.MaxSpecialDayGroups = 6; ScheduleCapabilities.MaxDaysInSpecialDayGroup = 2; ScheduleCapabilities.MaxSpecialDaysSchedules = 4; ScheduleCapabilities.MaxTimePeriodsPerDay = 8; ScheduleCapabilities.SpecialDaysSupported = true; ScheduleCapabilities.StateReportingSupported = true; ScheduleCapabilities.ExtendedRecurrenceSupported = true; //Events Service EventsCapabilities = new Events10.Capabilities(); EventsCapabilities.MaxNotificationProducers = 3; EventsCapabilities.MaxPullPoints = 3; EventsCapabilities.PersistentNotificationStorage = false; EventsCapabilities.WSPullPointSupport = true; EventsCapabilities.WSSubscriptionPolicySupport = true; EventsCapabilities.WSPausableSubscriptionManagerInterfaceSupport = false; InitializeXmlElements(); }
public override ServiceCapabilities GetServiceCapabilities() { ServiceCapabilities capabilities = Simulator.SystemCapabilities.Instance.DoorServiceCapabilities; return(capabilities); }
private SystemCapabilities() { // don't change service capabilities in other places to maintain synchronization of // typed properties and XmlElement's //Device Management Service DeviceServiceCapabilities = new DeviceServiceCapabilities(); DeviceServiceCapabilities.Network = new NetworkCapabilities(); DeviceServiceCapabilities.Security = new SecurityCapabilities(); DeviceServiceCapabilities.System = new Device10.SystemCapabilities(); //Door Control Service DoorServiceCapabilities = new ServiceDoorControl10.ServiceCapabilities(); DoorServiceCapabilities.MaxLimit = 7; //Access Control Service AccessControlCapabilities = new ServiceAccessControl10.ServiceCapabilities(); //AccessControlCapabilities.DisableAccessPointSpecified = true; //AccessControlCapabilities.DisableAccessPoint = true; AccessControlCapabilities.MaxLimit = 1; //Credential Service CredentialCapabilities = new ServiceCredential10.ServiceCapabilities(); CredentialCapabilities.MaxLimit = 3; CredentialCapabilities.MaxCredentials = 10; CredentialCapabilities.CredentialAccessProfileValiditySupported = true; CredentialCapabilities.CredentialValiditySupported = true; CredentialCapabilities.MaxAccessProfilesPerCredential = 5; CredentialCapabilities.ResetAntipassbackSupported = true; CredentialCapabilities.SupportedIdentifierType = new string[] { "ONVIFCard", "ONVIFPIN" }; //Supported Format Types (probably refactoring requiered to be flexible) List <ServiceCredential10.CredentialIdentifierFormatTypeInfo> formatTypes; ServiceCredential10.CredentialIdentifierFormatTypeInfo credentialIdentifierFormatTypeInfo; SupportedFormatTypes = new Dictionary <string, List <ServiceCredential10.CredentialIdentifierFormatTypeInfo> >(); formatTypes = new List <ServiceCredential10.CredentialIdentifierFormatTypeInfo>(); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND26"; credentialIdentifierFormatTypeInfo.Description = "Standard 26 bit Wiegand format as defined by SIA standard (SIA AC-01)."; formatTypes.Add(credentialIdentifierFormatTypeInfo); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND37"; credentialIdentifierFormatTypeInfo.Description = "Description"; formatTypes.Add(credentialIdentifierFormatTypeInfo); SupportedFormatTypes.Add("ONVIFCard", formatTypes); formatTypes = new List <ServiceCredential10.CredentialIdentifierFormatTypeInfo>(); credentialIdentifierFormatTypeInfo = new ServiceCredential10.CredentialIdentifierFormatTypeInfo(); credentialIdentifierFormatTypeInfo.FormatType = "WIEGAND37"; credentialIdentifierFormatTypeInfo.Description = "Description"; formatTypes.Add(credentialIdentifierFormatTypeInfo); SupportedFormatTypes.Add("ONVIFPIN", formatTypes); //Access Rules Service AccessRulesCapabilities = new ServiceAccessRules10.ServiceCapabilities(); AccessRulesCapabilities.MaxLimit = 2; AccessRulesCapabilities.MaxAccessPoliciesPerAccessProfile = 2; AccessRulesCapabilities.MaxAccessProfiles = 4; AccessRulesCapabilities.MultipleSchedulesPerAccessPointSupported = true; InitializeXmlElements(); }