示例#1
0
        public async Task <IActionResult> RemoveCardFromDeck(Guid deckId, Guid cardId)
        {
            try
            {
                var currentUserId = await UserServices.UserIdFromContextAsync(HttpContext, userManager);

                var query             = new RemoveCardFromDeck.Request(currentUserId, deckId, cardId);
                var applicationResult = await new RemoveCardFromDeck(dbContext).RunAsync(query);
                var frontSide         = $" '{applicationResult.FrontSideText.Truncate(30, true)}'";
                var mesgBody          = localizer["CardWithFrontSideHead"] + frontSide + ' ' + localizer["RemovedFromDeck"] + ' ' + applicationResult.DeckName;
                var result            = new { MessageTitle = localizer["Success"].Value, MessageBody = mesgBody };
                return(base.Ok(result));
            }
            catch (Exception e)
            {
                return(ControllerError.BadRequest(e, this));
            }
        }
示例#2
0
        public async Task <IActionResult> GetUserDecksWithHeaps()
        {
            var userId = await UserServices.UserIdFromContextAsync(HttpContext, userManager);

            var decks  = new GetUserDecksWithHeaps(dbContext).Run(userId);
            var result = decks.Select(deck =>
                                      new GetUserDecksWithHeapsViewModel(
                                          deck.DeckId,
                                          deck.Description,
                                          HeapingAlgo.NameFromId(deck.HeapingAlgorithmId, localizer),
                                          HeapingAlgo.DescriptionFromId(deck.HeapingAlgorithmId, localizer),
                                          deck.CardCount,
                                          deck.Heaps.OrderBy(heap => heap.HeapId),
                                          localizer
                                          )
                                      );

            return(base.Ok(result));
        }
示例#3
0
        public async Task <IActionResult> SetCardNotificationRegistration(Guid cardId, bool notif)
        {
            try
            {
                var userId = await UserServices.UserIdFromContextAsync(HttpContext, userManager);

                if (notif)
                {
                    var request = new AddCardNotifications.Request(userId, new[] { cardId });
                    await new AddCardNotifications(dbContext).RunAsync(request);
                }
                else
                {
                    var request = new RemoveCardNotifications.Request(userId, new[] { cardId });
                    await new RemoveCardNotifications(dbContext).RunAsync(request);
                }
                return(Ok());
            }
            catch (Exception e)
            {
                return(ControllerError.BadRequest(e, this));
            }
        }