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;
        }
示例#2
0
        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);
        }