Speeding up visible location call
Deploy Promiscuity Auth API / deploy (push) Successful in 46s
Deploy Promiscuity Character API / deploy (push) Successful in 57s
Deploy Promiscuity Inventory API / deploy (push) Successful in 59s
Deploy Promiscuity Locations API / deploy (push) Successful in 58s
k8s smoke test / test (push) Successful in 8s
Deploy Promiscuity Auth API / deploy (push) Successful in 46s
Deploy Promiscuity Character API / deploy (push) Successful in 57s
Deploy Promiscuity Inventory API / deploy (push) Successful in 59s
Deploy Promiscuity Locations API / deploy (push) Successful in 58s
k8s smoke test / test (push) Successful in 8s
This commit is contained in:
@@ -88,6 +88,32 @@ public class InventoryStore
|
||||
.ThenBy(i => i.ItemKey)
|
||||
.ToListAsync();
|
||||
|
||||
public async Task<Dictionary<string, List<InventoryItem>>> GetByOwnersAsync(string ownerType, IEnumerable<string> ownerIds)
|
||||
{
|
||||
var normalizedOwnerType = NormalizeOwnerType(ownerType);
|
||||
if (normalizedOwnerType is null)
|
||||
return [];
|
||||
|
||||
var ids = ownerIds
|
||||
.Where(id => !string.IsNullOrWhiteSpace(id))
|
||||
.Select(id => id.Trim())
|
||||
.Distinct(StringComparer.Ordinal)
|
||||
.ToList();
|
||||
if (ids.Count == 0)
|
||||
return [];
|
||||
|
||||
var items = await _items.Find(i => i.OwnerType == normalizedOwnerType && ids.Contains(i.OwnerId))
|
||||
.SortBy(i => i.OwnerId)
|
||||
.ThenBy(i => i.EquippedSlot)
|
||||
.ThenBy(i => i.Slot)
|
||||
.ThenBy(i => i.ItemKey)
|
||||
.ToListAsync();
|
||||
|
||||
return items
|
||||
.GroupBy(item => item.OwnerId, StringComparer.Ordinal)
|
||||
.ToDictionary(group => group.Key, group => group.ToList(), StringComparer.Ordinal);
|
||||
}
|
||||
|
||||
public Task<List<ItemDefinition>> ListItemDefinitionsAsync() =>
|
||||
_definitions.Find(Builders<ItemDefinition>.Filter.Empty).SortBy(d => d.ItemKey).ToListAsync();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user