public override System.DateTime PullMessages([System.Xml.Serialization.XmlElementAttribute(DataType = "duration")] string Timeout, int MessageLimit, [System.Xml.Serialization.XmlAnyElementAttribute()] System.Xml.XmlElement[] Any, out System.DateTime TerminationTime, [System.Xml.Serialization.XmlElementAttribute("NotificationMessage", Namespace = "http://docs.oasis-open.org/wsn/b-2")] out NotificationMessageHolderType[] NotificationMessage)
        {
            int subscriptionKey = SoapReferanceHeaderProcessing(unknownHeaders);

            ConfStorageLoad();
            EventServerLoad();

            DateTime timeout;

            try
            {
                TimeSpan timeSpan = System.Xml.XmlConvert.ToTimeSpan(Timeout);
                timeout = DateTime.UtcNow.Add(timeSpan.Subtract(new TimeSpan(0, 0, 1)));
            }
            catch (Exception)
            {
                throw FaultLib.GetSoapException(FaultType.General, "Wrong Timeout.");
            }


            NotificationMessage = EventServer.GetPullPointMessages(subscriptionKey, timeout, MessageLimit);

            TerminationTime = EventServer.EventSubsciptionList[subscriptionKey].TerminationTime;

            DateTime res = DateTime.UtcNow;


            EventServerSave();
            ConfStorageSave();

            actionHeader.actionValue = "http://www.onvif.org/ver10/events/wsdl/PullPointSubscription/PullMessagesResponse";

            return(res);
        }