private async Task CheckNewVisibilityAsync(Card card, ILocalized localizer, MemCheckDbContext dbContext) { if (!UsersWithVisibility.Any()) { return; } await CheckVisibilityForUsersAsync(await GetAllAuthorsAsync(card, dbContext), localizer, "HeCreatedAVersionOfThisCard", dbContext); IEnumerable <Guid> userIds = await GetAllUsersWithCardInADeckAsync(dbContext); await CheckVisibilityForUsersAsync(userIds, localizer, "HeHasThisCardInADeck", dbContext); }
private async Task CheckVisibilityForUsersAsync(IEnumerable <Guid> userIds, ILocalized localizer, string messageSuffixId, MemCheckDbContext dbContext) { foreach (var userId in userIds) { if (!UsersWithVisibility.Any(u => u == userId)) { var user = await dbContext.Users.SingleAsync(u => u.Id == userId); throw new RequestInputException($"{localizer.Get("User")} {user.UserName} {localizer.Get("MustHaveVisibilityBecause")} {localizer.Get(messageSuffixId)}"); } } }