internal IEnumerable <OnlineScript> ReadScripts()
        {
            if (ActiveStream.DataAvailable)
            {
                BeginRead();
            }
            else
            {
                yield break;
            }

            while (CanRead)
            {
                int    OriginalReadBufferPos = ReadBufferPos;
                string ScriptName            = null;

                OnlineScript NewScript;

                try
                {
                    ScriptName = ReadString();
                    OnlineScript ReadScript = DicOnlineScripts[ScriptName].Copy();

                    ReadScript.Read(this);
                    NewScript = ReadScript;
                }
                catch (Exception ex)
                {
                    if (!string.IsNullOrEmpty(ScriptName))
                    {
                        Trace.TraceError(DateTimeOffset.Now + " - Reading [" + ScriptName + "] : " + ex.Message);
                    }
                    else
                    {
                        Trace.TraceError(DateTimeOffset.Now + " - Reading " + ex.Message);
                    }

                    Trace.TraceError(DateTimeOffset.Now + " - Reading " + ex.StackTrace);
                    Trace.Flush();
                    ReadBufferPos = OriginalReadBufferPos;
                    yield break;
                }

                if (NewScript == null)
                {
                    yield break;
                }
                else
                {
                    yield return(NewScript);
                }
            }
        }
        internal List <OnlineScript> ReadAllScripts()
        {
            List <OnlineScript> ListReadScript = new List <OnlineScript>();

            if (ActiveStream.DataAvailable)
            {
                BeginRead();
            }
            else
            {
                return(ListReadScript);
            }

            while (CanRead)
            {
                int    OriginalReadBufferPos = ReadBufferPos;
                string ScriptName            = null;

                try
                {
                    ScriptName = ReadString();
                    OnlineScript NewScript = DicOnlineScripts[ScriptName].Copy();

                    NewScript.Read(this);

                    ListReadScript.Add(NewScript);
                }
                catch (Exception ex)
                {
                    if (!string.IsNullOrEmpty(ScriptName))
                    {
                        Trace.TraceError(DateTimeOffset.Now + " - Reading [" + ScriptName + "] : " + ex.Message);
                    }
                    else
                    {
                        Trace.TraceError(DateTimeOffset.Now + " - Reading " + ex.Message);
                    }

                    Trace.TraceError(DateTimeOffset.Now + " - Reading " + ex.StackTrace);
                    Trace.Flush();
                    ReadBufferPos = OriginalReadBufferPos;
                    return(ListReadScript);
                }
            }

            return(ListReadScript);
        }
示例#3
0
        internal IEnumerable <OnlineScript> ReadScripts()
        {
            if (ActiveStream.DataAvailable)
            {
                BeginRead();
            }
            else
            {
                yield break;
            }

            while (CanRead)
            {
                string       ScriptName = ReadString();
                OnlineScript NewScript  = DicOnlineScripts[ScriptName].Copy();

                NewScript.Read(this);

                yield return(NewScript);
            }
        }
        internal OnlineScript ReadScript()
        {
            if (ActiveStream.DataAvailable)
            {
                BeginRead();
            }
            else
            {
                return(null);
            }

            while (CanRead)
            {
                string       ScriptName = ReadString();
                OnlineScript NewScript  = DicOnlineScripts[ScriptName].Copy();

                NewScript.Read(this);

                return(NewScript);
            }

            return(null);
        }