Example #1
0
        /// <summary>
        /// Open logs and group to cargo, and return.
        /// </summary>
        /// <param name="openDir">Principal, PublicLogSavepath</param>
        /// <param name="logCargoFilter"></param>
        /// <param name="logDatFilter"></param>
        /// <returns></returns>
        public List <DataCargo> OpenPublicDataCargo(string openDir, OpenFileFilter logCargoFilter, OpenFileFilter logDatFilter)
        {
            var logCargos = new List <DataCargo>();

            string[] cargoDirs = Directory.GetDirectories(openDir, logCargoFilter.ToString(), SearchOption.TopDirectoryOnly);
            var      bs        = new JsonSaves();

            foreach (var cargoDir in cargoDirs)
            {
                string[] logs = Directory.GetFiles(cargoDir, $"{logDatFilter.ToString()}{FileEndChar.DataLog}.dat", SearchOption.TopDirectoryOnly);

                if (logs.Length <= 0)
                {
                    continue;
                }

                DataCargo lc = new DataCargo();

                foreach (var logfile in logs) //Get each logs in cargo(cargo = folder, log = .dat) only for this
                {
                    var log = bs.TransferToObject <Data>(logfile);
                    if (log != default)
                    {
                        lc.Load(log);
                    }
                }

                lc.Lock();
                logCargos.Add(lc);
            }
            return(logCargos);
        }
 public override void OnExecute(DataCargo <int> data)
 {
     data.Payload += 1;
 }
 public override void OnExecute(DataCargo <string> data)
 {
     data.Payload += "injected value";
 }