private async Task <CardPreviousVersion> CreateCardPreviousVersionAsync(DbContextOptions <MemCheckDbContext> testDB, Guid versionCreatorId, Guid cardId, DateTime versionDate) { using var dbContext = new MemCheckDbContext(testDB); var creator = await dbContext.Users.Where(u => u.Id == versionCreatorId).SingleAsync(); var result = new CardPreviousVersion(); result.Card = cardId; result.VersionCreator = creator; result.VersionUtcDate = versionDate; result.VersionType = CardPreviousVersionType.Creation; result.FrontSide = StringServices.RandomString(); result.BackSide = StringServices.RandomString(); result.AdditionalInfo = StringServices.RandomString(); result.VersionDescription = StringServices.RandomString(); dbContext.CardPreviousVersions.Add(result); var card = await dbContext.Cards.Where(c => c.Id == cardId).SingleAsync(); card.PreviousVersion = result; card.VersionType = CardVersionType.Changes; await dbContext.SaveChangesAsync(); return(result); }
private static async Task <CardPreviousVersion> CreatePreviousVersionPreviousVersionAsync(DbContextOptions <MemCheckDbContext> testDB, Guid versionCreatorId, CardPreviousVersion previousVersion, DateTime versionDate) { 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 == previousVersion.CardLanguage.Id); var result = new CardPreviousVersion { Card = previousVersion.Card, CardLanguage = cardLanguage, VersionCreator = creator, VersionUtcDate = versionDate, VersionType = CardPreviousVersionType.Creation, FrontSide = RandomHelper.String(), BackSide = RandomHelper.String(), AdditionalInfo = RandomHelper.String(), VersionDescription = RandomHelper.String() }; dbContext.CardPreviousVersions.Add(result); previousVersion.PreviousVersion = result; previousVersion.VersionType = CardPreviousVersionType.Changes; await dbContext.SaveChangesAsync(); return(result); }
public static void AssertSameContent(Card card, CardPreviousVersion firstVersion, bool includeCreator) { if (includeCreator) { Assert.AreEqual(card.VersionCreator.Id, firstVersion.VersionCreator.Id); } Assert.AreEqual(card.CardLanguage.Id, firstVersion.CardLanguage.Id); Assert.AreEqual(card.FrontSide, firstVersion.FrontSide); Assert.AreEqual(card.BackSide, firstVersion.BackSide); Assert.AreEqual(card.AdditionalInfo, firstVersion.AdditionalInfo); AssertSameTagSet(card.TagsInCards, firstVersion.Tags); AssertSameUserWithViewSet(card.UsersWithView, firstVersion.UsersWithView); AssertSameImageSet(card.Images, firstVersion.Images); }
private async Task CreatePreviousVersionImagesWithViewAsync(CardPreviousVersion cardPreviousVersion, IEnumerable <ImageInCard> originalCardImages) { var imagesInCards = new List <ImageInCardPreviousVersion>(); foreach (var imageToAdd in originalCardImages) { var imageInCard = new ImageInCardPreviousVersion() { ImageId = imageToAdd.ImageId, CardPreviousVersionId = cardPreviousVersion.Id, CardSide = imageToAdd.CardSide }; await dbContext.ImagesInCardPreviousVersions.AddAsync(imageInCard); imagesInCards.Add(imageInCard); } cardPreviousVersion.Images = imagesInCards; }
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 async Task CreatePreviousVersionTagsAsync(CardPreviousVersion cardPreviousVersion, IEnumerable <TagInCard> originalCardTags) { var tagsInCards = new List <TagInPreviousCardVersion>(); foreach (var tagToAdd in originalCardTags) { var tagInCard = new TagInPreviousCardVersion() { TagId = tagToAdd.TagId, CardPreviousVersionId = cardPreviousVersion.Id }; await dbContext.TagInPreviousCardVersions.AddAsync(tagInCard); tagsInCards.Add(tagInCard); } cardPreviousVersion.Tags = tagsInCards; }
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); }
private async Task <CardPreviousVersion> CreatePreviousVersionAsync(Card card) { var previousVersion = new CardPreviousVersion() { Card = card.Id, VersionCreator = card.VersionCreator, CardLanguage = card.CardLanguage, FrontSide = card.FrontSide, BackSide = card.BackSide, AdditionalInfo = card.AdditionalInfo, VersionUtcDate = card.VersionUtcDate, VersionType = CardPreviousVersionTypeFromCard(card), VersionDescription = card.VersionDescription, PreviousVersion = card.PreviousVersion, }; await dbContext.CardPreviousVersions.AddAsync(previousVersion); await CreatePreviousVersionTagsAsync(previousVersion, card.TagsInCards); await CreatePreviousVersionUsersWithViewAsync(previousVersion, card.UsersWithView); await CreatePreviousVersionImagesWithViewAsync(previousVersion, card.Images); return(previousVersion); }