Пример #1
0
        ///// <summary>
        ///// 根据个人ID持有卡列表
        ///// </summary>
        ///// <param name="personId"></param>
        ///// <returns></returns>
        public virtual IList <CardListDto> GetCardListByPerson(string personId)
        {
            var query = from c in _cardRepository.Table
                        join uc in _userCardRepository.Table on c.CardUUID equals uc.CardUUID
                        join ru in _roomUserRepository.Table on uc.RoomUserUUID equals ru.RoomUserUUID
                        join p in _personRepository.Table on ru.PersonUUID equals p.PersonUUID
                        where !c.Deleted && p.PersonUUID == personId
                        orderby c.CreateTime descending
                        select c;

            var cardList = new List <CardListDto>();

            foreach (var item in query.ToList())
            {
                var model = new CardListDto();
                model.CardUUID     = item.CardUUID;
                model.CardNo       = item.CardNo;
                model.CardType     = item.CardType;
                model.CardTypeName = item.CardTypeDict != null ? item.CardTypeDict.DictName : "";
                model.CreateTime   = DateTime.Now;
                cardList.Add(model);
            }

            return(cardList);
        }
Пример #2
0
        public CardListDto SearchCardsInResource(int ResourceId, int NextPage, int ItemsPerPage, String SearchFor = "")
        {
            var selResource = this.repositoryWrapper.Resource
                              .FindByCondition(d => d.ResourceId == ResourceId)
                              .Include(r => r.Decks)
                              .First();
            var selDeckIDs          = selResource.Decks.Select(d => d.DeckId);
            IQueryable <Card> cards = this.repositoryWrapper.Card.FindByCondition(c => selDeckIDs.Contains(c.DeckId));

            if (!String.IsNullOrWhiteSpace(SearchFor))
            {
                cards = cards.Where(c => c.Front.Contains(SearchFor, StringComparison.OrdinalIgnoreCase) || c.Back.Contains(SearchFor, StringComparison.OrdinalIgnoreCase));
            }

            var cList = new CardListDto
            {
                DeckTitle      = "All Decks",
                ResourceId     = selResource.ResourceId,
                ResourceTitle  = selResource.Title,
                IsShared       = false,
                CardCount      = cards.Count(),
                Cards          = cards.Skip((NextPage - 1) * ItemsPerPage).Take(ItemsPerPage),
                SearchFor      = SearchFor,
                Skip           = (NextPage - 1) * ItemsPerPage,
                Take           = ItemsPerPage,
                TotalCardCount = cards.Count()
            };

            return(cList);
        }
Пример #3
0
        public CardListDto ListCards(int DeckId, int NextPage, int ItemsPerPage, String SearchFor = "")
        {
            var selDeck = this.repositoryWrapper.Deck.FindByCondition(d => d.DeckId == DeckId)
                          .First();
            IQueryable <Card> cards = this.repositoryWrapper.Card.FindByCondition(c => c.DeckId == DeckId);

            if (!String.IsNullOrWhiteSpace(SearchFor))
            {
                cards = cards.Where(c => c.Front.Contains(SearchFor, StringComparison.OrdinalIgnoreCase) || c.Back.Contains(SearchFor, StringComparison.OrdinalIgnoreCase));
            }

            var cList = new CardListDto
            {
                DeckId         = DeckId,
                DeckTitle      = selDeck.Title,
                ResourceId     = selDeck.ResourceId,
                IsShared       = selDeck.IsShared,
                CardCount      = cards.Count(),
                Cards          = cards.Skip((NextPage - 1) * ItemsPerPage).Take(ItemsPerPage),
                SearchFor      = SearchFor,
                Skip           = (NextPage - 1) * ItemsPerPage,
                Take           = ItemsPerPage,
                TotalCardCount = cards.Count()
            };

            return(cList);
        }
Пример #4
0
        private void SetupMocks()
        {
            _deckService       = new Mock <IDeckService>();
            _repositoryWrapper = new Mock <IRepositoryWrapper>();
            _codeRenderService = new Mock <ICodeRenderService>();

            var mockCardListDto = new CardListDto
            {
                CardCount = 2,
                Cards     = new List <Card> {
                    new Card
                    {
                        CardId = 1,
                        Front  = "f1",
                        Back   = "b1"
                    }
                    , new Card
                    {
                        CardId = 2,
                        Front  = "f2",
                        Back   = "b2"
                    }
                },
                DeckId         = 1,
                DeckTitle      = "Dummy Deck",
                IsShared       = false,
                ResourceId     = 1,
                ResourceTitle  = "Dummy Resource",
                Skip           = 0,
                Take           = 2,
                TotalCardCount = 20
            };

            _deckService
            .Setup(d => d.ListCards(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()))
            .Returns(mockCardListDto)
            .Verifiable();

            _deckService
            .Setup(ds => ds.SearchCardsInResource(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()))
            .Returns(mockCardListDto)
            .Verifiable();
        }