Example #1
0
        static void Main(string[] args)
        {
            try
            {
                Random random = new Random();

                // if (random.Next(2) != 0) Logger += new LogMessageDelegate(LogToConsole); // Ver A
                if (random.Next(2) != 0)
                {
                    Logger += LogToConsole;                      // Ver B
                }
                if (random.Next(2) != 0)
                {
                    Logger += LogToFile;
                }
                if (random.Next(2) != 0)
                {
                    Logger += LogToConsoleFancy;
                }
                // //
                if (Logger != null)
                { // calling multicast
                    Logger("This is Sparta!");
                }
            } finally
            {
                Console.WriteLine("Press any key to finish");
                Console.ReadKey();
            }
        }
Example #2
0
 // Token: 0x0600120F RID: 4623 RVA: 0x000389C5 File Offset: 0x00036BC5
 private static void LogVerbose(LocalizedString lString, LogMessageDelegate logger)
 {
     if (logger != null)
     {
         logger(lString);
     }
 }
Example #3
0
        public static Runner[] ParseXmlData(byte[] xml, LogMessageDelegate logit, bool deleteFile, GetIdDelegate getIdFunc, bool readRadioControls, out RadioControl[] radioControls)
        {
            Runner[] runners;

            var xmlDoc = new XmlDocument();

            using (var ms = new MemoryStream(xml))
            {
                var setts = new XmlReaderSettings();
                setts.XmlResolver = null;
                setts.ProhibitDtd = false;
                using (XmlReader xr = XmlReader.Create(ms, setts))
                {
                    xmlDoc.Load(xr);
                }
            }

            //Detect IOF-XML version..
            if (xmlDoc.DocumentElement.Attributes["iofVersion"] != null && xmlDoc.DocumentElement.Attributes["iofVersion"].Value != null && xmlDoc.DocumentElement.Attributes["iofVersion"].Value.StartsWith("3."))
            {
                runners = IofXmlV3Parser.ParseXmlData(xmlDoc, logit, deleteFile, getIdFunc, readRadioControls, out radioControls);
            }
            else
            {
                radioControls = null;
                //Fallback to 2.0
                runners = IOFXmlV2Parser.ParseXmlData(xmlDoc, logit, deleteFile, getIdFunc);
            }

            return(runners);
        }
        private static int CalculateIDFromSiCard(LogMessageDelegate logit, string si, string familyname, string givenname, long pid)
        {
            int iSi;

            if (!Int32.TryParse(si, out iSi))
            {
                //NO SICARD!
                logit("No SICard for Runner: " + familyname + " " + givenname);
            }
            int dbid = 0;

            if (pid < Int32.MaxValue && pid > 0)
            {
                dbid = (int)pid;
            }
            else if (iSi > 0)
            {
                dbid = -1 * iSi;
            }
            else
            {
                logit("Cant generate DBID for runner: " + givenname + " " + familyname);
            }
            return(dbid);
        }
        /// <summary>
        /// Partitions tables in a tabular model based on configuration
        /// </summary>
        /// <param name="modelConfiguration">Configuration info for the model</param>
        /// <param name="messageLogger">Pointer to logging method</param>
        public static void PerformProcessing(ModelConfiguration modelConfiguration, LogMessageDelegate messageLogger)
        {
            _modelConfiguration = modelConfiguration;
            _messageLogger      = messageLogger;
            _retryAttempts      = modelConfiguration.RetryAttempts;

            PerformProcessing();
        }
Example #6
0
 public OlmodManager(LogMessageDelegate logger = null) : base()
 {
     if (logger != null)
     {
         this.infoLogger  = logger;
         this.errorLogger = logger;
     }
 }
Example #7
0
 public CallbackMessageLogger(String name, LogMessageDelegate logMessageDelegate)
     : base(name)
 {
     if (logMessageDelegate == null)
     {
         throw new ArgumentNullException("logMessageDelegate");
     }
     this.logMessageDelegate = logMessageDelegate;
 }
Example #8
0
        public void WritePointDelegateCanPointToMethod()
        {
            LogMessageDelegate log = ReturnMessage;

            //log = new LogMessageDelegate(ReturnMessage);
            log += IncrementCount;

            var result = log("Hello!");

            Assert.Equal("Hello!", result);
        }
Example #9
0
        public FormCreateDocs(ref FileParser parser, ref DocumentCreator docCreator, ref LogMessageDelegate logger)
        {
            m_parser     = parser;
            m_logger     = logger;
            m_docCreator = docCreator;

            InitializeComponent();

            backgroundWorker1.WorkerSupportsCancellation = true;
            backgroundWorker1.WorkerReportsProgress      = true;
        }
Example #10
0
 public OlmodManager(LogMessageDelegate infoLogger = null, LogMessageDelegate errorLogger = null) : base()
 {
     if (infoLogger != null)
     {
         this.infoLogger = infoLogger;
     }
     if (errorLogger != null)
     {
         this.errorLogger = errorLogger;
     }
 }
Example #11
0
        // Token: 0x06001200 RID: 4608 RVA: 0x00037AA4 File Offset: 0x00035CA4
        internal static ADObjectId FindDatabase(LogMessageDelegate logger)
        {
            LoadBalancingReport             loadBalancingReport             = null;
            MailboxDatabaseWithLocationInfo mailboxDatabaseWithLocationInfo = PhysicalResourceLoadBalancing.FindDatabaseAndLocation(null, logger, null, true, false, null, ref loadBalancingReport);

            if (mailboxDatabaseWithLocationInfo != null)
            {
                return(mailboxDatabaseWithLocationInfo.MailboxDatabase.Id);
            }
            return(null);
        }
Example #12
0
        public NativeSessionCallbacks(NativeSession session)
        {
            _session = session;

            _connectionError = ConnectionErrorCallback;
            _endOfTrack = EndOfTrackCallback;
            _getAudioBufferStats = GetAudioBufferStatsCallback;
            _loggedIn = LoggedInCallback;
            _loggedOut = LoggedOutCallback;
            _logMessage = LogMessageCallback;
            _messageToUser = MessageToUserCallback;
            _metadataUpdated = MetadataUpdatedCallback;
            _musicDelivery = MusicDeliveryCallback;
            _notifyMainThread = NotifyMainThreadCallback;
            _playTokenLost = PlayTokenLostCallback;
            _startPlayback = StartPlaybackCallback;
            _stopPlayback = StopPlaybackCallback;
            _streamingError = StreamingErrorCallback;
            _userinfoUpdated = UserinfoUpdatedCallback;
            _offlineStatusUpdated = OfflineStatusUpdatedCallback;
            _offlineError = OfflineErrorCallback;
            _credentialsBlobUpdated = CredentialsBlobUpdatedCallback;
            _connectionStateUpdated = ConnectionStateUpdatedCallback;
            _scrobbleError = ScrobbleErrorCallback;
            _privateSessionModeChanged = PrivateSessionModeChangedCallback;

            _callbacks = new Spotify.SpotifySessionCallbacks();
            _callbacks.LoggedIn = Marshal.GetFunctionPointerForDelegate(_loggedIn);
            _callbacks.LoggedOut = Marshal.GetFunctionPointerForDelegate(_loggedOut);
            _callbacks.MetadataUpdated = Marshal.GetFunctionPointerForDelegate(_metadataUpdated);
            _callbacks.ConnectionError = Marshal.GetFunctionPointerForDelegate(_connectionError);
            _callbacks.MessageToUser = Marshal.GetFunctionPointerForDelegate(_messageToUser);
            _callbacks.NotifyMainThread = Marshal.GetFunctionPointerForDelegate(_notifyMainThread);
            _callbacks.MusicDelivery = Marshal.GetFunctionPointerForDelegate(_musicDelivery);
            _callbacks.PlayTokenLost = Marshal.GetFunctionPointerForDelegate(_playTokenLost);
            _callbacks.LogMessage = Marshal.GetFunctionPointerForDelegate(_logMessage);
            _callbacks.EndOfTrack = Marshal.GetFunctionPointerForDelegate(_endOfTrack);
            _callbacks.StreamingError = Marshal.GetFunctionPointerForDelegate(_streamingError);
            _callbacks.UserinfoUpdated = Marshal.GetFunctionPointerForDelegate(_userinfoUpdated);
            _callbacks.StartPlayback = Marshal.GetFunctionPointerForDelegate(_startPlayback);
            _callbacks.StopPlayback = Marshal.GetFunctionPointerForDelegate(_stopPlayback);
            _callbacks.GetAudioBufferStats = Marshal.GetFunctionPointerForDelegate(_getAudioBufferStats);
            _callbacks.OfflineStatusUpdated = Marshal.GetFunctionPointerForDelegate(_offlineStatusUpdated);
            _callbacks.OfflineError = Marshal.GetFunctionPointerForDelegate(_offlineError);
            _callbacks.CredentialsBlobUpdated = Marshal.GetFunctionPointerForDelegate(_credentialsBlobUpdated);
            _callbacks.ConnectionStateUpdated = Marshal.GetFunctionPointerForDelegate(_connectionStateUpdated);
            _callbacks.ScrobbleError = Marshal.GetFunctionPointerForDelegate(_scrobbleError);
            _callbacks.PrivateSessionModeChanged = Marshal.GetFunctionPointerForDelegate(_privateSessionModeChanged);

            _callbacksHandle = Marshal.AllocHGlobal(CallbacksSize);
            Marshal.StructureToPtr(_callbacks, _callbacksHandle, true);
        }
Example #13
0
        public NativeSessionCallbacks(NativeSession session)
        {
            _session = session;

            _connectionError           = ConnectionErrorCallback;
            _endOfTrack                = EndOfTrackCallback;
            _getAudioBufferStats       = GetAudioBufferStatsCallback;
            _loggedIn                  = LoggedInCallback;
            _loggedOut                 = LoggedOutCallback;
            _logMessage                = LogMessageCallback;
            _messageToUser             = MessageToUserCallback;
            _metadataUpdated           = MetadataUpdatedCallback;
            _musicDelivery             = MusicDeliveryCallback;
            _notifyMainThread          = NotifyMainThreadCallback;
            _playTokenLost             = PlayTokenLostCallback;
            _startPlayback             = StartPlaybackCallback;
            _stopPlayback              = StopPlaybackCallback;
            _streamingError            = StreamingErrorCallback;
            _userinfoUpdated           = UserinfoUpdatedCallback;
            _offlineStatusUpdated      = OfflineStatusUpdatedCallback;
            _offlineError              = OfflineErrorCallback;
            _credentialsBlobUpdated    = CredentialsBlobUpdatedCallback;
            _connectionStateUpdated    = ConnectionStateUpdatedCallback;
            _scrobbleError             = ScrobbleErrorCallback;
            _privateSessionModeChanged = PrivateSessionModeChangedCallback;

            _callbacks                           = new Spotify.SpotifySessionCallbacks();
            _callbacks.LoggedIn                  = Marshal.GetFunctionPointerForDelegate(_loggedIn);
            _callbacks.LoggedOut                 = Marshal.GetFunctionPointerForDelegate(_loggedOut);
            _callbacks.MetadataUpdated           = Marshal.GetFunctionPointerForDelegate(_metadataUpdated);
            _callbacks.ConnectionError           = Marshal.GetFunctionPointerForDelegate(_connectionError);
            _callbacks.MessageToUser             = Marshal.GetFunctionPointerForDelegate(_messageToUser);
            _callbacks.NotifyMainThread          = Marshal.GetFunctionPointerForDelegate(_notifyMainThread);
            _callbacks.MusicDelivery             = Marshal.GetFunctionPointerForDelegate(_musicDelivery);
            _callbacks.PlayTokenLost             = Marshal.GetFunctionPointerForDelegate(_playTokenLost);
            _callbacks.LogMessage                = Marshal.GetFunctionPointerForDelegate(_logMessage);
            _callbacks.EndOfTrack                = Marshal.GetFunctionPointerForDelegate(_endOfTrack);
            _callbacks.StreamingError            = Marshal.GetFunctionPointerForDelegate(_streamingError);
            _callbacks.UserinfoUpdated           = Marshal.GetFunctionPointerForDelegate(_userinfoUpdated);
            _callbacks.StartPlayback             = Marshal.GetFunctionPointerForDelegate(_startPlayback);
            _callbacks.StopPlayback              = Marshal.GetFunctionPointerForDelegate(_stopPlayback);
            _callbacks.GetAudioBufferStats       = Marshal.GetFunctionPointerForDelegate(_getAudioBufferStats);
            _callbacks.OfflineStatusUpdated      = Marshal.GetFunctionPointerForDelegate(_offlineStatusUpdated);
            _callbacks.OfflineError              = Marshal.GetFunctionPointerForDelegate(_offlineError);
            _callbacks.CredentialsBlobUpdated    = Marshal.GetFunctionPointerForDelegate(_credentialsBlobUpdated);
            _callbacks.ConnectionStateUpdated    = Marshal.GetFunctionPointerForDelegate(_connectionStateUpdated);
            _callbacks.ScrobbleError             = Marshal.GetFunctionPointerForDelegate(_scrobbleError);
            _callbacks.PrivateSessionModeChanged = Marshal.GetFunctionPointerForDelegate(_privateSessionModeChanged);

            _callbacksHandle = Marshal.AllocHGlobal(CallbacksSize);
            Marshal.StructureToPtr(_callbacks, _callbacksHandle, true);
        }
Example #14
0
        public FormMain()
        {
            m_loggerDelegate = LogMessage;
            ConfigurationDYES cfg = new ConfigurationDYES();

            ConfigurationDYES.DeSerialize(cfg.ConfigFileName, ref cfg);
            Config       = cfg;
            m_docCreator = new DocumentCreator(m_loggerDelegate);
            m_parser     = new FileParser(m_loggerDelegate);

            InitializeComponent();
            InitializeControls();
        }
Example #15
0
        public static Runner[] ParseFile(string filename, LogMessageDelegate logit, bool deleteFile)
        {
            byte[] fileContents;
            if (!File.Exists(filename))
            {
                return null;
            }

            fileContents = File.ReadAllBytes(filename);

            if (deleteFile)
                File.Delete(filename);
            RadioControl[] ctrls;
            return ParseXmlData(fileContents, logit, deleteFile, out ctrls);
        }
Example #16
0
        public static Runner[] ParseFile(string filename, LogMessageDelegate logit, bool deleteFile, GetIdDelegate getIdFunc)
        {
            byte[] fileContents;
            if (!File.Exists(filename))
            {
                return null;
            }

            fileContents = File.ReadAllBytes(filename);

            if (deleteFile)
                File.Delete(filename);

            return ParseXmlData(fileContents, logit, deleteFile, getIdFunc);
        }
Example #17
0
 // Set delegate for logging.
 public void SetLogger(LogMessageDelegate logger = null, LogMessageDelegate errorLogger = null)
 {
     this.infoLogger = logger;
     if (this.errorLogger == null)
     {
         if (errorLogger == null)
         {
             this.errorLogger = logger;
         }
         else
         {
             this.errorLogger = errorLogger;
         }
     }
 }
Example #18
0
        public static Runner[] ParseFile(string filename, LogMessageDelegate logit, bool deleteFile)
        {
            byte[] fileContents;
            if (!File.Exists(filename))
            {
                return(null);
            }

            fileContents = File.ReadAllBytes(filename);

            if (deleteFile)
            {
                File.Delete(filename);
            }
            RadioControl[] ctrls;
            return(ParseXmlData(fileContents, logit, deleteFile, out ctrls));
        }
        public HTTPServer(int port, LogMessageDelegate LogMsg)
        {
            LogMessage = LogMsg;

            try
            {
                _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                EndPoint endPoint = new IPEndPoint(IPAddress.Any, port);
                _socket.Bind(endPoint);
                _socket.Listen(5);
                _socket.BeginAccept(new AsyncCallback(OnAccept), null);
            }
            catch (Exception ex)
            {
                LogMessage(ex.Message);
            }
        }
        public static Runner[] ParseFile(string filename, LogMessageDelegate logit, bool deleteFile, GetIdDelegate getIdFunc)
        {
            byte[] fileContents;
            if (!File.Exists(filename))
            {
                return(null);
            }

            fileContents = File.ReadAllBytes(filename);

            if (deleteFile)
            {
                File.Delete(filename);
            }

            return(ParseXmlData(fileContents, logit, deleteFile, getIdFunc));
        }
        public void SendtoLog(string str, LogOption option)
        {
            if (this.richTextBox1.InvokeRequired)
            {
                LogMessageDelegate d = new LogMessageDelegate(SendtoLog);
                this.Invoke(d);
            }
            else
            {
                richTextBox1.SelectionCharOffset = 2;
                richTextBox1.SelectedText        = string.Empty;
                richTextBox1.SelectionStart      = richTextBox1.TextLength;

                switch (option)
                {
                case LogOption.Normal:
                    richTextBox1.SelectionColor     = Color.White;
                    richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
                    break;

                case LogOption.System:
                    richTextBox1.SelectionColor     = Color.Yellow;
                    richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
                    break;

                case LogOption.Error:
                    richTextBox1.SelectionColor     = Color.FromArgb(0xd9, 0x2b, 0x2b);
                    richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
                    break;

                case LogOption.Equation:
                    richTextBox1.SelectionColor     = Color.PeachPuff;
                    richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
                    break;

                case LogOption.Result:
                    richTextBox1.SelectionColor     = Color.LightBlue;
                    richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
                    break;
                }

                richTextBox1.AppendText(str);
                richTextBox1.ScrollToCaret();
            }
        }
Example #22
0
        // Token: 0x06001207 RID: 4615 RVA: 0x00037EF8 File Offset: 0x000360F8
        private static List <MailboxDatabase> FilterEligibleDatabase(LogMessageDelegate logger, IEnumerable <MailboxDatabase> cachedDatabases, IMailboxProvisioningConstraint mailboxProvisioningConstraint, IEnumerable <ADObjectId> excludedDatabaseIds)
        {
            List <MailboxDatabase> list = new List <MailboxDatabase>();
            int num = 0;

            foreach (MailboxDatabase mailboxDatabase in cachedDatabases)
            {
                num++;
                bool flag  = mailboxProvisioningConstraint == null || (mailboxDatabase.MailboxProvisioningAttributes != null && mailboxProvisioningConstraint.IsMatch(mailboxDatabase.MailboxProvisioningAttributes));
                bool flag2 = excludedDatabaseIds != null && excludedDatabaseIds.Contains(mailboxDatabase.Id);
                if (flag && !flag2)
                {
                    list.Add(mailboxDatabase);
                }
            }
            PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbGeneralTrace(string.Format("{0}/{1} valid database(s) match constraints required by mailbox.", list.Count, num)), logger);
            return(list);
        }
Example #23
0
        } // SwitchPanelForm

        /// <summary>
        /// Log a message to the log window
        /// </summary>
        /// <param name="msg">the message</param>
        public void LogMessage(string msg)
        {
            if (lbLogging.InvokeRequired)
            {
                LogMessageDelegate update = new LogMessageDelegate(LogMessage);
                lbLogging.Invoke(update, msg);
            }
            else
            {
                lbLogging.ClearSelected();
                // add item at top, remove lines at bottom
                lbLogging.Items.Insert(0, msg);
                while (lbLogging.Items.Count > LogMaxLines - 1)
                {
                    lbLogging.Items.RemoveAt(lbLogging.Items.Count - 1);
                }
            }
        } // LogMessage
Example #24
0
        // Token: 0x0600120A RID: 4618 RVA: 0x00038380 File Offset: 0x00036580
        internal static IEnumerable FindVirtualDirectories(string domainController, LogMessageDelegate logger)
        {
            ITopologyConfigurationSession topologyConfigurationSession = PhysicalResourceLoadBalancing.CreateGlobalConfigSession(domainController);

            PhysicalResourceLoadBalancing.LogVerbose(TaskVerboseStringHelper.GetFindDataObjectsVerboseString(topologyConfigurationSession, typeof(ADOabVirtualDirectory), null, null, true), logger);
            ADPagedReader <ADOabVirtualDirectory>           adpagedReader = topologyConfigurationSession.FindPaged <ADOabVirtualDirectory>(null, QueryScope.SubTree, null, null, 0);
            List <ComparableEntry <ADOabVirtualDirectory> > list          = new List <ComparableEntry <ADOabVirtualDirectory> >();

            foreach (ADOabVirtualDirectory adoabVirtualDirectory in adpagedReader)
            {
                ServerVersion serverVersion = null;
                if (adoabVirtualDirectory.Server != null)
                {
                    serverVersion = Server.GetServerVersion(adoabVirtualDirectory.Server.Name);
                }
                if (!(serverVersion == null) && ServerVersion.Compare(serverVersion, PhysicalResourceLoadBalancing.E15MinVersion) >= 0)
                {
                    list.Add(new ComparableEntry <ADOabVirtualDirectory>(adoabVirtualDirectory)
                    {
                        Count = adoabVirtualDirectory.OfflineAddressBooks.Count
                    });
                    PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbFoundOabVDir(adoabVirtualDirectory.Id.ToDNString(), adoabVirtualDirectory.OfflineAddressBooks.Count), logger);
                }
            }
            list.Sort();
            int num = PhysicalResourceLoadBalancing.MaxNumOfVdirs;

            if (num > list.Count)
            {
                num = list.Count;
            }
            if (num == 0)
            {
                PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbNoOabVDirReturned, logger);
            }
            List <ADObjectId> list2 = new List <ADObjectId>(num);

            for (int i = 0; i < num; i++)
            {
                list2.Add(list[i].Entry.Id);
                PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbOabVDirSelected(list[i].Entry.Id.ToDNString()), logger);
            }
            return(list2);
        }
        private static void SetLogMessageDelegateImpl(Task task)
        {
            if (ProvisioningLayer.Disabled || !task.IsProvisioningLayerAvailable)
            {
                return;
            }
            LogMessageDelegate logMessage = delegate(string message)
            {
                task.WriteVerbose(new LocalizedString(message));
            };
            WriteErrorDelegate writeError = delegate(LocalizedException ex, ExchangeErrorCategory category)
            {
                task.WriteError(ex, category, task.CurrentObjectIndex);
            };

            for (int i = 0; i < task.ProvisioningHandlers.Length; i++)
            {
                task.ProvisioningHandlers[i].LogMessage = logMessage;
                task.ProvisioningHandlers[i].WriteError = writeError;
            }
        }
Example #26
0
        public Form1()
        {
            InitializeComponent();

            logger = new Logger("AsteriaClient.log");
            Logger.MessageReceived += new LoggerMsgEvent(ToLog);

            conn = new WorldConnection("127.0.0.1", 5961, protocolVersion);
            conn.AccountId = 2;

            conn.StateChanged += new WorldConnection.StateChangeHandler(HandleStateChanged);
            conn.WorldMessageReceived += new WorldClientMsgEvent(HandleMessageReceived);
            conn.CharManagementMessageReceived += new WorldClientMsgEvent(HandleCharMngtMessageReceived);

            fillCharacterList = new FillCharacterListDelegate(FillCharacterList);
            displayMessage = new DisplayWorldMessageDelegate(DisplayWorldMessage);
            logMessage = new LogMessageDelegate(ToLog);
            stateChange = new StateChangedDelegate(HandleStateChanged);

            conn.ConnectToWorld("admin_testing");

            worldEntities = new Dictionary<int, Entity>();
        }
Example #27
0
        public static Runner[] ParseXmlData(byte[] xml, LogMessageDelegate logit, bool deleteFile, out RadioControl[] definedRadioControls)
        {
            var runners = new List<Runner>();
            definedRadioControls = null;
            var defRadios = new List<RadioControl>();

            var xmlDoc = new XmlDocument();
            using (var ms = new MemoryStream(xml))
            {
                var setts = new XmlReaderSettings();
                setts.XmlResolver = null;
                setts.ProhibitDtd = false;
                using (XmlReader xr = XmlReader.Create(ms, setts))
                {
                    xmlDoc.Load(xr);
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassStart"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                if (classNameNode == null)
                    continue;

                string className = classNameNode.InnerText;
                var personNodes = classNode.SelectNodes("PersonStart");
                if (personNodes != null)
                {
                    foreach (XmlNode personNode in personNodes)
                    {
                        string familyname;
                        string givenname;
                        long pid;
                        string club;
                        if (!ParseNameClubAndId(personNode, out familyname, out givenname, out pid, out club)) continue;

                        var startTimeNode = personNode.SelectSingleNode("Start/StartTime/Clock");
                        var ccCardNode = personNode.SelectSingleNode("Start/CCard/CCardId");

                        if (startTimeNode == null || ccCardNode == null)
                            continue;
                        string starttime = startTimeNode.InnerText;
                        string si = ccCardNode.InnerText;
                        var dbid = CalculateIDFromSiCard(logit, si, familyname, givenname, pid);

                        var runner = new Runner(dbid, givenname + " " + familyname, club, className);

                        if (!string.IsNullOrEmpty(starttime))
                        {
                            int istarttime = ParseTime(starttime);
                            runner.SetStartTime(istarttime);
                        }

                        runners.Add(runner);
                    }
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassResult"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                if (classNameNode == null)
                    continue;

                string className = classNameNode.InnerText;

                var personNodes = classNode.SelectNodes("PersonResult");
                if (personNodes != null)
                {
                    foreach (XmlNode personNode in personNodes)
                    {
                        string familyname;
                        string givenname;
                        long pid;
                        string club;
                        if (!ParseNameClubAndId(personNode, out familyname, out givenname, out pid, out club)) continue;

                        var competitorStatusNode = personNode.SelectSingleNode("Result/CompetitorStatus");
                        var resultTimeNode = personNode.SelectSingleNode("Result/Time");
                        var startTimeNode = personNode.SelectSingleNode("Result/StartTime/Clock");
                        var ccCardNode = personNode.SelectSingleNode("Result/CCard/CCardId");
                        if (competitorStatusNode == null || competitorStatusNode.Attributes == null || competitorStatusNode.Attributes["value"] == null ||
                            resultTimeNode == null || startTimeNode == null || ccCardNode == null)
                            continue;
                        if (familyname == "* Radio controls definition *")
                        {
                            //Special handling of SportSoftware way of telling what RadioControls will appear for this class
                            XmlNodeList pSplittimes = personNode.SelectNodes("Result/SplitTime");
                            if (pSplittimes != null)
                            {

                            }

                            continue;
                        }

                        string status = competitorStatusNode.Attributes["value"].Value;
                        string time = resultTimeNode.InnerText;
                        string starttime = startTimeNode.InnerText;
                        string si = ccCardNode.InnerText;
                        var dbid = CalculateIDFromSiCard(logit, si, familyname, givenname, pid);

                        var runner = new Runner(dbid, givenname + " " + familyname, club, className);

                        if (!string.IsNullOrEmpty(starttime))
                        {
                            int istarttime = ParseTime(starttime);
                            runner.SetStartTime(istarttime);
                        }

                        int itime = ParseTime(time);
                        int istatus = 10;

                        switch (status)
                        {
                            case "MisPunch":
                                istatus = 3;
                                break;

                            case "Disqualified":
                                istatus = 4;
                                break;
                            case "DidNotFinish":
                                istatus = 3;
                                itime = -3;
                                break;
                            case "DidNotStart":
                                istatus = 1;
                                itime = -3;
                                break;
                            case "Overtime":
                                istatus = 5;
                                break;
                            case "OK":
                                istatus = 0;
                                break;
                            case "NotCompeting":
                                //Does not compete, exclude
                                continue;
                        }

                        runner.SetResult(itime, istatus);

                        var lsplitCodes = new List<int>();
                        var lsplitTimes = new List<int>();

                        XmlNodeList splittimes = personNode.SelectNodes("Result/SplitTime");
                        if (splittimes != null)
                        {
                            foreach (XmlNode splitNode in splittimes)
                            {
                                XmlNode splitcode = splitNode.SelectSingleNode("ControlCode");
                                XmlNode splittime = splitNode.SelectSingleNode("Time");
                                if (splittime == null || splitcode == null)
                                    continue;

                                int iSplitcode;
                                string sSplittime = splittime.InnerText;
                                if (int.TryParse(splitcode.InnerText, out iSplitcode) && sSplittime.Length > 0)
                                {
                                    if (iSplitcode == 999)
                                    {
                                        if (istatus == 0 && itime == -1)
                                        {
                                            //Målstämpling
                                            itime = ParseTime(sSplittime);
                                            runner.SetResult(itime, 0);
                                        }
                                    }
                                    else
                                    {
                                        iSplitcode += 1000;
                                        while (lsplitCodes.Contains(iSplitcode))
                                        {
                                            iSplitcode += 1000;
                                        }

                                        int iSplittime = ParseTime(sSplittime);
                                        lsplitCodes.Add(iSplitcode);
                                        lsplitTimes.Add(iSplittime);

                                        runner.SetSplitTime(iSplitcode, iSplittime);
                                    }
                                }
                            }
                        }

                        runners.Add(runner);
                    }
                }
            }

            return runners.ToArray();
        }
 public static Runner[] ParseFile(string filename, LogMessageDelegate logit, GetIdDelegate getIdFunc)
 {
     return(ParseFile(filename, logit, true, getIdFunc));
 }
Example #29
0
        public static Runner[] ParseFile(string filename, LogMessageDelegate logit, bool deleteFile)
        {
            List <Runner> runners = new List <Runner>();

            byte[] fileContents;
            if (!File.Exists(filename))
            {
                return(null);
            }
            else
            {
                fileContents = File.ReadAllBytes(filename);
            }

            if (deleteFile)
            {
                File.Delete(filename);
            }

            XmlDocument xmlDoc = new XmlDocument();

            using (MemoryStream ms = new MemoryStream(fileContents))
            {
                XmlReaderSettings setts = new XmlReaderSettings();
                setts.XmlResolver = null;
                setts.ProhibitDtd = false;
                using (XmlReader xr = XmlTextReader.Create(ms, setts))
                {
                    xmlDoc.Load(xr);
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassResult"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                string  className     = classNameNode.InnerText;

                foreach (XmlNode personNode in classNode.SelectNodes("PersonResult"))
                {
                    XmlNode personNameNode = personNode.SelectSingleNode("Person/PersonName");
                    string  familyname     = personNameNode.SelectSingleNode("Family").InnerText;
                    string  givenname      = personNameNode.SelectSingleNode("Given").InnerText;
                    string  id             = personNode.SelectSingleNode("Person/PersonId").InnerText;
                    long    pid            = 0;
                    if (id.Trim().Length > 0)
                    {
                        pid = Convert.ToInt64(id);
                    }
                    var    clubNode = personNode.SelectSingleNode("Club/ShortName");
                    string club     = "";
                    if (clubNode != null)
                    {
                        club = clubNode.InnerText;
                    }
                    string status    = personNode.SelectSingleNode("Result/CompetitorStatus").Attributes["value"].Value;
                    string time      = personNode.SelectSingleNode("Result/Time").InnerText;
                    string starttime = personNode.SelectSingleNode("Result/StartTime/Clock").InnerText;
                    string si        = personNode.SelectSingleNode("Result/CCard/CCardId").InnerText;
                    int    iSi;
                    if (!Int32.TryParse(si, out iSi))
                    {
                        //NO SICARD!
                        logit("No SICard for Runner: " + familyname + " " + givenname);
                    }
                    int dbid = 0;
                    if (pid < Int32.MaxValue && pid > 0)
                    {
                        dbid = (int)pid;
                    }
                    else if (iSi > 0)
                    {
                        dbid = -1 * iSi;
                    }
                    else
                    {
                        logit("Cant generate DBID for runner: " + givenname + " " + familyname);
                    }


                    Runner runner = new Runner(dbid, givenname + " " + familyname, club, className, null, null);

                    int istarttime = -1;
                    if (!string.IsNullOrEmpty(starttime))
                    {
                        istarttime = ParseTime(starttime);
                        runner.SetStartTime(istarttime);
                    }

                    int itime = -9;
                    itime = ParseTime(time);

                    int istatus = 10;

                    switch (status)
                    {
                    case "MisPunch":
                        istatus = 3;
                        break;

                    case "Disqualified":
                        istatus = 4;
                        break;

                    case "DidNotFinish":
                        istatus = 3;
                        itime   = -3;
                        break;

                    case "DidNotStart":
                        istatus = 1;
                        itime   = -3;
                        break;

                    case "Overtime":
                        istatus = 5;
                        break;

                    case "OK":
                        istatus = 0;
                        break;
                    }

                    runner.SetResult(itime, istatus);

                    List <int> lsplitCodes = new List <int>();
                    List <int> lsplitTimes = new List <int>();

                    XmlNodeList splittimes = personNode.SelectNodes("Result/SplitTime");
                    if (splittimes != null)
                    {
                        foreach (XmlNode splitNode in splittimes)
                        {
                            XmlNode splitcode = splitNode.SelectSingleNode("ControlCode");
                            XmlNode splittime = splitNode.SelectSingleNode("Time");
                            int     i_splitcode;
                            string  s_splittime = splittime.InnerText;
                            if (int.TryParse(splitcode.InnerText, out i_splitcode) && s_splittime.Length > 0)
                            {
                                if (i_splitcode == 999)
                                {
                                    if (istatus == 0 && itime == -1)
                                    {
                                        //Målstämpling
                                        itime = ParseTime(s_splittime);
                                        runner.SetResult(itime, 0);
                                    }
                                }
                                else
                                {
                                    i_splitcode += 1000;
                                    while (lsplitCodes.Contains(i_splitcode))
                                    {
                                        i_splitcode += 1000;
                                    }

                                    int i_splittime = ParseTime(s_splittime);
                                    lsplitCodes.Add(i_splitcode);
                                    lsplitTimes.Add(i_splittime);

                                    runner.SetSplitTime(i_splitcode, i_splittime);
                                }
                            }
                        }
                    }

                    runners.Add(runner);
                }
            }

            return(runners.ToArray());
        }
Example #30
0
 public static Runner[] ParseFile(string filename, LogMessageDelegate logit)
 {
     return(ParseFile(filename, logit, true));
 }
Example #31
0
 public DocumentCreator(LogMessageDelegate logger)
 {
     m_logger = logger;
 }
Example #32
0
        public static Runner[] ParseXmlData(byte[] xml, LogMessageDelegate logit, bool deleteFile, GetIdDelegate getIdFunc)
        {
            var runners = new List<Runner>();

            var xmlDoc = new XmlDocument();
            using (var ms = new MemoryStream(xml))
            {
                var setts = new XmlReaderSettings();
                setts.XmlResolver = null;
                setts.ProhibitDtd = false;
                using (XmlReader xr = XmlReader.Create(ms, setts))
                {
                    xmlDoc.Load(xr);
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassStart"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                if (classNameNode == null)
                    continue;

                string className = classNameNode.InnerText;
                var personNodes = classNode.SelectNodes("PersonStart");
                if (personNodes != null)
                {
                    foreach (XmlNode personNode in personNodes)
                    {
                        string familyname;
                        string givenname;
                        string club;
                        string sourceId;
                        if (!ParseNameClubAndId(personNode, out familyname, out givenname, out club, out sourceId)) continue;

                        var startTimeNode = personNode.SelectSingleNode("Start/StartTime/Clock");
                        var ccCardNode = personNode.SelectSingleNode("Start/CCard/CCardId");

                        if (startTimeNode == null || ccCardNode == null)
                            continue;
                        string starttime = startTimeNode.InnerText;
                        string si = ccCardNode.InnerText;
                        string storeAlias;

                        if (string.IsNullOrEmpty(sourceId) && string.IsNullOrEmpty(si))
                        {
                            string name = givenname + " " + familyname + ", " + club;
                            if (!m_suppressedIDCalculationErrors.ContainsKey(name))
                            {
                                logit("Cannot calculculate ID for runner: " + name + ", skipping [supressing further output for this name]");
                                m_suppressedIDCalculationErrors.Add(name, name);
                            }
                            continue;
                        }

                        int dbId = getIdFunc(sourceId, si, out storeAlias);

                        var runner = new Runner(dbId, givenname + " " + familyname, club, className, storeAlias);

                        if (!string.IsNullOrEmpty(starttime))
                        {
                            int istarttime = ParseTime(starttime);
                            runner.SetStartTime(istarttime);
                        }

                        runners.Add(runner);
                    }
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassResult"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                if (classNameNode == null)
                    continue;

                string className = classNameNode.InnerText;

                var personNodes = classNode.SelectNodes("PersonResult");
                if (personNodes != null)
                {
                    foreach (XmlNode personNode in personNodes)
                    {
                        string familyname;
                        string givenname;
                        string club;
                        string sourceId;
                        if (!ParseNameClubAndId(personNode, out familyname, out givenname, out club, out sourceId)) continue;

                        var competitorStatusNode = personNode.SelectSingleNode("Result/CompetitorStatus");
                        var resultTimeNode = personNode.SelectSingleNode("Result/Time");
                        var startTimeNode = personNode.SelectSingleNode("Result/StartTime/Clock");
                        var ccCardNode = personNode.SelectSingleNode("Result/CCard/CCardId");
                        if (competitorStatusNode == null || competitorStatusNode.Attributes == null || competitorStatusNode.Attributes["value"] == null ||
                            resultTimeNode == null || ccCardNode == null)
                            continue;

                        string status = competitorStatusNode.Attributes["value"].Value;
                        string time = resultTimeNode.InnerText;
                        string starttime = "";
                        if (startTimeNode != null)
                            starttime = startTimeNode.InnerText;
                        string si = ccCardNode.InnerText;
                        string storeAlias;

                        if (string.IsNullOrEmpty(sourceId) && string.IsNullOrEmpty(si))
                        {
                            string name = givenname + " " + familyname + ", " + club;
                            if (!m_suppressedIDCalculationErrors.ContainsKey(name))
                            {
                                logit("Cannot calculculate ID for runner: " + name + ", skipping [supressing further output for this name]");
                                m_suppressedIDCalculationErrors.Add(name, name);
                            }
                            continue;
                        }

                        int dbId = getIdFunc(sourceId, si, out storeAlias);

                        var runner = new Runner(dbId, givenname + " " + familyname, club, className, storeAlias);

                        if (!string.IsNullOrEmpty(starttime))
                        {
                            int istarttime = ParseTime(starttime);
                            runner.SetStartTime(istarttime);
                        }

                        int itime = ParseTime(time);
                        int istatus = 10;

                        if (status.ToLower() == "notcompeting")
                        {
                            //Does not compete, exclude
                            continue;
                        }

                        //runners without starttimenode have not started yet
                        if (startTimeNode != null)
                        {
                            switch (status.ToLower())
                            {
                                case "mispunch":
                                    istatus = 3;
                                    break;

                                case "disqualified":
                                    istatus = 4;
                                    break;
                                case "didnotfinish":
                                    istatus = 3;
                                    itime = -3;
                                    break;
                                case "didnotstart":
                                    istatus = 1;
                                    itime = -3;
                                    break;
                                case "overtime":
                                    istatus = 5;
                                    break;
                                case "ok":
                                    istatus = 0;
                                    break;
                            }
                        }

                        runner.SetResult(itime, istatus);

                        var lsplitCodes = new List<int>();
                        var lsplitTimes = new List<int>();

                        XmlNodeList splittimes = personNode.SelectNodes("Result/SplitTime");
                        if (splittimes != null)
                        {
                            foreach (XmlNode splitNode in splittimes)
                            {
                                XmlNode splitcode = splitNode.SelectSingleNode("ControlCode");
                                XmlNode splittime = splitNode.SelectSingleNode("Time");
                                if (splittime == null || splitcode == null)
                                    continue;

                                int iSplitcode;
                                string sSplittime = splittime.InnerText;

                                bool parseOK = int.TryParse(splitcode.InnerText, out iSplitcode);
                                bool isFinishPunch = splitcode.InnerText.StartsWith("F", StringComparison.InvariantCultureIgnoreCase) || iSplitcode == 999;
                                if ((parseOK || isFinishPunch) && sSplittime.Length > 0)
                                {
                                    if (isFinishPunch)
                                    {
                                        if ((istatus == 0 && itime == -1) || (istatus == 10 && itime == -9))
                                        {
                                            //Målstämpling
                                            itime = ParseTime(sSplittime);
                                            runner.SetResult(itime, 0);
                                        }
                                    }
                                    else
                                    {
                                        iSplitcode += 1000;
                                        while (lsplitCodes.Contains(iSplitcode))
                                        {
                                            iSplitcode += 1000;
                                        }

                                        int iSplittime = ParseTime(sSplittime);
                                        lsplitCodes.Add(iSplitcode);
                                        lsplitTimes.Add(iSplittime);

                                        runner.SetSplitTime(iSplitcode, iSplittime);
                                    }
                                }
                            }
                        }

                        runners.Add(runner);
                    }
                }
            }

            return runners.ToArray();
        }
Example #33
0
 public static Runner[] ParseFile(string filename, LogMessageDelegate logit)
 {
     return ParseFile(filename, logit, true);
 }
Example #34
0
        // Token: 0x06001213 RID: 4627 RVA: 0x00038C84 File Offset: 0x00036E84
        private static Dictionary <string, MailboxDatabase> GetAllEnabledDatabases(ITopologyConfigurationSession configSession, LogMessageDelegate logger)
        {
            ADObjectId adobjectId = ProvisioningCache.Instance.TryAddAndGetGlobalData <ADObjectId>(CannedProvisioningCacheKeys.DatabaseContainerId, new ProvisioningCache.CacheObjectGetterDelegate(configSession.GetDatabasesContainerId));

            PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbDatabaseContainer(adobjectId.ToDNString()), logger);
            List <QueryFilter> list = new List <QueryFilter>
            {
                new ComparisonFilter(ComparisonOperator.Equal, MailboxDatabaseSchema.IsExcludedFromProvisioning, false),
                new ComparisonFilter(ComparisonOperator.Equal, MailboxDatabaseSchema.IsSuspendedFromProvisioning, false),
                new ComparisonFilter(ComparisonOperator.Equal, DatabaseSchema.Recovery, false)
            };
            QueryFilter filter = QueryFilter.AndTogether(list.ToArray());

            PhysicalResourceLoadBalancing.LogVerbose(TaskVerboseStringHelper.GetFindDataObjectsVerboseString(configSession, typeof(MailboxDatabase), filter, adobjectId, false), logger);
            ADPagedReader <MailboxDatabase>      adpagedReader = configSession.FindPaged <MailboxDatabase>(adobjectId, QueryScope.OneLevel, filter, null, 0);
            Dictionary <string, MailboxDatabase> dictionary    = new Dictionary <string, MailboxDatabase>();

            foreach (MailboxDatabase mailboxDatabase in adpagedReader)
            {
                dictionary[mailboxDatabase.Name] = mailboxDatabase;
            }
            PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbGeneralTrace(string.Format("Retrieved {0} mailbox databases enabled for provisioning in the forest.", dictionary.Count)), logger);
            return(dictionary);
        }
Example #35
0
 public static Runner[] ParseFile(string filename, LogMessageDelegate logit, GetIdDelegate getIdFunc)
 {
     return ParseFile(filename, logit, true, getIdFunc);
 }
Example #36
0
        // Token: 0x06001214 RID: 4628 RVA: 0x00038DB8 File Offset: 0x00036FB8
        private static Server[] GetMailboxServers(ITopologyConfigurationSession configSession, bool localSiteOnly, LogMessageDelegate logger)
        {
            QueryFilter queryFilter = new AndFilter(new QueryFilter[]
            {
                new BitMaskAndFilter(ServerSchema.CurrentServerRole, 2UL),
                new ComparisonFilter(ComparisonOperator.NotEqual, ActiveDirectoryServerSchema.IsOutOfService, true),
                new ExistsFilter(ActiveDirectoryServerSchema.HostedDatabaseCopies)
            });
            QueryFilter filter;

            if (PhysicalResourceLoadBalancing.IsDatacenter)
            {
                if (localSiteOnly)
                {
                    ADSite localSite = configSession.GetLocalSite();
                    queryFilter = QueryFilter.AndTogether(new QueryFilter[]
                    {
                        queryFilter,
                        new ComparisonFilter(ComparisonOperator.Equal, ServerSchema.ServerSite, localSite.Id)
                    });
                }
                QueryFilter mailboxServerVersionFilter = PhysicalResourceLoadBalancing.GetMailboxServerVersionFilter();
                filter = QueryFilter.AndTogether(new QueryFilter[]
                {
                    queryFilter,
                    mailboxServerVersionFilter
                });
            }
            else
            {
                filter = queryFilter;
            }
            PhysicalResourceLoadBalancing.LogVerbose(TaskVerboseStringHelper.GetFindDataObjectsVerboseString(configSession, typeof(Server), filter, null, false), logger);
            Server[] array = configSession.Find <Server>(null, QueryScope.SubTree, filter, null, 0);
            if (array == null || array.Length == 0)
            {
                PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbNoServerForDatabaseException("Can not find any available mailbox server."), logger);
                throw new NoServersForDatabaseException("Can not find any mailbox server in local site");
            }
            PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbGeneralTrace(string.Format("Retrieved {0} mailbox servers.", array.Length)), logger);
            return(array);
        }
        public static Runner[] ParseXmlData(byte[] xml, LogMessageDelegate logit, bool deleteFile, GetIdDelegate getIdFunc)
        {
            var runners = new List <Runner>();

            var xmlDoc = new XmlDocument();

            using (var ms = new MemoryStream(xml))
            {
                var setts = new XmlReaderSettings();
                setts.XmlResolver = null;
                setts.ProhibitDtd = false;
                using (XmlReader xr = XmlReader.Create(ms, setts))
                {
                    xmlDoc.Load(xr);
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassStart"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                if (classNameNode == null)
                {
                    continue;
                }

                string className   = classNameNode.InnerText;
                var    personNodes = classNode.SelectNodes("PersonStart");
                if (personNodes != null)
                {
                    foreach (XmlNode personNode in personNodes)
                    {
                        string familyname;
                        string givenname;
                        string club;
                        string sourceId;
                        if (!ParseNameClubAndId(personNode, out familyname, out givenname, out club, out sourceId))
                        {
                            continue;
                        }

                        var startTimeNode = personNode.SelectSingleNode("Start/StartTime/Clock");
                        var ccCardNode    = personNode.SelectSingleNode("Start/CCard/CCardId");

                        if (startTimeNode == null || ccCardNode == null)
                        {
                            continue;
                        }
                        string starttime = startTimeNode.InnerText;
                        string si        = ccCardNode.InnerText;
                        string storeAlias;

                        if (string.IsNullOrEmpty(sourceId) && string.IsNullOrEmpty(si))
                        {
                            string name = givenname + " " + familyname + ", " + club;
                            if (!m_suppressedIDCalculationErrors.ContainsKey(name))
                            {
                                logit("Cannot calculculate ID for runner: " + name + ", skipping [supressing further output for this name]");
                                m_suppressedIDCalculationErrors.Add(name, name);
                            }
                            continue;
                        }


                        int dbId = getIdFunc(sourceId, si, out storeAlias);

                        var runner = new Runner(dbId, givenname + " " + familyname, club, className, storeAlias);

                        if (!string.IsNullOrEmpty(starttime))
                        {
                            int istarttime = ParseTime(starttime);
                            runner.SetStartTime(istarttime);
                        }

                        runners.Add(runner);
                    }
                }
            }

            foreach (XmlNode classNode in xmlDoc.GetElementsByTagName("ClassResult"))
            {
                XmlNode classNameNode = classNode.SelectSingleNode("ClassShortName");
                if (classNameNode == null)
                {
                    continue;
                }

                string className = classNameNode.InnerText;

                var personNodes = classNode.SelectNodes("PersonResult");
                if (personNodes != null)
                {
                    foreach (XmlNode personNode in personNodes)
                    {
                        string familyname;
                        string givenname;
                        string club;
                        string sourceId;
                        if (!ParseNameClubAndId(personNode, out familyname, out givenname, out club, out sourceId))
                        {
                            continue;
                        }

                        var competitorStatusNode = personNode.SelectSingleNode("Result/CompetitorStatus");
                        var resultTimeNode       = personNode.SelectSingleNode("Result/Time");
                        var startTimeNode        = personNode.SelectSingleNode("Result/StartTime/Clock");
                        var ccCardNode           = personNode.SelectSingleNode("Result/CCard/CCardId");
                        if (competitorStatusNode == null || competitorStatusNode.Attributes == null || competitorStatusNode.Attributes["value"] == null ||
                            resultTimeNode == null || ccCardNode == null)
                        {
                            continue;
                        }

                        string status    = competitorStatusNode.Attributes["value"].Value;
                        string time      = resultTimeNode.InnerText;
                        string starttime = "";
                        if (startTimeNode != null)
                        {
                            starttime = startTimeNode.InnerText;
                        }
                        string si = ccCardNode.InnerText;
                        string storeAlias;

                        if (string.IsNullOrEmpty(sourceId) && string.IsNullOrEmpty(si))
                        {
                            string name = givenname + " " + familyname + ", " + club;
                            if (!m_suppressedIDCalculationErrors.ContainsKey(name))
                            {
                                logit("Cannot calculculate ID for runner: " + name + ", skipping [supressing further output for this name]");
                                m_suppressedIDCalculationErrors.Add(name, name);
                            }
                            continue;
                        }

                        int dbId = getIdFunc(sourceId, si, out storeAlias);

                        var runner = new Runner(dbId, givenname + " " + familyname, club, className, storeAlias);

                        if (!string.IsNullOrEmpty(starttime))
                        {
                            int istarttime = ParseTime(starttime);
                            runner.SetStartTime(istarttime);
                        }

                        int itime   = ParseTime(time);
                        int istatus = 10;

                        if (status.ToLower() == "notcompeting")
                        {
                            //Does not compete, exclude
                            continue;
                        }

                        //runners without starttimenode have not started yet
                        if (startTimeNode != null)
                        {
                            switch (status.ToLower())
                            {
                            case "mispunch":
                                istatus = 3;
                                break;

                            case "disqualified":
                                istatus = 4;
                                break;

                            case "didnotfinish":
                                istatus = 3;
                                itime   = -3;
                                break;

                            case "didnotstart":
                                istatus = 1;
                                itime   = -3;
                                break;

                            case "overtime":
                                istatus = 5;
                                break;

                            case "ok":
                                istatus = 0;
                                break;
                            }
                        }

                        runner.SetResult(itime, istatus);

                        var lsplitCodes = new List <int>();
                        var lsplitTimes = new List <int>();

                        XmlNodeList splittimes = personNode.SelectNodes("Result/SplitTime");
                        if (splittimes != null)
                        {
                            foreach (XmlNode splitNode in splittimes)
                            {
                                XmlNode splitcode = splitNode.SelectSingleNode("ControlCode");
                                XmlNode splittime = splitNode.SelectSingleNode("Time");
                                if (splittime == null || splitcode == null)
                                {
                                    continue;
                                }

                                int    iSplitcode;
                                string sSplittime = splittime.InnerText;

                                bool parseOK       = int.TryParse(splitcode.InnerText, out iSplitcode);
                                bool isFinishPunch = splitcode.InnerText.StartsWith("F", StringComparison.InvariantCultureIgnoreCase) || iSplitcode == 999;
                                if ((parseOK || isFinishPunch) && sSplittime.Length > 0)
                                {
                                    if (isFinishPunch)
                                    {
                                        if ((istatus == 0 && itime == -1) || (istatus == 10 && itime == -9))
                                        {
                                            //Målstämpling
                                            itime = ParseTime(sSplittime);
                                            runner.SetResult(itime, 0);
                                        }
                                    }
                                    else
                                    {
                                        iSplitcode += 1000;
                                        while (lsplitCodes.Contains(iSplitcode))
                                        {
                                            iSplitcode += 1000;
                                        }

                                        int iSplittime = ParseTime(sSplittime);
                                        lsplitCodes.Add(iSplitcode);
                                        lsplitTimes.Add(iSplittime);

                                        runner.SetSplitTime(iSplitcode, iSplittime);
                                    }
                                }
                            }
                        }

                        runners.Add(runner);
                    }
                }
            }

            return(runners.ToArray());
        }
Example #38
0
        private IntPtr AddCallbacks()
        {
            connectionErrorDelegate = ConnectionError;
            endOfTrackDelegate = EndOfTrack;
            getAudioBufferStatsDelegate = GetAudioBufferStats;
            logMessageDelegate = LogMessage;
            loggedInDelegate = LoggedIn;
            loggedOutDelegate = LoggedOut;
            messageToUserDelegate = MessageToUser;
            metadataUpdatedDelegate = MetadataUpdated;
            musicDeliveryDelegate = MusicDelivery;
            notifyMainThreadDelegate = NotifyMainThread;
            offlineStatusUpdatedDelegate = OfflineStatusUpdated;
            playTokenLostDelegate = PlayTokenLost;
            startPlaybackDelegate = StartPlayback;
            stopPlaybackDelegate = StopPlayback;
            streamingErrorDelegate = StreamingError;
            userinfoUpdatedDelegate = UserinfoUpdated;

            var callbacks = new libspotify.sp_session_callbacks
                            {
                                connection_error = connectionErrorDelegate.GetFunctionPtr(),
                                end_of_track = endOfTrackDelegate.GetFunctionPtr(),
                                get_audio_buffer_stats = getAudioBufferStatsDelegate.GetFunctionPtr(),
                                log_message = logMessageDelegate.GetFunctionPtr(),
                                logged_in = loggedInDelegate.GetFunctionPtr(),
                                logged_out = loggedOutDelegate.GetFunctionPtr(),
                                message_to_user = messageToUserDelegate.GetFunctionPtr(),
                                metadata_updated = metadataUpdatedDelegate.GetFunctionPtr(),
                                music_delivery = musicDeliveryDelegate.GetFunctionPtr(),
                                notify_main_thread = notifyMainThreadDelegate.GetFunctionPtr(),
                                offline_status_updated = offlineStatusUpdatedDelegate.GetFunctionPtr(),
                                play_token_lost = playTokenLostDelegate.GetFunctionPtr(),
                                start_playback = startPlaybackDelegate.GetFunctionPtr(),
                                stop_playback = stopPlaybackDelegate.GetFunctionPtr(),
                                streaming_error = streamingErrorDelegate.GetFunctionPtr(),
                                userinfo_updated = userinfoUpdatedDelegate.GetFunctionPtr()
                            };

            var callbacksPtr = Marshal.AllocHGlobal(Marshal.SizeOf((object) callbacks));
            Marshal.StructureToPtr(callbacks, callbacksPtr, true);

            return callbacksPtr;
        }
Example #39
0
        // Token: 0x06001212 RID: 4626 RVA: 0x00038AD8 File Offset: 0x00036CD8
        private static List <MailboxDatabase> GetDatabasesOnMailboxServers(ITopologyConfigurationSession configSession, Server[] mailboxServers, LogMessageDelegate logger)
        {
            Dictionary <string, MailboxDatabase> allEnabledDatabases = PhysicalResourceLoadBalancing.GetAllEnabledDatabases(configSession, logger);
            List <MailboxDatabase> list = new List <MailboxDatabase>();

            if (allEnabledDatabases.Count > 0)
            {
                HashSet <string> hashSet = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
                foreach (Server server in mailboxServers)
                {
                    hashSet.Add(server.Name);
                }
                QueryFilter filter = new OrFilter(new QueryFilter[]
                {
                    new NotFilter(new ExistsFilter(DatabaseCopySchema.ParentObjectClass)),
                    new TextFilter(DatabaseCopySchema.ParentObjectClass, MailboxDatabase.MostDerivedClass, MatchOptions.FullString, MatchFlags.IgnoreCase)
                });
                ADObjectId rootId = ProvisioningCache.Instance.TryAddAndGetGlobalData <ADObjectId>(CannedProvisioningCacheKeys.DatabaseContainerId, new ProvisioningCache.CacheObjectGetterDelegate(configSession.GetDatabasesContainerId));
                PhysicalResourceLoadBalancing.LogVerbose(TaskVerboseStringHelper.GetFindDataObjectsVerboseString(configSession, typeof(DatabaseCopy), filter, rootId, false), logger);
                ADPagedReader <DatabaseCopy> adpagedReader = configSession.FindPaged <DatabaseCopy>(rootId, QueryScope.SubTree, filter, null, 0);
                int num = 0;
                foreach (DatabaseCopy databaseCopy in adpagedReader)
                {
                    MailboxDatabase mailboxDatabase;
                    if (databaseCopy.IsValid && allEnabledDatabases.TryGetValue(databaseCopy.DatabaseName, out mailboxDatabase) && !string.IsNullOrEmpty(mailboxDatabase.ServerName) && hashSet.Contains(mailboxDatabase.ServerName))
                    {
                        allEnabledDatabases.Remove(databaseCopy.DatabaseName);
                        list.Add(mailboxDatabase);
                    }
                    num++;
                }
                PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbGeneralTrace(string.Format("Retrieved '{0}' mailbox database copies. '{1}' databases have copies on selected mailbox servers.", num, list.Count)), logger);
            }
            if (list.Count <= 0)
            {
                PhysicalResourceLoadBalancing.LogVerbose(Strings.VerboseLbNoDatabaseFoundInAD, logger);
            }
            return(list);
        }
Example #40
0
 private static int CalculateIDFromSiCard(LogMessageDelegate logit, string si, string familyname, string givenname, long pid)
 {
     int iSi;
     if (!Int32.TryParse(si, out iSi))
     {
         //NO SICARD!
         logit("No SICard for Runner: " + familyname + " " + givenname);
     }
     int dbid = 0;
     if (pid < Int32.MaxValue && pid > 0)
     {
         dbid = (int) pid;
     }
     else if (iSi > 0)
     {
         dbid = -1*iSi;
     }
     else
     {
         logit("Cant generate DBID for runner: " + givenname + " " + familyname);
     }
     return dbid;
 }