Esempio n. 1
0
        public async Task <IActionResult> GetCardsAsync([FromBody] GetCardsRequest request)
        {
            try
            {
                if (request.ExcludedCardIds == null)
                {
                    throw new ArgumentException("request.ExcludedCardIds is null");
                }
                if (request.ExcludedTagIds == null)
                {
                    throw new ArgumentException("request.ExcludedTagIds is null");
                }
                var currentUserId = await UserServices.UserIdFromContextAsync(HttpContext, userManager);

                var cardsToDownload    = request.CurrentCardCount == 0 ? 1 : (request.LearnModeIsUnknown ? 30 : 5); //loading cards to repeat is much more time consuming
                var applicationRequest = new GetCardsToLearn.Request(currentUserId, request.DeckId, request.LearnModeIsUnknown, request.ExcludedCardIds, request.ExcludedTagIds, cardsToDownload);
                var applicationResult  = await new GetCardsToLearn(dbContext).RunAsync(applicationRequest);
                var user = await userManager.GetUserAsync(HttpContext.User);

                var result = new GetCardsViewModel(applicationResult, localizer, user.UserName);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(ControllerError.BadRequest(e, this));
            }
        }
Esempio n. 2
0
 public override Task<GetCardsResponse> GetByAccounts(GetCardsRequest request, ServerCallContext context)
 {
     var cards = cardsRepository.GetByAccounts(request.Ids)
                                 .Select(transaction => mapper.Map<Card>(transaction))
                                 .ToArray();
     return Task.FromResult(new GetCardsResponse { Cards = { cards } });
 }
Esempio n. 3
0
 public override Task<GetCardsResponse> Get(GetCardsRequest request, ServerCallContext context)
 {
     var cards = request.Ids.Select(id => cardsRepository.GetCard(id))
                     .Where(card => card != null)
                     .Select(transaction => mapper.Map<Card>(transaction))
                     .ToArray();
     return Task.FromResult(new GetCardsResponse { Cards = { cards } });
 }
        public async Task <Card[]> GetCards(Metadata headers, string[] accountsIds)
        {
            var request = new GetCardsRequest {
                Ids = { accountsIds }
            };
            var response = await cardsClient.GetByAccountsAsync(request, headers);

            return(response.Cards.ToArray());
        }
Esempio n. 5
0
        public GetCardsResponse GetCards(GetCardsRequest request)
        {
            _logger.LogInformation("GetCards {}", request);

            return(new GetCardsResponse()
            {
                RequestId = request.RequestId,
                IsSuccess = true,
                Cards = _cardRepo.Cards,
                UnopenedCard = _cardRepo.UnopenedCard
            });
        }
Esempio n. 6
0
        public async Task <GetCardsResponse> Response(GetCardsRequest @request)
        {
            using (var scope = _serviceScopeFactory.CreateScope())
            {
                var cards = await scope.ServiceProvider.GetRequiredService <ICardService>().GetAsync(@request.Ids);

                return(new GetCardsResponse()
                {
                    Cards = cards
                });
            }
        }
Esempio n. 7
0
        public async Task <IActionResult> GetCards(string[] cardIds)
        {
            var request = new GetCardsRequest()
            {
                CardIds = cardIds
            };
            var reply = await _client.GetCards(request, Timeouts.GLOBAL);

            if (!reply.Success)
            {
                return(StatusCode(500));
            }
            return(Ok(reply.Response));
        }
        private async Task <bool> CardCheck(Models.Squad squad, string userId)
        {
            var cardIds  = AllCardIds(squad);
            var request  = new GetCardsRequest(cardIds);
            var response = await _bus.RequestAsync <GetCardsRequest, GetCardsResponse>(request);

            foreach (var cardId in cardIds)
            {
                var card = response.Cards.FirstOrDefault(x => x.Id == cardId);
                if (card == null || card.UserId != userId)
                {
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 9
0
        public async Task TestGetCards()
        {
            var assignment = CreateAssignmentNew();

            assignment.AssignedTo = TestUserId;
            var assignmentId = await AssignmentUtils.CreateAssignment(assignment);

            var resultLimit     = 1;
            var getCardsRequest = new GetCardsRequest();

            getCardsRequest.AddLimitQuery(resultLimit);
            getCardsRequest.AddPageQuery(0);
            getCardsRequest.AddSortQuery("created");
            getCardsRequest.AddStartQuery(0);
            getCardsRequest.AddUserIdQuery(TestUserId);
            getCardsRequest.AddTypeQuery("default");

            var getCardsResponse = await SkyManager.ApiClient.ExecuteRequestAsync(getCardsRequest);

            Assert.InRange(getCardsResponse.Content.Cards.Count, 1, resultLimit);

            await AssignmentUtils.DeleteAssignment(assignmentId);
        }
Esempio n. 10
0
        public async Task <IActionResult> GetCardsAsync([FromBody] GetCardsRequest request)
        {
            //I wish this method was a Get instead of a Post, but I did not manager to have it work (with [FromQuery] parameter)
            var user = await userManager.GetUserAsync(HttpContext.User);

            var  requiredTags          = request.RequiredTags.Select(tag => tag.TagId);
            bool requireCardsHaveNoTag = requiredTags.Count() == 1 && requiredTags.First() == Guid.Empty;

            if (requireCardsHaveNoTag)
            {
                requiredTags = new Guid[0];
            }
            var applicationRequest = new SearchDeckCards.SearchRequest(
                request.DeckId,
                requiredTags,
                requireCardsHaveNoTag,
                request.HeapFilter == -1 ? null : (int?)request.HeapFilter,
                request.TextFilter,
                request.pageNo,
                request.pageSize);
            var applicationResult = new SearchDeckCards(dbContext).Run(applicationRequest);

            return(base.Ok(new GetCardsViewModel(applicationResult, localizer, user.UserName)));
        }
Esempio n. 11
0
 public GetCardsResponse GetCards(GetCardsRequest request)
 {
     return(_gameService.GetCards(request));
 }
Esempio n. 12
0
 public Task <MessageResponse <Card[]> > GetCards(GetCardsRequest request, int millisecondsTimeout = -1, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(WriteAndReply <GetCardsRequest, Card[]>(Queueing.Queues.GetCards, request, null, millisecondsTimeout, cancellationToken));
 }