Example #1
0
        /// <summary>
        /// 更新系统运行信息
        /// </summary>
        /// <param name="systemId"></param>
        /// <param name="updateFiles"></param>
        /// <param name="reset"></param>
        private static void UpdateSystemRunInfo(int systemId, IEnumerable <RunFile> updateFiles, bool reset = false)
        {
            SystemRunInfo newRunInfo = null;

            if (!reset)
            {
                newRunInfo = DeserializeRunInfo(systemId);
            }

            if (newRunInfo == null)
            {
                newRunInfo = new SystemRunInfo
                {
                    RunFiles = new DicIgnoreCase <string>(),
                };
            }

            var runFiles = newRunInfo.RunFiles;

            foreach (var f in updateFiles)
            {
                if (f.Status == RunFileStatus.Update)
                {
                    runFiles[f.Path] = f.Tag;
                }
                else
                { // delete
                    runFiles.Remove(f.Path);
                }
            }

            newRunInfo.Ver = DateTime.Now.ToString("yyyyMMddHHmmss");

            SerializeRunInfo(systemId, newRunInfo);
        }
Example #2
0
        private static void SerializeRunInfo(int systemId, SystemRunInfo runInfo)
        {
            var jsonFile = GetSystemRunInfoFile(systemId);

            //using (var writer = new BinaryWriter(File.Create(jsonFile), Encoding.UTF8))
            //{
            //    writer.Write(runInfo.Ver);
            //    writer.Write(runInfo.RunFiles.Count);

            //    foreach (var e in runInfo.RunFiles)
            //    {
            //        writer.Write(e.Key);
            //        writer.Write(e.Value);
            //    }
            //}

            File.WriteAllText(jsonFile, JsonConvert.SerializeObject(runInfo,
                                                                    new JsonSerializerSettings
            {
                Formatting = Formatting.Indented,
            }), Encoding.UTF8);
        }