private bool processItem(XmlNode node)
        {
            int?guid = null;

            foreach (XmlNode attributeNode in node.ChildNodes)
            {
                if (attributeNode.Name == "guid")
                {
                    if (int.TryParse(attributeNode.InnerText, out int nodeValue))
                    {
                        guid = nodeValue;
                    }
                }
            }
            if (guid == null)
            {
                return(false);
            }

            Incident incidentWithId = IncidentDatabase.Instance.Context.Incidents.FirstOrDefault(i => (i.ID == (int)guid));

            if (incidentWithId != null)
            {
                return(false);
            }

            SingleIncidentProcessor sproc = new SingleIncidentProcessor((int)guid);

            return(sproc.Do());
        }
        public int Do()
        {
            int             updated              = 0;
            DateTime        todayStart           = DateTime.Now - DateTime.Now.TimeOfDay;
            TimeSpan        maximalDifference    = new TimeSpan(maximalAge, 0, 0, 0);
            DateTime        lookupStart          = todayStart - maximalDifference;
            int             lookupStartTimestamp = lookupStart.UnixTimestamp();
            List <Incident> incidentsToUpdate    = new List <Incident>();

            incidentsToUpdate.AddRange(IncidentDatabase.Instance.Context.Incidents.Where(i => (i.UpdateTimestamp >= lookupStartTimestamp)));
            foreach (Incident incident in incidentsToUpdate)
            {
                SingleIncidentProcessor sproc = new SingleIncidentProcessor(incident.ID);
                sproc.Do(force);
            }
            return(updated);
        }