Esempio n. 1
0
        public void Build_Script_Finish(EngineState s, Dictionary <string, string> localVars)
        {
            if (s.DisableLogger)
            {
                return;
            }

            if (s.DelayedLogging)
            {
                DB.InsertAll(BuildLogPool);
                BuildLogPool.Clear();
            }

            if (s.DisableLogger == false)
            {
                long buildId  = s.BuildId;
                long scriptId = s.ScriptId;

                // Scripts
                scriptDict.TryRemove(scriptId, out Tuple <DB_Script, Stopwatch> tuple);
                if (tuple == null)
                {
                    throw new KeyNotFoundException($"Unable to find DB_Script Instance, id = {scriptId}");
                }

                DB_Script dbScript = tuple.Item1;
                Stopwatch watch    = tuple.Item2;
                watch.Stop();

                dbScript.ElapsedMilliSec = watch.ElapsedMilliseconds;
                if (localVars != null)
                {
                    List <DB_Variable> varLogs = new List <DB_Variable>(localVars.Count);
                    foreach (var kv in localVars)
                    {
                        DB_Variable dbVar = new DB_Variable()
                        {
                            BuildId  = buildId,
                            ScriptId = scriptId,
                            Type     = VarsType.Local,
                            Key      = kv.Key,
                            Value    = kv.Value,
                        };
                        varLogs.Add(dbVar);

                        // Fire Event
                        VariableUpdated?.Invoke(this, new VariableUpdateEventArgs(dbVar));
                    }
                    DB.InsertAll(varLogs);
                }

                DB.Update(dbScript);

                // Fire Event
                if (s.DelayedLogging)
                {
                    ScriptUpdated?.Invoke(this, new ScriptUpdateEventArgs(dbScript));
                }
            }
        }
Esempio n. 2
0
        public long Build_Script_Init(EngineState s, Script p, int order)
        {
            if (s.DisableLogger)
            {
                return(0);
            }

            long      buildId  = s.BuildId;
            DB_Script dbScript = new DB_Script()
            {
                BuildId = buildId,
                Level   = p.Level,
                Order   = order,
                Name    = p.Title,
                Path    = p.ShortPath,
                Version = p.Version,
            };

            DB.Insert(dbScript);
            scriptDict[dbScript.Id] = new Tuple <DB_Script, Stopwatch>(dbScript, Stopwatch.StartNew());

            // Fire Event
            if (!s.DelayedLogging)
            {
                ScriptUpdated?.Invoke(this, new ScriptUpdateEventArgs(dbScript));
            }

            return(dbScript.Id);
        }