private async Task CreatePreviousVersionUsersWithViewAsync(CardPreviousVersion cardPreviousVersion, IEnumerable <UserWithViewOnCard> originalCardUsers) { var usersInCards = new List <UserWithViewOnCardPreviousVersion>(); foreach (var userToAdd in originalCardUsers) { var userInCard = new UserWithViewOnCardPreviousVersion() { AllowedUserId = userToAdd.UserId, CardPreviousVersionId = cardPreviousVersion.Id }; await dbContext.UsersWithViewOnCardPreviousVersions.AddAsync(userInCard); usersInCards.Add(userInCard); } cardPreviousVersion.UsersWithView = usersInCards; }
private static async Task <CardPreviousVersion> CreateDeletedCardAsync(DbContextOptions <MemCheckDbContext> testDB, Guid versionCreatorId, DateTime versionDate, IEnumerable <Guid>?userWithViewIds = null) { //userWithViewIds null means public card var cardLanguageId = await CardLanguagHelper.CreateAsync(testDB); using var dbContext = new MemCheckDbContext(testDB); var creator = await dbContext.Users.Where(u => u.Id == versionCreatorId).SingleAsync(); var cardLanguage = await dbContext.CardLanguages.SingleAsync(cardLanguage => cardLanguage.Id == cardLanguageId); var result = new CardPreviousVersion { Card = Guid.NewGuid(), CardLanguage = cardLanguage, VersionCreator = creator, FrontSide = Guid.NewGuid().ToString(), BackSide = Guid.NewGuid().ToString(), AdditionalInfo = Guid.NewGuid().ToString(), VersionDescription = Guid.NewGuid().ToString(), VersionType = CardPreviousVersionType.Deletion, VersionUtcDate = versionDate }; dbContext.CardPreviousVersions.Add(result); var usersWithView = new List <UserWithViewOnCardPreviousVersion>(); if (userWithViewIds != null) { Assert.IsTrue(userWithViewIds.Any(id => id == versionCreatorId), "Version creator must be allowed to view"); foreach (var userWithViewId in userWithViewIds) { var userWithView = new UserWithViewOnCardPreviousVersion { CardPreviousVersionId = result.Id, AllowedUserId = userWithViewId }; dbContext.UsersWithViewOnCardPreviousVersions.Add(userWithView); usersWithView.Add(userWithView); } } result.UsersWithView = usersWithView; await dbContext.SaveChangesAsync(); return(result); }