public static async Task DeleteCardAsync(DbContextOptions <MemCheckDbContext> db, Guid userId, Guid cardId, DateTime?deletionDate = null) { using var dbContext = new MemCheckDbContext(db); var deleter = new DeleteCards(dbContext.AsCallContext(), deletionDate); var deletionRequest = new DeleteCards.Request(userId, cardId.AsArray()); await deleter.RunAsync(deletionRequest); }
private async Task DeleteCardAsync(DbContextOptions <MemCheckDbContext> db, Guid userId, Guid cardId, DateTime deletionDate) { using var dbContext = new MemCheckDbContext(db); var deleter = new DeleteCards(dbContext, new EmptyLocalizer()); var deletionRequest = new DeleteCards.Request(dbContext.Users.Where(u => u.Id == userId).Single(), new[] { cardId }); await deleter.RunAsync(deletionRequest, deletionDate); }
private static async Task DeleteCardAsync(DbContextOptions <MemCheckDbContext> testDB, Guid userId, Guid cardId, DateTime deletionDate) { using var dbContext = new MemCheckDbContext(testDB); var deleter = new DeleteCards(dbContext.AsCallContext(new TestLocalizer(new KeyValuePair <string, string>("Deletion", DeletionDescription).AsArray())), deletionDate); var deletionRequest = new DeleteCards.Request(userId, cardId.AsArray()); await deleter.RunAsync(deletionRequest); }
public async Task MoreNewFoundThanMaxReported() { var db = DbHelper.GetEmptyTestDB(); var userName = RandomHelper.String(); var user = await UserHelper.CreateInDbAsync(db, userName : userName); var language = await CardLanguagHelper.CreateAsync(db); for (int i = 0; i < SearchCards.Request.MaxPageSize * 2; i++) { await CardHelper.CreateAsync(db, user, language : language); } var card = await CardHelper.CreateAsync(db, user, language : language); Guid subscriptionId; using (var dbContext = new MemCheckDbContext(db)) { var subscriberRequest = new SubscribeToSearch.Request(user, Guid.Empty, RandomHelper.String(), "", Array.Empty <Guid>(), Array.Empty <Guid>()); subscriptionId = (await new SubscribeToSearch(dbContext.AsCallContext()).RunAsync(subscriberRequest)).SearchId; } using (var dbContext = new MemCheckDbContext(db)) { var searchResult = await new UserSearchNotifier(dbContext.AsCallContext(), 2, new DateTime(2050, 05, 01)).RunAsync(subscriptionId); Assert.AreEqual(SearchCards.Request.MaxPageSize * 2 + 1, searchResult.TotalNewlyFoundCardCount); Assert.AreEqual(2, searchResult.NewlyFoundCards.Length); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_StillExists_UserAllowedToView); Assert.AreEqual(0, searchResult.CardsNotFoundAnymore_StillExists_UserAllowedToView.Length); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_Deleted_UserAllowedToView); Assert.AreEqual(0, searchResult.CardsNotFoundAnymore_Deleted_UserAllowedToView.Length); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_StillExists_UserNotAllowedToView); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_Deleted_UserNotAllowedToView); } var deletionDate = new DateTime(2050, 05, 02); using (var dbContext = new MemCheckDbContext(db)) { var deleter = new DeleteCards(dbContext.AsCallContext(), deletionDate); await deleter.RunAsync(new DeleteCards.Request(user, card.Id.AsArray())); } var runDate = new DateTime(2050, 05, 04); using (var dbContext = new MemCheckDbContext(db)) { var searchResult = await new UserSearchNotifier(dbContext.AsCallContext(), 2, runDate).RunAsync(subscriptionId); Assert.AreEqual(0, searchResult.TotalNewlyFoundCardCount); Assert.AreEqual(0, searchResult.NewlyFoundCards.Length); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_StillExists_UserAllowedToView); Assert.AreEqual(0, searchResult.CardsNotFoundAnymore_StillExists_UserAllowedToView.Length); Assert.AreEqual(1, searchResult.CountOfCardsNotFoundAnymore_Deleted_UserAllowedToView); Assert.AreEqual(1, searchResult.CardsNotFoundAnymore_Deleted_UserAllowedToView.Length); var deletedCard = searchResult.CardsNotFoundAnymore_Deleted_UserAllowedToView.Single(); Assert.IsNotNull(deletedCard.FrontSide); Assert.AreEqual(card.FrontSide, deletedCard.FrontSide !); Assert.AreEqual(userName, deletedCard.DeletionAuthor); Assert.IsTrue(deletedCard.CardIsViewable); Assert.AreEqual(deletionDate, deletedCard.DeletionUtcDate); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_StillExists_UserNotAllowedToView); Assert.AreEqual(0, searchResult.CountOfCardsNotFoundAnymore_Deleted_UserNotAllowedToView); } using (var dbContext = new MemCheckDbContext(db)) Assert.AreEqual(runDate, dbContext.SearchSubscriptions.Single(s => s.Id == subscriptionId).LastRunUtcDate); }