Browse Source

Fix delivery of apps.

pull/925/head
Sebastian 3 years ago
parent
commit
210d38ceca
  1. 23
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Apps/MongoAppRepository.cs

23
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Apps/MongoAppRepository.cs

@ -50,10 +50,10 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Apps
using (Telemetry.Activities.StartActivity("MongoAppRepository/QueryAllAsync"))
{
var entities =
await Collection.Find(x => (x.IndexedUserIds.Contains(contributorId) || names.Contains(x.IndexedName)) && !x.IndexedDeleted)
await Collection.Find(x => (x.IndexedUserIds.Contains(contributorId) || names.Contains(x.IndexedName)) && !x.IndexedDeleted).SortBy(x => x.IndexedCreated)
.ToListAsync(ct);
return entities.Select(x => (IAppEntity)x.Document).ToList();
return RemoveDuplcateNames(entities);
}
}
@ -63,10 +63,10 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Apps
using (Telemetry.Activities.StartActivity("MongoAppRepository/QueryAllAsync"))
{
var entities =
await Collection.Find(x => x.IndexedTeamId == teamId)
await Collection.Find(x => x.IndexedTeamId == teamId).SortBy(x => x.IndexedCreated)
.ToListAsync(ct);
return entities.Select(x => (IAppEntity)x.Document).ToList();
return RemoveDuplcateNames(entities);
}
}
@ -89,11 +89,24 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Apps
using (Telemetry.Activities.StartActivity("MongoAppRepository/FindAsyncByName"))
{
var entity =
await Collection.Find(x => x.IndexedName == name && !x.IndexedDeleted)
await Collection.Find(x => x.IndexedName == name && !x.IndexedDeleted).SortByDescending(x => x.IndexedCreated)
.FirstOrDefaultAsync(ct);
return entity?.Document;
}
}
private static List<IAppEntity> RemoveDuplcateNames(List<MongoAppEntity> entities)
{
var byName = new Dictionary<string, IAppEntity>();
// Remove duplicate names, the latest wins.
foreach (var entity in entities.OrderBy(x => x.IndexedCreated))
{
byName[entity.IndexedName] = entity.Document;
}
return byName.Values.ToList();
}
}
}

Loading…
Cancel
Save