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)); } }
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)); }
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)); } }