From d2ead610613d4462600d3725827b65bad089efe8 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Sun, 11 Feb 2018 19:17:20 -0600 Subject: [PATCH] Moved the welcome plugin announcements into the plugin configuration EF optimizations for webfront requests removed FindAll command and moved it's functionality into find fixed undefined link on admin page --- Admin/Manager.cs | 1 - Admin/Server.cs | 1 + Admin/WebService.cs | 49 +++------- Admin/lib/SharedLibrary.dll | Bin 152064 -> 154112 bytes Plugins/SimpleStats/Helpers/StatManager.cs | 4 + Plugins/SimpleStats/Helpers/StreakMessage.cs | 2 +- Plugins/Tests/Plugin.cs | 88 ++++++++++++------ Plugins/Welcome/Plugin.cs | 62 ++++++++---- SharedLibrary/Commands/NativeCommands.cs | 54 +++-------- SharedLibrary/Database/Importer.cs | 14 ++- SharedLibrary/Helpers/ConfigurationManager.cs | 8 +- SharedLibrary/Services/ClientService.cs | 40 +++++++- 12 files changed, 191 insertions(+), 132 deletions(-) diff --git a/Admin/Manager.cs b/Admin/Manager.cs index 958462be9..f7dfbfd31 100644 --- a/Admin/Manager.cs +++ b/Admin/Manager.cs @@ -172,7 +172,6 @@ namespace IW4MAdmin Commands.Add(new CListBanInfo()); Commands.Add(new CListAlias()); Commands.Add(new CExecuteRCON()); - Commands.Add(new CFindAllPlayers()); Commands.Add(new CPlugins()); Commands.Add(new CIP()); Commands.Add(new CMask()); diff --git a/Admin/Server.cs b/Admin/Server.cs index 0baa33750..69eac6ed9 100644 --- a/Admin/Server.cs +++ b/Admin/Server.cs @@ -318,6 +318,7 @@ namespace IW4MAdmin throw new SharedLibrary.Exceptions.CommandException($"{E.Origin} specified invalid player for \"{C.Name}\""); } } + E.Data = E.Data.Trim(); return C; } diff --git a/Admin/WebService.cs b/Admin/WebService.cs index f9647707c..0f32cc1f1 100644 --- a/Admin/WebService.cs +++ b/Admin/WebService.cs @@ -97,7 +97,6 @@ namespace IW4MAdmin { var f = File.ReadAllBytes(path.Replace("/", "\\").Substring(1)); - if (path.Contains(".css")) { HttpResponse css = new HttpResponse() @@ -383,9 +382,11 @@ namespace IW4MAdmin if (S != null) { - // fixme - Func predicate = c => c.IPAddress == querySet["IP"].ConvertToIP(); - Player admin = (await ApplicationManager.GetInstance().GetClientService().Find(predicate)).FirstOrDefault()?.AsPlayer(); + int ip = querySet["ip"].ConvertToIP(); + var admins = (await (ApplicationManager.GetInstance().GetClientService() as ClientService).GetPrivilegedClients()); + Player admin = admins.FirstOrDefault(a => a.IPAddress == ip)?.AsPlayer(); + if (ip == 16777343) + admin = admins.First(a => a.IPAddress == 0).AsPlayer(); if (admin == null) admin = new Player() { Name = "RestUser"}; @@ -626,9 +627,10 @@ namespace IW4MAdmin contentType = GetContentType(), content = Admins.Select(a => new { - ClientId = a.ClientId, - Level = a.Level, - Name = a.Name + a.ClientId, + a.Level, + a.Name, + playerID = a.ClientId }), additionalHeaders = new Dictionary() }; @@ -746,15 +748,16 @@ namespace IW4MAdmin public async Task GetPage(System.Collections.Specialized.NameValueCollection querySet, IDictionary headers) { List pInfo = new List(); - IList matchedPlayers = new List(); + IList matchedPlayers = new List(); HttpResponse resp = new HttpResponse() { contentType = GetContentType(), additionalHeaders = new Dictionary() }; - Func predicate = c => c.IPAddress == querySet["IP"].ConvertToIP() && c.Level > Player.Permission.Trusted; - bool authed = (await ApplicationManager.GetInstance().GetClientService().Find(predicate)).Count > 0 - || querySet["IP"] == "127.0.0.1"; + + int ip = querySet["IP"].ConvertToIP(); + var admins = (await (ApplicationManager.GetInstance().GetClientService() as ClientService).GetPrivilegedClients()); + bool authed = admins.FirstOrDefault(c => c.IPAddress == ip) != null || ip == 16777343; bool recent = false; bool individual = querySet["id"] != null; @@ -770,7 +773,7 @@ namespace IW4MAdmin else if (querySet["name"] != null) { - matchedPlayers = await ApplicationManager.GetInstance().GetClientService().Find(c => c.Name.Contains(querySet["name"])); + matchedPlayers = (await ApplicationManager.GetInstance().GetClientService().GetClientByName(querySet["name"])); } else if (querySet["recent"] != null) @@ -865,15 +868,6 @@ namespace IW4MAdmin public string name; } - [Serializable] - struct PageInfo - { - public string pageName; - public string pagePath; - public string pageType; - public bool visible; - } - [Serializable] struct PlayerInfo { @@ -903,17 +897,4 @@ namespace IW4MAdmin public string penaltyTime; public string Expires; } - - [Serializable] - struct CommandInfo - { - public List Result; - } - - [Serializable] - class PrivilegedUsers - { - public Player.Permission Permission { get; set; } - public List Players { get; set; } - } } \ No newline at end of file diff --git a/Admin/lib/SharedLibrary.dll b/Admin/lib/SharedLibrary.dll index c06a95ac181febd098d5bde0faad8b5d68707972..c460ae86afa37b0a2ae0fceda8e01d125c5a5ee8 100644 GIT binary patch literal 154112 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®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 ao$Bd`?R7qC_}rT?c16ZNC;tCHf&T}~9LpI1 literal 152064 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 V`kt`iLtU?91N=Y!{{KgT{|78A4|o6o diff --git a/Plugins/SimpleStats/Helpers/StatManager.cs b/Plugins/SimpleStats/Helpers/StatManager.cs index d1caf6fcf..a7c4c713e 100644 --- a/Plugins/SimpleStats/Helpers/StatManager.cs +++ b/Plugins/SimpleStats/Helpers/StatManager.cs @@ -331,6 +331,10 @@ namespace StatsPlugin.Helpers public async Task AddMessageAsync(int clientId, int serverId, string message) { + // the web users can have no account + if (clientId < 1) + return; + var messageSvc = ContextThreads[serverId].MessageSvc; messageSvc.Insert(new EFClientMessage() { diff --git a/Plugins/SimpleStats/Helpers/StreakMessage.cs b/Plugins/SimpleStats/Helpers/StreakMessage.cs index f1a390219..3bbe6702d 100644 --- a/Plugins/SimpleStats/Helpers/StreakMessage.cs +++ b/Plugins/SimpleStats/Helpers/StreakMessage.cs @@ -21,7 +21,7 @@ namespace StatsPlugin.Helpers { var killstreakMessages = new Dictionary() { - { -1, "Try not to kill yourself anymore" }, + { -1, "Try not to kill yourself anymore" }, { 5, "Great job! You're on a ^55 killstreak!" }, { 10, "Amazing! ^510 kills ^7without dying!" }, { 25, "You better call in that nuke, ^525 killstreak!" } diff --git a/Plugins/Tests/Plugin.cs b/Plugins/Tests/Plugin.cs index 5df15f00d..c97da212d 100644 --- a/Plugins/Tests/Plugin.cs +++ b/Plugins/Tests/Plugin.cs @@ -12,6 +12,7 @@ using SharedLibrary.Helpers; using SharedLibrary.Objects; using System.Text.RegularExpressions; using StatsPlugin.Models; +using SharedLibrary.Services; namespace IW4MAdmin.Plugins { @@ -59,10 +60,35 @@ namespace IW4MAdmin.Plugins public async Task OnLoadAsync(IManager manager) { +#if DO_IMPORT + var svc = new GenericRepository(); + svc.Insert(new EFServer() + { + Active = true, + Port = 28960, + ServerId = Math.Abs("127.0.0.1:28960".GetHashCode()), + }); + + svc.Insert(new EFServer() + { + Active = true, + Port = 28965, + ServerId = Math.Abs("127.0.0.1:28965".GetHashCode()), + }); + + svc.Insert(new EFServer() + { + Active = true, + Port = 28970, + ServerId = Math.Abs("127.0.0.1:28970".GetHashCode()), + }); + + svc.SaveChanges(); +#endif Interval = DateTime.Now; var clients = new List(); var oldClients = new Dictionary(); - #region CLIENTS +#region CLIENTS if (File.Exists("import_clients.csv")) { manager.GetLogger().WriteVerbose("Beginning import of existing clients"); @@ -72,10 +98,10 @@ namespace IW4MAdmin.Plugins { string[] fields = Regex.Replace(line, "\".*\"", "").Split(','); fields.All(f => - { - f = f.StripColors().Trim(); - return true; - }); + { + f = f.StripColors().Trim(); + return true; + }); if (fields.Length != 11) { @@ -104,13 +130,13 @@ namespace IW4MAdmin.Plugins clients.Add(client); oldClients.Add(client.ClientId, client); } -//#if DO_IMPORT + //#if DO_IMPORT clients = clients.Distinct().ToList(); clients = clients .GroupBy(c => new { c.Name, c.IPAddress }) - .Select(c => c.FirstOrDefault()) - .ToList(); + .Select(c => c.FirstOrDefault()) + .ToList(); //newClients = clients.ToList(); //newClients.ForEach(c => c.ClientId = 0); @@ -126,10 +152,10 @@ namespace IW4MAdmin.Plugins { manager.GetLogger().WriteError("Saving imported clients failed"); } -//#endif + //#endif } - #endregion - #region PENALTIES +#endregion +#region PENALTIES if (File.Exists("import_penalties.csv")) { var penalties = new List(); @@ -140,10 +166,10 @@ namespace IW4MAdmin.Plugins string[] fields = Regex.Replace(line, "\".*,.*\"", comma).Split(','); fields.All(f => - { - f = f.StripColors().Trim(); - return true; - }); + { + f = f.StripColors().Trim(); + return true; + }); if (fields.Length != 7) { @@ -151,7 +177,7 @@ namespace IW4MAdmin.Plugins return; } - if (fields[2].Contains("0110") || fields[2].Contains("0000000")) + if (fields[2].Substring(0, 5) == "01100" || fields[2].Contains("0000000")) continue; try { @@ -159,13 +185,17 @@ namespace IW4MAdmin.Plugins var expires = DateTime.Parse(fields[6]); var when = DateTime.Parse(fields[5]); + var penaltyType = (Penalty.PenaltyType)Int32.Parse(fields[0]); + if (penaltyType == Penalty.PenaltyType.Ban) + expires = DateTime.MaxValue; + var penalty = new Penalty() { - Type = (Penalty.PenaltyType)Int32.Parse(fields[0]), + Type = penaltyType, Expires = expires == DateTime.MinValue ? when : expires, Punisher = new SharedLibrary.Database.Models.EFClient() { NetworkId = fields[3].ConvertLong() }, Offender = new SharedLibrary.Database.Models.EFClient() { NetworkId = fields[2].ConvertLong() }, - Offense = fields[1], + Offense = fields[1].Replace("\"", "").Trim(), Active = true, When = when, }; @@ -184,8 +214,8 @@ namespace IW4MAdmin.Plugins manager.GetLogger().WriteVerbose($"Imported {penalties.Count} penalties"); //#endif } - #endregion - #region CHATHISTORY +#endregion +#region CHATHISTORY // load the entire database lol var cls = manager.GetClientService().Find(c => c.Active).Result; @@ -199,10 +229,10 @@ namespace IW4MAdmin.Plugins string[] fields = Regex.Replace(line, "\".*,.*\"", comma).Split(','); fields.All(f => - { - f = f.StripColors().Trim(); - return true; - }); + { + f = f.StripColors().Trim(); + return true; + }); if (fields.Length != 4) { @@ -239,8 +269,8 @@ namespace IW4MAdmin.Plugins manager.GetLogger().WriteVerbose($"Read {chatHistory.Count} messages for import"); SharedLibrary.Database.Importer.ImportSQLite(chatHistory); } - #endregion - #region STATS +#endregion +#region STATS if (File.Exists("import_stats.csv")) { var stats = new List(); @@ -260,8 +290,8 @@ namespace IW4MAdmin.Plugins try { if (fields[0].Substring(0, 5) == "01100") - continue; - + continue; + long id = fields[0].ConvertLong(); var client = cls.First(c => c.NetworkId == id); @@ -300,7 +330,7 @@ namespace IW4MAdmin.Plugins manager.GetLogger().WriteError("Saving imported stats failed"); } } - #endregion +#endregion } public async Task OnTickAsync(Server S) diff --git a/Plugins/Welcome/Plugin.cs b/Plugins/Welcome/Plugin.cs index a5307230e..9714d7091 100644 --- a/Plugins/Welcome/Plugin.cs +++ b/Plugins/Welcome/Plugin.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using SharedLibrary.Network; using SharedLibrary.Objects; +using SharedLibrary.Helpers; namespace Welcome_Plugin { @@ -46,13 +47,12 @@ namespace Welcome_Plugin return "fourth"; case 5: return "fifth"; - case 100: + /* case 100: return "One-Hundreth (amazing!)"; case 500: return "you're really ^5dedicated ^7to this server! This is your ^5500th^7"; case 1000: - return "you deserve a medal. it's your ^11000th^7"; - + return "you deserve a medal. it's your ^11000th^7";*/ default: return connection.ToString() + Prefix; } @@ -64,8 +64,11 @@ namespace Welcome_Plugin public string Name => "Welcome Plugin"; + private Dictionary Configs; + public async Task OnLoadAsync(IManager manager) { + await Task.FromResult(Configs = new Dictionary()); } public async Task OnUnloadAsync() @@ -81,34 +84,59 @@ namespace Welcome_Plugin if (E.Type == Event.GType.Connect) { Player newPlayer = E.Origin; - + var cfg = Configs[S.GetHashCode()]; if (newPlayer.Level >= Player.Permission.Trusted && !E.Origin.Masked) - await E.Owner.Broadcast(Utilities.ConvertLevelToColor(newPlayer.Level) + " ^5" + newPlayer.Name + " ^7has joined the server."); + await E.Owner.Broadcast(ProcessAnnouncement(cfg.GetProperty("PrivilegedAnnouncementMessage"), newPlayer)); - await newPlayer.Tell($"Welcome ^5{newPlayer.Name}^7, this is your ^5{TimesConnected(newPlayer)} ^7time connecting!"); + await newPlayer.Tell(ProcessAnnouncement(cfg.GetProperty("UserWelcomeMessage"), newPlayer)); if (newPlayer.Level == Player.Permission.Flagged) await E.Owner.ToAdmins($"^1NOTICE: ^7Flagged player ^5{newPlayer.Name}^7 has joined!"); - else + await E.Owner.Broadcast(ProcessAnnouncement(cfg.GetProperty("UserAnnouncementMessage"), newPlayer)); + } + + if (E.Type == Event.GType.Start) + { + var cfg = new ConfigurationManager(S); + Configs.Add(S.GetHashCode(), cfg); + if (cfg.GetProperty("UserWelcomeMessage") == null) { - try - { - CountryLookupProj.CountryLookup CLT = new CountryLookupProj.CountryLookup("Plugins/GeoIP.dat"); - await E.Owner.Broadcast($"^5{newPlayer.Name} ^7hails from ^5{CLT.lookupCountryName(newPlayer.IPAddressString)}"); - } + string welcomeMsg = "Welcome ^5{{ClientName}}^7, this is your ^5{{TimesConnected}} ^7time connecting!"; + cfg.AddProperty(new KeyValuePair("UserWelcomeMessage", welcomeMsg)); + } - catch (Exception) - { - E.Owner.Manager.GetLogger().WriteError("Could not open file Plugins/GeoIP.dat for Welcome Plugin"); - } + if (cfg.GetProperty("PrivilegedAnnouncementMessage") == null) + { + string annoucementMsg = "{{ClientLevel}} {{ClientName}} has joined the server"; + cfg.AddProperty(new KeyValuePair("PrivilegedAnnouncementMessage", annoucementMsg)); + } + if (cfg.GetProperty("UserAnnouncementMessage") == null) + { + string annoucementMsg = "^5{{ClientName}}^7hails from ^5{{ClientLocation}}"; + cfg.AddProperty(new KeyValuePair("UserAnnouncementMessage", annoucementMsg)); } } + } - if (E.Type == Event.GType.Disconnect) + private string ProcessAnnouncement(string msg, Player joining) + { + msg = msg.Replace("{{ClientName}}", joining.Name); + msg = msg.Replace("{{ClientLevel}}", Utilities.ConvertLevelToColor(joining.Level)); + try { + CountryLookupProj.CountryLookup CLT = new CountryLookupProj.CountryLookup("Plugins/GeoIP.dat"); + msg = msg.Replace("{{ClientLocation}}", CLT.lookupCountryName(joining.IPAddressString)); } + + catch (Exception) + { + joining.CurrentServer.Manager.GetLogger().WriteError("Could not open file Plugins/GeoIP.dat for Welcome Plugin"); + } + msg = msg.Replace("{{TimesConnected}}", TimesConnected(joining)); + + return msg; } } } diff --git a/SharedLibrary/Commands/NativeCommands.cs b/SharedLibrary/Commands/NativeCommands.cs index 64dbb12b9..c092aa78d 100644 --- a/SharedLibrary/Commands/NativeCommands.cs +++ b/SharedLibrary/Commands/NativeCommands.cs @@ -10,6 +10,7 @@ using SharedLibrary.Objects; using SharedLibrary.Database; using System.Data.Entity; using SharedLibrary.Database.Models; +using SharedLibrary.Services; namespace SharedLibrary.Commands { @@ -526,7 +527,7 @@ namespace SharedLibrary.Commands public override async Task ExecuteAsync(Event E) { - var db_players = await E.Owner.Manager.GetClientService().Find(c => c.Name.Contains(E.Data)); + var db_players = await (E.Owner.Manager.GetClientService() as ClientService).GetClientByName(E.Data); if (db_players.Count == 0) { @@ -534,51 +535,17 @@ namespace SharedLibrary.Commands return; } - foreach (Player P in db_players) + foreach (var P in db_players) { - String mesg = String.Format("[^3{0}^7] [^3@{1}^7] - [{2}^7] - {3} | last seen {4}", P.Name, P.ClientNumber, Utilities.ConvertLevelToColor(P.Level), P.IPAddress, P.GetLastConnection()); - await E.Origin.Tell(mesg); + // they're not going by another alias + string msg = P.Name.ToLower().Contains(E.Data.ToLower()) ? + $"[^3{P.Name}^7] [^3@{P.ClientId}^7] - [{ Utilities.ConvertLevelToColor(P.Level)}^7] - {P.IPAddressString} | last seen {Utilities.GetTimePassed(P.LastConnection)}" : + $"({P.AliasLink.Children.First(a => a.Name.ToLower().Contains(E.Data.ToLower())).Name})->[^3{P.Name}^7] [^3@{P.ClientId}^7] - [{ Utilities.ConvertLevelToColor(P.Level)}^7] - {P.IPAddressString} | last seen {Utilities.GetTimePassed(P.LastConnection)}"; + await E.Origin.Tell(msg); } } } - public class CFindAllPlayers : Command - { - public CFindAllPlayers() : - base("findall", "find a player by their aliase(s)", "fa", Player.Permission.Administrator, false, new CommandArgument[] - { - new CommandArgument() - { - Name = "player", - Required = true, - } - }) - { } - - public override async Task ExecuteAsync(Event E) - { - E.Data = E.Data.Trim(); - - if (E.Data.Length < 3) - { - await E.Origin.Tell("You must enter at least 3 characters"); - return; - } - - var db_aliases = await E.Owner.Manager.GetAliasService() - .Find(a => a.Name.ToLower().Contains(E.Data.ToLower())); - - if (db_aliases.Count == 0) - { - await E.Origin.Tell("No players found"); - return; - } - - foreach (var P in db_aliases) - await E.Origin.Tell($"^4{P.Name} ^7now goes by ^5{P.Link.Children.OrderByDescending(a => a.DateAdded).First().Name}"); - } - } - public class CListRules : Command { public CListRules() : @@ -668,9 +635,10 @@ namespace SharedLibrary.Commands public override async Task ExecuteAsync(Event E) { + // todo: move unflag to seperate command if (E.Target.Level >= E.Origin.Level) { - await E.Origin.Tell("You cannot flag " + E.Target.Name); + await E.Origin.Tell($"You cannot flag {E.Target.Name}"); return; } @@ -678,7 +646,7 @@ namespace SharedLibrary.Commands { E.Target.Level = Player.Permission.User; await E.Owner.Manager.GetClientService().Update(E.Target); - await E.Origin.Tell("You have ^5unflagged ^7" + E.Target.Name); + await E.Origin.Tell($"You have ^5unflagged ^7{E.Target.Name}"); } else diff --git a/SharedLibrary/Database/Importer.cs b/SharedLibrary/Database/Importer.cs index 47219168b..2db50f8ca 100644 --- a/SharedLibrary/Database/Importer.cs +++ b/SharedLibrary/Database/Importer.cs @@ -52,7 +52,7 @@ namespace SharedLibrary.Database NetworkId = entityToInsert.NetworkId }; - context = AddClient(context, client, count, 100, true); + context = AddClient(context, client, count, 1000, true); } context.SaveChanges(); @@ -84,6 +84,8 @@ namespace SharedLibrary.Database context.Dispose(); context = new DatabaseContext(); context.Configuration.AutoDetectChangesEnabled = false; + context.Configuration.LazyLoadingEnabled = false; + context.Configuration.ProxyCreationEnabled = false; } } @@ -119,7 +121,7 @@ namespace SharedLibrary.Database var penalty = new EFPenalty() { Active = true, - Expires = entityToInsert.Expires.Year == 9999 ? DateTime.Parse(System.Data.SqlTypes.SqlDateTime.MinValue.ToString()) : entityToInsert.Expires, + Expires = entityToInsert.Expires.Year == 9999 ? DateTime.Parse(System.Data.SqlTypes.SqlDateTime.MaxValue.ToString()) : entityToInsert.Expires, Offender = offender, Punisher = punisher, Offense = entityToInsert.Offense, @@ -128,7 +130,7 @@ namespace SharedLibrary.Database Link = offender.AliasLink }; - context = AddPenalty(context, penalty, count, 100, true); + context = AddPenalty(context, penalty, count, 1000, true); } context.SaveChanges(); @@ -160,6 +162,8 @@ namespace SharedLibrary.Database context.Dispose(); context = new DatabaseContext(); context.Configuration.AutoDetectChangesEnabled = false; + context.Configuration.LazyLoadingEnabled = false; + context.Configuration.ProxyCreationEnabled = false; } } @@ -181,7 +185,7 @@ namespace SharedLibrary.Database foreach (var entityToInsert in SQLiteData) { ++count; - context = AddSQLite(context, entityToInsert, count, 100, true); + context = AddSQLite(context, entityToInsert, count, 1000, true); } context.SaveChanges(); @@ -214,6 +218,8 @@ namespace SharedLibrary.Database context.Dispose(); context = new DatabaseContext(); context.Configuration.AutoDetectChangesEnabled = false; + context.Configuration.LazyLoadingEnabled = false; + context.Configuration.ProxyCreationEnabled = false; } } return context; diff --git a/SharedLibrary/Helpers/ConfigurationManager.cs b/SharedLibrary/Helpers/ConfigurationManager.cs index d6e303b2b..69541049a 100644 --- a/SharedLibrary/Helpers/ConfigurationManager.cs +++ b/SharedLibrary/Helpers/ConfigurationManager.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.CSharp.RuntimeBinder; +using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -54,6 +55,11 @@ namespace SharedLibrary.Helpers return ConfigSet[prop].ToObject(); } + catch (RuntimeBinderException) + { + return ConfigSet[prop]; + } + catch (Exception) { return default(T); diff --git a/SharedLibrary/Services/ClientService.cs b/SharedLibrary/Services/ClientService.cs index 02c52e182..5c67d963c 100644 --- a/SharedLibrary/Services/ClientService.cs +++ b/SharedLibrary/Services/ClientService.cs @@ -8,6 +8,7 @@ using System.Data.Entity; using SharedLibrary.Database; using SharedLibrary.Database.Models; using System.Linq.Expressions; +using SharedLibrary.Objects; namespace SharedLibrary.Services { @@ -91,11 +92,16 @@ namespace SharedLibrary.Services return await Task.Run(() => { using (var context = new DatabaseContext()) + { + context.Configuration.AutoDetectChangesEnabled = false; + context.Configuration.LazyLoadingEnabled = false; + context.Configuration.ProxyCreationEnabled = false; return context.Clients .AsNoTracking() .Include(c => c.CurrentAlias) .Include(c => c.AliasLink.Children) .Where(e).ToList(); + } }); } @@ -104,7 +110,7 @@ namespace SharedLibrary.Services using (var context = new DatabaseContext()) { context.Configuration.LazyLoadingEnabled = false; - context.Configuration.ProxyCreationEnabled = false; + //context.Configuration.ProxyCreationEnabled = false; return await new DatabaseContext().Clients .AsNoTracking() .Include(c => c.CurrentAlias) @@ -191,13 +197,43 @@ namespace SharedLibrary.Services public async Task> GetPrivilegedClients() { using (var context = new DatabaseContext()) + { + context.Configuration.LazyLoadingEnabled = false; + context.Configuration.ProxyCreationEnabled = false; + context.Configuration.AutoDetectChangesEnabled = false; + return await new DatabaseContext().Clients .AsNoTracking() .Include(c => c.CurrentAlias) - .Where(c => c.Level >= Objects.Player.Permission.Trusted) + .Where(c => c.Level >= Player.Permission.Trusted) .ToListAsync(); + } } + public async Task> GetClientByName(string name) + { + using (var context = new DatabaseContext()) + { + context.Configuration.LazyLoadingEnabled = false; + context.Configuration.ProxyCreationEnabled = false; + context.Configuration.AutoDetectChangesEnabled = false; + + var iqClients = (from alias in context.Aliases + .AsNoTracking() + where alias.Name + .Contains(name) + join link in context.AliasLinks + on alias.LinkId equals link.AliasLinkId + join client in context.Clients + .AsNoTracking() + on alias.LinkId equals client.AliasLinkId + select client) + .Include(c => c.CurrentAlias) + .Include(c => c.AliasLink.Children); + + return await iqClients.ToListAsync(); + } + } public async Task> GetRecentClients(int offset, int count) {