コード例 #1
0
        /// <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);
        }
コード例 #2
0
        public bool GenerateRequestAndDoJob(object context)
        {
            var state = _sessionClient.TransObject2 <ModelStatus>((ModelPlayerInfo)context, RequestTypePackage, ResponseTypePackage);

            return(state.Status == 0);
        }