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