protected override async Task <ResultWithMetrologyProperties <Result> > DoRunAsync(Request request) { var tagName = await DbContext.Tags.Where(tag => tag.Id == request.TagId).Select(tag => tag.Name).SingleAsync(); var previousVersionCreator = new PreviousVersionCreator(DbContext); foreach (var cardId in request.CardIds) { if (!DbContext.TagsInCards.Any(tagInCard => tagInCard.CardId == cardId && tagInCard.TagId == request.TagId)) { var card = await previousVersionCreator.RunAsync(cardId, request.VersionCreator.Id, Localized.Get("AddTag") + $" '{tagName}'"); card.VersionCreator = request.VersionCreator; //A priori inutile, à confirmer DbContext.TagsInCards.Add(new TagInCard() { TagId = request.TagId, CardId = cardId }); } } await DbContext.SaveChangesAsync(); return(new ResultWithMetrologyProperties <Result>(new Result(), ("TagId", request.TagId.ToString()), ("TagName", tagName), ("CardCount", request.CardIds.Count().ToString()))); }
public async Task TestOtherUserCreatesVersion() { var testDB = DbHelper.GetEmptyTestDB(); var ownerId = await UserHelper.CreateInDbAsync(testDB); var card = await CardHelper.CreateAsync(testDB, ownerId); var newVersionCreatorId = await UserHelper.CreateInDbAsync(testDB, subscribeToCardOnEdit : true); using (var dbContext = new MemCheckDbContext(testDB)) { var request = new PreviousVersionCreator(dbContext); await request.RunAsync(card.Id, newVersionCreatorId, RandomHelper.String()); await dbContext.SaveChangesAsync(); } using (var dbContext = new MemCheckDbContext(testDB)) { var previousVersion = await dbContext.CardPreviousVersions.Where(previous => previous.Card == card.Id).SingleAsync(); Assert.AreNotEqual(card.Id, previousVersion.Id); } Assert.IsTrue(await CardSubscriptionHelper.UserIsSubscribedToCardAsync(testDB, newVersionCreatorId, card.Id)); }
protected override async Task <ResultWithMetrologyProperties <Result> > DoRunAsync(Request request) { var previousVersionCreator = new PreviousVersionCreator(DbContext); var card = await previousVersionCreator.RunAsync(request.CardId, request.VersionCreatorId, request.VersionDescription, cardNewVersionUtcDate); card.CardLanguage = DbContext.CardLanguages.Where(language => language.Id == request.LanguageId).Single(); card.FrontSide = request.FrontSide; card.BackSide = request.BackSide; card.AdditionalInfo = request.AdditionalInfo; await UpdateTagsAsync(request, card); await UpdateUsersWithViewAsync(request, card); await UpdateImagesAsync(request, card); await DbContext.SaveChangesAsync(); return(new ResultWithMetrologyProperties <Result>(new Result(), ("CardId", request.CardId.ToString()))); }
protected override async Task <ResultWithMetrologyProperties <Result> > DoRunAsync(Request request) { foreach (var cardId in request.CardIds) { var previousVersionCreator = new PreviousVersionCreator(DbContext); var card = await previousVersionCreator.RunAsync(cardId, request.UserId, Localized.Get("Deletion"), deletionUtcDate); await previousVersionCreator.RunForDeletionAsync(card, deletionUtcDate); await DbContext.SaveChangesAsync(); var actualCard = await DbContext.Cards.SingleAsync(card => card.Id == cardId); DbContext.Cards.Remove(actualCard); await DbContext.SaveChangesAsync(); } return(new ResultWithMetrologyProperties <Result>(new Result(), ("CardCount", request.CardIds.Count().ToString()))); }
public async Task TestSameUserCreatesVersion() { var testDB = DbHelper.GetEmptyTestDB(); var ownerId = await UserHelper.CreateInDbAsync(testDB); var card = await CardHelper.CreateAsync(testDB, ownerId); using (var dbContext = new MemCheckDbContext(testDB)) { var request = new PreviousVersionCreator(dbContext); await request.RunAsync(card.Id, ownerId, RandomHelper.String()); await dbContext.SaveChangesAsync(); } using (var dbContext = new MemCheckDbContext(testDB)) { var previousVersion = await dbContext.CardPreviousVersions.Where(previous => previous.Card == card.Id).SingleAsync(); Assert.AreNotEqual(card.Id, previousVersion.Id); } }