public static ActionResult JsonFileAppsettings(Session session) { try { if (session == null) { throw new ArgumentNullException("session"); } CustomActionData data = null; if(session["INSTALLATIONMODE"] == "virtualdirectory") data = new CustomActionData(session["JsonFileAppsettingsVirtualDirectory"]); else data = new CustomActionData(session["JsonFileAppsettingsWebsite"]); string file = data.ContainsKey("File") ? data["File"] : ""; string rootKey = data.ContainsKey("RootKey") ? data["RootKey"] : ""; string key = data.ContainsKey("Key") ? data["Key"] : ""; string value = data.ContainsKey("Value") ? data["Value"] : ""; if (value.IndexOf("[") > -1 && value.IndexOf("]") > -1) value = session.Format(data["Value"]); var dir = session["INSTALLDIR"]; if (dir == null) return ActionResult.Success; file = Path.Combine(dir, file); if ( !File.Exists(file)) return ActionResult.Success; ReplaceInJsonFile(file, rootKey, key, value); return ActionResult.Success; } catch (Exception e) { if (session != null) session.Log("Custom Action Exception " + e); } return ActionResult.Failure; }