👔 Prevent from creating duplicate featured record
This commit is contained in:
@@ -787,13 +787,24 @@ public partial class PostService(
|
|||||||
await cache.SetAsync(FeaturedPostCacheKey, featuredIds, TimeSpan.FromHours(24));
|
await cache.SetAsync(FeaturedPostCacheKey, featuredIds, TimeSpan.FromHours(24));
|
||||||
|
|
||||||
// Create featured record
|
// Create featured record
|
||||||
var records = reactSocialPoints.Select(e => new PostFeaturedRecord
|
var existingFeaturedPostIds = await db.PostFeaturedRecords
|
||||||
|
.Where(r => featuredIds.Contains(r.PostId))
|
||||||
|
.Select(r => r.PostId)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
var records = reactSocialPoints
|
||||||
|
.Where(p => !existingFeaturedPostIds.Contains(p.Key))
|
||||||
|
.Select(e => new PostFeaturedRecord
|
||||||
|
{
|
||||||
|
PostId = e.Key,
|
||||||
|
SocialCredits = e.Value
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
if (records.Any())
|
||||||
{
|
{
|
||||||
PostId = e.Key,
|
db.PostFeaturedRecords.AddRange(records);
|
||||||
SocialCredits = e.Value
|
await db.SaveChangesAsync();
|
||||||
}).ToList();
|
}
|
||||||
db.PostFeaturedRecords.AddRange(records);
|
|
||||||
await db.SaveChangesAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var posts = await db.Posts
|
var posts = await db.Posts
|
||||||
|
Reference in New Issue
Block a user