コード例 #1
0
        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())));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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())));
        }
コード例 #4
0
ファイル: DeleteCards.cs プロジェクト: VoltanFr/memcheck
        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())));
        }
コード例 #5
0
        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);
            }
        }