using System.ComponentModel;
using WCS.Core;
using WCS.Service.Systems;
using WCS.WorkEngineering.Worlds;

namespace WCS.Service.Worlds
{
    /// <summary>
    ///  数据采集世界，
    ///  该世界不进行任何的交互处理，仅进行硬件数据采集
    /// </summary>
    [Description("数据采集世界")]
    public class DataCollectionWorld : MainWorld
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public DataCollectionWorld()
        {
        }

        /// <summary>
        /// 更新后执行,重写改方法后请自行添加执行内容
        /// 执行内容:清空日志队列
        /// </summary>
        protected override void AfterUpdate()
        {
            #region 日志处理

            //TODO:暂时仅将日志记录至文本文件
            if (Logs.Count() > 0)
            {
                //var time = $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:FF")}";
                //var fst = Logs.First();
                //var dir = $"Logs\\{DateTime.Now.ToString("yyyy-MM-dd")}\\{fst.Channel.World}\\{fst.Channel.System}\\";
                //if (!Directory.Exists(dir))
                //    Directory.CreateDirectory(dir);

                //foreach (var log in Logs)
                //{
                //    var msg = $"--------------------{log.Time}[{Thread.CurrentThread.ManagedThreadId}]--------------------\n{log}\n";
                //    File.AppendAllText(Path.Combine(dir, $"{log.Log.Message.Split(":")[0]}.txt"), msg);
                //}
            }

            #endregion 日志处理

            World.GetSystemInstance<DataCollectionSysyem>().Invoke(true);
        }
    }
}
