/// <summary> /// Преобразует биндинг в префикс листенера /// </summary> /// <returns></returns> public override string ToString() { if (!AppName.EndsWith("/")) { AppName += "/"; } if (!AppName.StartsWith("/")) { AppName = "/" + AppName; } return(Schema.ToString().ToLower() + "://" + Interface + ":" + Port + AppName); }
private void TryProcessUnknown() { string AppName; using (MySqlDataReader MainReader = DbWorker.ExecuteReader("SELECT `Name` FROM `Apps` WHERE `AppID` = @AppID LIMIT 1", new MySqlParameter("AppID", AppID))) { if (!MainReader.Read()) { return; } AppName = DbWorker.GetString("Name", MainReader); } bool historyChanged = false; using (MySqlDataReader Reader = DbWorker.ExecuteReader("SELECT `Name`, `Key`, `Value` FROM `AppsInfo` INNER JOIN `KeyNames` ON `AppsInfo`.`Key` = `KeyNames`.`ID` WHERE `AppID` = @AppID", new MySqlParameter("AppID", AppID))) { while (Reader.Read()) { if (!DbWorker.GetString("Name", Reader).StartsWith("website", StringComparison.Ordinal)) { MakeHistory("removed_key", Reader.GetUInt32("Key"), DbWorker.GetString("Value", Reader)); historyChanged = true; } } } DbWorker.ExecuteNonQuery("DELETE FROM `Apps` WHERE `AppID` = @AppID", new MySqlParameter("@AppID", AppID)); DbWorker.ExecuteNonQuery("DELETE FROM `AppsInfo` WHERE `AppID` = @AppID", new MySqlParameter("@AppID", AppID)); DbWorker.ExecuteNonQuery("DELETE FROM `Store` WHERE `AppID` = @AppID", new MySqlParameter("@AppID", AppID)); if (!AppName.StartsWith(SteamDB.UNKNOWN_APP, StringComparison.Ordinal)) { MakeHistory("deleted_app", 0, AppName); historyChanged = true; } // TODO: This is a dirty hack so we somehow track these app changes if (!historyChanged && !Settings.IsFullRun) { MakeHistory("removed_key", GetKeyNameID("root_change_number"), "0", "0"); } }