fix parsing view angles in exponential form

update RestEase  and CodePages dependencies
optimized the find by name query
add index to name
This commit is contained in:
RaidMax
2018-09-11 14:28:37 -05:00
parent 3d8108f339
commit b9086fd145
24 changed files with 3794 additions and 870 deletions

View File

@ -164,7 +164,7 @@ namespace SharedLibraryCore.Services
.Include(c => c.AliasLink)
.Include(c => c.CurrentAlias)
.Single(e => e.ClientId == entity.ClientId);
// if their level has been changed
if (entity.Level != client.Level)
{
@ -264,29 +264,28 @@ namespace SharedLibraryCore.Services
if (name.Length < 3)
return new List<EFClient>();
using (var context = new DatabaseContext())
name = name.ToLower();
using (var context = new DatabaseContext(true))
{
context.ChangeTracker.AutoDetectChangesEnabled = false;
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
int asIP = name.ConvertToIP();
// hack: so IW4MAdmin doesn't show up in search results
asIP = asIP == 0 ? int.MinValue : asIP;
// hack: so IW4MAdmin and bots don't show up in search results
asIP = asIP == 0 ? int.MaxValue : asIP;
var iqClients = (from alias in context.Aliases
.AsNoTracking()
where alias.Name.ToLower()
.Contains(name.ToLower()) ||
alias.IPAddress == asIP
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)
.Distinct()
.Include(c => c.CurrentAlias)
.Include(c => c.AliasLink.Children);
var iqLinkIds = (from alias in context.Aliases
where asIP != int.MaxValue ? alias.IPAddress == asIP : alias.Name.ToLower().Contains(name)
select alias.LinkId);
var linkIds = iqLinkIds.ToList();
var iqClients = context.Clients
.Where(c => linkIds.Contains(c.AliasLinkId))
.Include(c => c.CurrentAlias)
.Include(c => c.AliasLink.Children);
#if DEBUG == true
var iqClientsSql = iqClients.ToSql();
#endif
return await iqClients.ToListAsync();
}
@ -294,7 +293,7 @@ namespace SharedLibraryCore.Services
public async Task<IList<EFClient>> GetClientByIP(int ipAddress)
{
using (var context = new DatabaseContext())
using (var context = new DatabaseContext(true))
{
var iqClients = (from alias in context.Aliases
.AsNoTracking()