Ignore:
Timestamp:
Jan 19, 2019, 6:12:21 PM (6 years ago)
Author:
alloc
Message:

Fixed game version compatibility of GamePrefs
Code style cleanup (mostly argument names)

Location:
binary-improvements/MapRendering/Web/API
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/MapRendering/Web/API/ExecuteConsoleCommand.cs

    r347 r351  
    44namespace AllocsFixes.NetConnections.Servers.Web.API {
    55        public class ExecuteConsoleCommand : WebAPI {
    6                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    7                         int permissionLevel) {
    8                         if (string.IsNullOrEmpty (req.QueryString ["command"])) {
    9                                 resp.StatusCode = (int) HttpStatusCode.BadRequest;
    10                                 Web.SetResponseTextContent (resp, "No command given");
     6                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     7                        int _permissionLevel) {
     8                        if (string.IsNullOrEmpty (_req.QueryString ["command"])) {
     9                                _resp.StatusCode = (int) HttpStatusCode.BadRequest;
     10                                Web.SetResponseTextContent (_resp, "No command given");
    1111                                return;
    1212                        }
    1313
    1414                        WebCommandResult.ResultType responseType =
    15                                 req.QueryString ["raw"] != null
     15                                _req.QueryString ["raw"] != null
    1616                                        ? WebCommandResult.ResultType.Raw
    17                                         : (req.QueryString ["simple"] != null
     17                                        : (_req.QueryString ["simple"] != null
    1818                                                ? WebCommandResult.ResultType.ResultOnly
    1919                                                : WebCommandResult.ResultType.Full);
    2020
    21                         string commandline = req.QueryString ["command"];
     21                        string commandline = _req.QueryString ["command"];
    2222                        string commandPart = commandline.Split (' ') [0];
    2323                        string argumentsPart = commandline.Substring (Math.Min (commandline.Length, commandPart.Length + 1));
     
    2626
    2727                        if (command == null) {
    28                                 resp.StatusCode = (int) HttpStatusCode.NotFound;
    29                                 Web.SetResponseTextContent (resp, "Unknown command");
     28                                _resp.StatusCode = (int) HttpStatusCode.NotFound;
     29                                Web.SetResponseTextContent (_resp, "Unknown command");
    3030                                return;
    3131                        }
     
    3434                                GameManager.Instance.adminTools.GetAdminToolsCommandPermission (command.GetCommands ());
    3535
    36                         if (permissionLevel > atcp.PermissionLevel) {
    37                                 resp.StatusCode = (int) HttpStatusCode.Forbidden;
    38                                 Web.SetResponseTextContent (resp, "You are not allowed to execute this command");
     36                        if (_permissionLevel > atcp.PermissionLevel) {
     37                                _resp.StatusCode = (int) HttpStatusCode.Forbidden;
     38                                Web.SetResponseTextContent (_resp, "You are not allowed to execute this command");
    3939                                return;
    4040                        }
    4141
    42                         resp.SendChunked = true;
    43                         WebCommandResult wcr = new WebCommandResult (commandPart, argumentsPart, responseType, resp);
     42                        _resp.SendChunked = true;
     43                        WebCommandResult wcr = new WebCommandResult (commandPart, argumentsPart, responseType, _resp);
    4444                        SdtdConsole.Instance.ExecuteAsync (commandline, wcr);
    4545                }
  • binary-improvements/MapRendering/Web/API/GetAllowedCommands.cs

    r325 r351  
    44namespace AllocsFixes.NetConnections.Servers.Web.API {
    55        public class GetAllowedCommands : WebAPI {
    6                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    7                         int permissionLevel) {
     6                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     7                        int _permissionLevel) {
    88                        JSONObject result = new JSONObject ();
    99                        JSONArray entries = new JSONArray ();
     
    1111                                AdminToolsCommandPermissions atcp =
    1212                                        GameManager.Instance.adminTools.GetAdminToolsCommandPermission (cc.GetCommands ());
    13                                 if (permissionLevel <= atcp.PermissionLevel) {
     13                                if (_permissionLevel <= atcp.PermissionLevel) {
    1414                                        string cmd = string.Empty;
    1515                                        foreach (string s in cc.GetCommands ()) {
     
    2929                        result.Add ("commands", entries);
    3030
    31                         WriteJSON (resp, result);
     31                        WriteJSON (_resp, result);
    3232                }
    3333
  • binary-improvements/MapRendering/Web/API/GetAnimalsLocation.cs

    r325 r351  
    88                private readonly List<EntityAnimal> animals = new List<EntityAnimal> ();
    99
    10                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    11                         int permissionLevel) {
     10                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     11                        int _permissionLevel) {
    1212                        JSONArray animalsJsResult = new JSONArray ();
    1313
     
    3636                        }
    3737
    38                         WriteJSON (resp, animalsJsResult);
     38                        WriteJSON (_resp, animalsJsResult);
    3939                }
    4040        }
  • binary-improvements/MapRendering/Web/API/GetHostileLocation.cs

    r325 r351  
    88                private readonly List<EntityEnemy> enemies = new List<EntityEnemy> ();
    99
    10                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    11                         int permissionLevel) {
     10                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     11                        int _permissionLevel) {
    1212                        JSONArray hostilesJsResult = new JSONArray ();
    1313
     
    3636                        }
    3737
    38                         WriteJSON (resp, hostilesJsResult);
     38                        WriteJSON (_resp, hostilesJsResult);
    3939                }
    4040        }
  • binary-improvements/MapRendering/Web/API/GetLandClaims.cs

    r332 r351  
    66namespace AllocsFixes.NetConnections.Servers.Web.API {
    77        public class GetLandClaims : WebAPI {
    8                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    9                         int permissionLevel) {
     8                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     9                        int _permissionLevel) {
    1010                        string requestedSteamID = string.Empty;
    1111
    12                         if (req.QueryString ["steamid"] != null) {
     12                        if (_req.QueryString ["steamid"] != null) {
    1313                                ulong lViewersSteamID;
    14                                 requestedSteamID = req.QueryString ["steamid"];
     14                                requestedSteamID = _req.QueryString ["steamid"];
    1515                                if (requestedSteamID.Length != 17 || !ulong.TryParse (requestedSteamID, out lViewersSteamID)) {
    16                                         resp.StatusCode = (int) HttpStatusCode.BadRequest;
    17                                         Web.SetResponseTextContent (resp, "Invalid SteamID given");
     16                                        _resp.StatusCode = (int) HttpStatusCode.BadRequest;
     17                                        Web.SetResponseTextContent (_resp, "Invalid SteamID given");
    1818                                        return;
    1919                                }
     
    2121
    2222                        // default user, cheap way to avoid 'null reference exception'
    23                         user = user ?? new WebConnection ("", IPAddress.None, 0L);
     23                        _user = _user ?? new WebConnection ("", IPAddress.None, 0L);
    2424
    25                         bool bViewAll = WebConnection.CanViewAllClaims (permissionLevel);
     25                        bool bViewAll = WebConnection.CanViewAllClaims (_permissionLevel);
    2626
    2727                        JSONObject result = new JSONObject ();
    28                         result.Add ("claimsize", new JSONNumber (GamePrefs.GetInt (EnumGamePrefs.LandClaimSize)));
     28                        result.Add ("claimsize", new JSONNumber (GamePrefs.GetInt (EnumUtils.Parse<EnumGamePrefs> ("LandClaimSize"))));
    2929
    3030                        JSONArray claimOwners = new JSONArray ();
     
    3535                                if (!string.IsNullOrEmpty (requestedSteamID) && !bViewAll) {
    3636                                        ownerFilters = new[] {
    37                                                 LandClaimList.SteamIdFilter (user.SteamID.ToString ()),
     37                                                LandClaimList.SteamIdFilter (_user.SteamID.ToString ()),
    3838                                                LandClaimList.SteamIdFilter (requestedSteamID)
    3939                                        };
    4040                                } else if (!bViewAll) {
    41                                         ownerFilters = new[] {LandClaimList.SteamIdFilter (user.SteamID.ToString ())};
     41                                        ownerFilters = new[] {LandClaimList.SteamIdFilter (_user.SteamID.ToString ())};
    4242                                } else {
    4343                                        ownerFilters = new[] {LandClaimList.SteamIdFilter (requestedSteamID)};
     
    7878                        }
    7979
    80                         WriteJSON (resp, result);
     80                        WriteJSON (_resp, result);
    8181                }
    8282        }
  • binary-improvements/MapRendering/Web/API/GetPlayerList.cs

    r332 r351  
    1717#endif
    1818
    19                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    20                         int permissionLevel) {
     19                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     20                        int _permissionLevel) {
    2121                        AdminTools admTools = GameManager.Instance.adminTools;
    22                         user = user ?? new WebConnection ("", IPAddress.None, 0L);
    23 
    24                         bool bViewAll = WebConnection.CanViewAllPlayers (permissionLevel);
     22                        _user = _user ?? new WebConnection ("", IPAddress.None, 0L);
     23
     24                        bool bViewAll = WebConnection.CanViewAllPlayers (_permissionLevel);
    2525
    2626                        // TODO: Sort (and filter?) prior to converting to JSON ... hard as how to get the correct column's data? (i.e. column name matches JSON object field names, not source data)
    2727
    2828                        int rowsPerPage = 25;
    29                         if (req.QueryString ["rowsperpage"] != null) {
    30                                 int.TryParse (req.QueryString ["rowsperpage"], out rowsPerPage);
     29                        if (_req.QueryString ["rowsperpage"] != null) {
     30                                int.TryParse (_req.QueryString ["rowsperpage"], out rowsPerPage);
    3131                        }
    3232
    3333                        int page = 0;
    34                         if (req.QueryString ["page"] != null) {
    35                                 int.TryParse (req.QueryString ["page"], out page);
     34                        if (_req.QueryString ["page"] != null) {
     35                                int.TryParse (_req.QueryString ["page"], out page);
    3636                        }
    3737
     
    5555                                }
    5656
    57                                 if (player_steam_ID == user.SteamID || bViewAll) {
     57                                if (player_steam_ID == _user.SteamID || bViewAll) {
    5858                                        JSONObject pos = new JSONObject ();
    5959                                        pos.Add ("x", new JSONNumber (p.LastPosition.x));
     
    9393                        IEnumerable<JSONObject> list = playerList;
    9494
    95                         foreach (string key in req.QueryString.AllKeys) {
     95                        foreach (string key in _req.QueryString.AllKeys) {
    9696                                if (!string.IsNullOrEmpty (key) && key.StartsWith ("filter[")) {
    9797                                        string filterCol = key.Substring (key.IndexOf ('[') + 1);
    9898                                        filterCol = filterCol.Substring (0, filterCol.Length - 1);
    99                                         string filterVal = req.QueryString.Get (key).Trim ();
     99                                        string filterVal = _req.QueryString.Get (key).Trim ();
    100100
    101101                                        list = ExecuteFilter (list, filterCol, filterVal);
     
    105105                        int totalAfterFilter = list.Count ();
    106106
    107                         foreach (string key in req.QueryString.AllKeys) {
     107                        foreach (string key in _req.QueryString.AllKeys) {
    108108                                if (!string.IsNullOrEmpty (key) && key.StartsWith ("sort[")) {
    109109                                        string sortCol = key.Substring (key.IndexOf ('[') + 1);
    110110                                        sortCol = sortCol.Substring (0, sortCol.Length - 1);
    111                                         string sortVal = req.QueryString.Get (key);
     111                                        string sortVal = _req.QueryString.Get (key);
    112112
    113113                                        list = ExecuteSort (list, sortCol, sortVal == "0");
     
    130130                        result.Add ("players", playersJsResult);
    131131
    132                         WriteJSON (resp, result);
     132                        WriteJSON (_resp, result);
    133133                }
    134134
    135135                private IEnumerable<JSONObject> ExecuteFilter (IEnumerable<JSONObject> _list, string _filterCol,
    136136                        string _filterVal) {
    137                         if (_list.Count () == 0) {
     137                        if (!_list.Any()) {
    138138                                return _list;
    139139                        }
     
    147147                                if (colType == typeof (JSONBoolean)) {
    148148                                        bool value = StringParsers.ParseBool (_filterVal);
    149                                         return _list.Where (line => ((JSONBoolean) line [_filterCol]).GetBool () == value);
     149                                        return _list.Where (_line => ((JSONBoolean) _line [_filterCol]).GetBool () == value);
    150150                                }
    151151
     
    157157                                        //Log.Out ("GetPlayerList: Filter on String with Regex '" + _filterVal + "'");
    158158                                        Regex matcher = new Regex (_filterVal, RegexOptions.IgnoreCase);
    159                                         return _list.Where (line => matcher.IsMatch (((JSONString) line [_filterCol]).GetString ()));
     159                                        return _list.Where (_line => matcher.IsMatch (((JSONString) _line [_filterCol]).GetString ()));
    160160                                }
    161161                        }
     
    198198                                }
    199199
    200                                 return _list.Where (delegate (JSONObject line) {
    201                                         double objVal = ((JSONNumber) line [_filterCol]).GetDouble ();
     200                                return _list.Where (delegate (JSONObject _line) {
     201                                        double objVal = ((JSONNumber) _line [_filterCol]).GetDouble ();
    202202                                        switch (matchType) {
    203203                                                case NumberMatchType.Greater:
     
    230230                                if (colType == typeof (JSONNumber)) {
    231231                                        if (_ascending) {
    232                                                 return _list.OrderBy (line => ((JSONNumber) line [_sortCol]).GetDouble ());
    233                                         }
    234 
    235                                         return _list.OrderByDescending (line => ((JSONNumber) line [_sortCol]).GetDouble ());
     232                                                return _list.OrderBy (_line => ((JSONNumber) _line [_sortCol]).GetDouble ());
     233                                        }
     234
     235                                        return _list.OrderByDescending (_line => ((JSONNumber) _line [_sortCol]).GetDouble ());
    236236                                }
    237237
    238238                                if (colType == typeof (JSONBoolean)) {
    239239                                        if (_ascending) {
    240                                                 return _list.OrderBy (line => ((JSONBoolean) line [_sortCol]).GetBool ());
    241                                         }
    242 
    243                                         return _list.OrderByDescending (line => ((JSONBoolean) line [_sortCol]).GetBool ());
     240                                                return _list.OrderBy (_line => ((JSONBoolean) _line [_sortCol]).GetBool ());
     241                                        }
     242
     243                                        return _list.OrderByDescending (_line => ((JSONBoolean) _line [_sortCol]).GetBool ());
    244244                                }
    245245
    246246                                if (_ascending) {
    247                                         return _list.OrderBy (line => line [_sortCol].ToString ());
    248                                 }
    249 
    250                                 return _list.OrderByDescending (line => line [_sortCol].ToString ());
     247                                        return _list.OrderBy (_line => _line [_sortCol].ToString ());
     248                                }
     249
     250                                return _list.OrderByDescending (_line => _line [_sortCol].ToString ());
    251251                        }
    252252
     
    255255
    256256
    257                 private bool NearlyEqual (double a, double b, double epsilon) {
    258                         double absA = Math.Abs (a);
    259                         double absB = Math.Abs (b);
    260                         double diff = Math.Abs (a - b);
    261 
    262                         if (a == b) {
     257                private bool NearlyEqual (double _a, double _b, double _epsilon) {
     258                        double absA = Math.Abs (_a);
     259                        double absB = Math.Abs (_b);
     260                        double diff = Math.Abs (_a - _b);
     261
     262                        if (_a == _b) {
    263263                                return true;
    264264                        }
    265265
    266                         if (a == 0 || b == 0 || diff < double.Epsilon) {
    267                                 return diff < epsilon;
    268                         }
    269 
    270                         return diff / (absA + absB) < epsilon;
     266                        if (_a == 0 || _b == 0 || diff < double.Epsilon) {
     267                                return diff < _epsilon;
     268                        }
     269
     270                        return diff / (absA + absB) < _epsilon;
    271271                }
    272272
  • binary-improvements/MapRendering/Web/API/GetPlayersLocation.cs

    r332 r351  
    66namespace AllocsFixes.NetConnections.Servers.Web.API {
    77        public class GetPlayersLocation : WebAPI {
    8                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    9                         int permissionLevel) {
     8                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     9                        int _permissionLevel) {
    1010                        AdminTools admTools = GameManager.Instance.adminTools;
    11                         user = user ?? new WebConnection ("", IPAddress.None, 0L);
     11                        _user = _user ?? new WebConnection ("", IPAddress.None, 0L);
    1212
    1313                        bool listOffline = false;
    14                         if (req.QueryString ["offline"] != null) {
    15                                 bool.TryParse (req.QueryString ["offline"], out listOffline);
     14                        if (_req.QueryString ["offline"] != null) {
     15                                bool.TryParse (_req.QueryString ["offline"], out listOffline);
    1616                        }
    1717
    18                         bool bViewAll = WebConnection.CanViewAllPlayers (permissionLevel);
     18                        bool bViewAll = WebConnection.CanViewAllPlayers (_permissionLevel);
    1919
    2020                        JSONArray playersJsResult = new JSONArray ();
     
    3737                                        }
    3838
    39                                         if (player_steam_ID == user.SteamID || bViewAll) {
     39                                        if (player_steam_ID == _user.SteamID || bViewAll) {
    4040                                                JSONObject pos = new JSONObject ();
    4141                                                pos.Add ("x", new JSONNumber (p.LastPosition.x));
     
    6161                        }
    6262
    63                         WriteJSON (resp, playersJsResult);
     63                        WriteJSON (_resp, playersJsResult);
    6464                }
    6565        }
  • binary-improvements/MapRendering/Web/API/GetPlayersOnline.cs

    r326 r351  
    66namespace AllocsFixes.NetConnections.Servers.Web.API {
    77        public class GetPlayersOnline : WebAPI {
    8                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    9                         int permissionLevel) {
     8                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     9                        int _permissionLevel) {
    1010                        JSONArray players = new JSONArray ();
    1111
     
    4646                        }
    4747
    48                         WriteJSON (resp, players);
     48                        WriteJSON (_resp, players);
    4949                }
    5050        }
  • binary-improvements/MapRendering/Web/API/GetServerInfo.cs

    r325 r351  
    55namespace AllocsFixes.NetConnections.Servers.Web.API {
    66        public class GetServerInfo : WebAPI {
    7                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    8                         int permissionLevel) {
     7                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     8                        int _permissionLevel) {
    99                        JSONObject serverInfo = new JSONObject ();
    1010
     
    4242
    4343
    44                         WriteJSON (resp, serverInfo);
     44                        WriteJSON (_resp, serverInfo);
    4545                }
    4646        }
  • binary-improvements/MapRendering/Web/API/GetStats.cs

    r325 r351  
    55namespace AllocsFixes.NetConnections.Servers.Web.API {
    66        public class GetStats : WebAPI {
    7                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    8                         int permissionLevel) {
     7                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     8                        int _permissionLevel) {
    99                        JSONObject result = new JSONObject ();
    1010
     
    1919                        result.Add ("animals", new JSONNumber (Animals.Instance.GetCount ()));
    2020
    21                         WriteJSON (resp, result);
     21                        WriteJSON (_resp, result);
    2222                }
    2323
  • binary-improvements/MapRendering/Web/API/GetWebUIUpdates.cs

    r325 r351  
    55namespace AllocsFixes.NetConnections.Servers.Web.API {
    66        public class GetWebUIUpdates : WebAPI {
    7                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    8                         int permissionLevel) {
     7                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     8                        int _permissionLevel) {
    99                        int latestLine;
    10                         if (req.QueryString ["latestLine"] == null ||
    11                             !int.TryParse (req.QueryString ["latestLine"], out latestLine)) {
     10                        if (_req.QueryString ["latestLine"] == null ||
     11                            !int.TryParse (_req.QueryString ["latestLine"], out latestLine)) {
    1212                                latestLine = 0;
    1313                        }
     
    2727                        result.Add ("newlogs", new JSONNumber (LogBuffer.Instance.LatestLine - latestLine));
    2828
    29                         WriteJSON (resp, result);
     29                        WriteJSON (_resp, result);
    3030                }
    3131
  • binary-improvements/MapRendering/Web/API/Null.cs

    r325 r351  
    44namespace AllocsFixes.NetConnections.Servers.Web.API {
    55        public class Null : WebAPI {
    6                 public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    7                         int permissionLevel) {
    8                         resp.ContentLength64 = 0;
    9                         resp.ContentType = "text/plain";
    10                         resp.ContentEncoding = Encoding.ASCII;
    11                         resp.OutputStream.Write (new byte[] { }, 0, 0);
     6                public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     7                        int _permissionLevel) {
     8                        _resp.ContentLength64 = 0;
     9                        _resp.ContentType = "text/plain";
     10                        _resp.ContentEncoding = Encoding.ASCII;
     11                        _resp.OutputStream.Write (new byte[] { }, 0, 0);
    1212                }
    1313        }
  • binary-improvements/MapRendering/Web/API/WebAPI.cs

    r332 r351  
    1717#endif
    1818
    19                 public static void WriteJSON (HttpListenerResponse resp, JSONNode root) {
     19                public static void WriteJSON (HttpListenerResponse _resp, JSONNode _root) {
    2020#if ENABLE_PROFILER
    2121                        jsonSerializeSampler.Begin ();
    2222#endif
    2323                        StringBuilder sb = new StringBuilder ();
    24                         root.ToString (sb);
     24                        _root.ToString (sb);
    2525#if ENABLE_PROFILER
    2626                        jsonSerializeSampler.End ();
     
    2828#endif
    2929                        byte[] buf = Encoding.UTF8.GetBytes (sb.ToString ());
    30                         resp.ContentLength64 = buf.Length;
    31                         resp.ContentType = "application/json";
    32                         resp.ContentEncoding = Encoding.UTF8;
    33                         resp.OutputStream.Write (buf, 0, buf.Length);
     30                        _resp.ContentLength64 = buf.Length;
     31                        _resp.ContentType = "application/json";
     32                        _resp.ContentEncoding = Encoding.UTF8;
     33                        _resp.OutputStream.Write (buf, 0, buf.Length);
    3434#if ENABLE_PROFILER
    3535                        netWriteSampler.End ();
     
    4545                }
    4646
    47                 public abstract void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user,
    48                         int permissionLevel);
     47                public abstract void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
     48                        int _permissionLevel);
    4949
    5050                public virtual int DefaultPermissionLevel () {
Note: See TracChangeset for help on using the changeset viewer.