private static void OnChanged(object source, FileSystemEventArgs e) { SVNHelper.htpasswdRead(); foreach (var item in ProgramSetting.APIConfig) { bool is_Success = false; int reTryCount = 3; if (is_Success == false && reTryCount > 0) { // 加密发送消息 JsonPostModel jpm = new JsonPostModel(); jpm.Agent = JsonPostModelAgent.Client.ToString(); jpm.DataType = JsonPostModelDataType.AllAuthInfo.ToString(); jpm.Data = htpasswdUserAndPassword.UsersTable; is_Success = WebFunctionHelper.PostToAPI(EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV), item.APIurl, item.SecretKey, item.IV); if (is_Success) { is_Success = true; } else { LogHelper.WriteLog("发送Repo更新信息出现错误", LogHelper.Log4NetLevel.Error); reTryCount--; Thread.Sleep(3000); } } else { LogHelper.WriteLog("发送Repo更新信息重试3次之后依旧出错!", LogHelper.Log4NetLevel.Error); } } }
// 文件/文件夹删除处理 private static void OnDeleted(object source, FileSystemEventArgs e) { // 如果是目录被删除则为Repo被删除 var dirName = FileHelper.GetGrampaDirectoryName(e.FullPath); if (File.GetAttributes(e.FullPath.Replace(e.Name, "")) == FileAttributes.Directory) { //删除这个Repo RepoDataSourcePermission.RepoPermissons.Remove(dirName); LogHelper.WriteLog(e.FullPath + "\n repo 被删除", LogHelper.Log4NetLevel.Debug); foreach (var item in ProgramSetting.APIConfig) { bool is_Success = false; int reTryCount = 3; if (is_Success == false && reTryCount > 0) { // 删除repo DelRepo dr = new DelRepo(); dr.RepoName = dirName; // 加密发送消息 JsonPostModel jpm = new JsonPostModel(); jpm.Agent = JsonPostModelAgent.Client.ToString(); jpm.DataType = JsonPostModelDataType.DelRepo.ToString(); jpm.Data = dr; is_Success = WebFunctionHelper.PostToAPI(EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV), item.APIurl, item.SecretKey, item.IV); if (is_Success) { is_Success = true; } else { LogHelper.WriteLog("发送删除Repo信息出现错误", LogHelper.Log4NetLevel.Error); reTryCount--; Thread.Sleep(3000); } } else { LogHelper.WriteLog("发送删除Repo信息重试3次之后依旧出错!", LogHelper.Log4NetLevel.Error); } } } else { Console.WriteLine("文件被删除"); } }
// 文件/文件夹改变处理 private static void OnChanged(object source, FileSystemEventArgs e) { // e.FullPath 是FileInfo类型 直接使用可输出完整路径 var change = SVNHelper.ReadRepositoriesFile(e.FullPath); // 将变化写入 SVNHelper.MergeRepoDictionary(RepoDataSourcePermission.RepoPermissons, change); LogHelper.WriteLog(e.FullPath + "\n 文件发生变化", LogHelper.Log4NetLevel.Debug); foreach (var item in ProgramSetting.APIConfig) { bool is_Success = false; int reTryCount = 3; if (is_Success == false && reTryCount > 0) { // 加密发送消息 JsonPostModel jpm = new JsonPostModel(); jpm.Agent = JsonPostModelAgent.Client.ToString(); jpm.DataType = JsonPostModelDataType.ChangeRepo.ToString(); jpm.Data = change; is_Success = WebFunctionHelper.PostToAPI(EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV), item.APIurl, item.SecretKey, item.IV); if (is_Success) { is_Success = true; } else { LogHelper.WriteLog("发送Repo更新信息出现错误", LogHelper.Log4NetLevel.Error); reTryCount--; Thread.Sleep(3000); } } else { LogHelper.WriteLog("发送Repo更新信息重试3次之后依旧出错!", LogHelper.Log4NetLevel.Error); } } }