/// <summary> /// Request from server file contains approved folders /// if file exist and matched then return true else false /// Запрос у сервера списка разрешенных папок /// после получения этого файла мы сравниваем с тем что был ранее, если не было или не совпадает возвращаем false иначе true /// </summary> /// <param name="context">File Name</param> // имя сервера для которого проверяем вида 10.10.10.10.PortNumber /// <returns>Ответ</returns> public bool GenerateRequestAndDoJob(object context) { var ip = context as string; if (string.IsNullOrEmpty(ip)) { return(false); } // first row of ModelModsFiles second contains Steam var approvedFolders = _sessionClient.TransObject2 <ModelModsFiles>(new ModelInt(), RequestTypePackage, ResponseTypePackage); // каждый запрос-отклик к серверу ~100-200 мс, получаем за один запрос все файлы //var steamApprovedFolders = _sessionClient.TransObject2<ModelModsFiles>(new ModelInt() { Value = 1 }, RequestTypePackage, ResponseTypePackage); //Если на сервере настройка не задана, то считаем что проверка пройдена if (approvedFolders == null) { return(true); } var modsFileName = GetModsApprovedFoldersFileName(ip); var steamFileName = GetSteamApprovedFoldersFileName(ip); var modsConfigName = Path.Combine(GenFilePaths.ConfigFolderPath, "ModsConfig.xml"); //%appdata%\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Config var modsListFile = approvedFolders.Files[0].Hash; var steamListFile = approvedFolders.Files[1].Hash; var modsConfig = approvedFolders.Files[2].Hash; var result = checkAndCreateFile(modsFileName, modsListFile) & checkAndCreateFile(steamFileName, steamListFile) & checkAndCreateFile(modsConfigName, modsConfig); return(result); }
public bool GenerateRequestAndDoJob(object context) { var state = _sessionClient.TransObject2 <ModelStatus>((ModelPlayerInfo)context, RequestTypePackage, ResponseTypePackage); return(state.Status == 0); }