private async Task <IList <BanlistCard> > MapToBanlistCards(long banlistId, IList <YugiohBanlistSection> yugiohBanlistSections) { var banlistCards = new List <BanlistCard>(); var cardlimits = await _limitRepository.GetAll(); const string forbidden = "forbidden"; const string limited = "limited"; const string semiLimited = "semi-limited"; const string unlimited = "unlimited"; var forbiddenBanSection = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(forbidden, StringComparison.OrdinalIgnoreCase)); var limitedBanSection = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(limited, StringComparison.OrdinalIgnoreCase)); var semiLimitedBanSection = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(semiLimited, StringComparison.OrdinalIgnoreCase)); var unlimitedBanSection = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(unlimited, StringComparison.OrdinalIgnoreCase)); if (forbiddenBanSection != null && forbiddenBanSection.Content.Any()) { await AddCardsToBanlist(banlistCards, forbiddenBanSection, banlistId, cardlimits, forbidden); } if (limitedBanSection != null && limitedBanSection.Content.Any()) { await AddCardsToBanlist(banlistCards, limitedBanSection, banlistId, cardlimits, limited); } if (semiLimitedBanSection != null && semiLimitedBanSection.Content.Any()) { await AddCardsToBanlist(banlistCards, semiLimitedBanSection, banlistId, cardlimits, semiLimited); } if (unlimitedBanSection != null && unlimitedBanSection.Content.Any()) { await AddCardsToBanlist(banlistCards, unlimitedBanSection, banlistId, cardlimits, unlimited); } return(banlistCards); }
public async Task Given_A_BanlistId_And_BanlistSections_Should_Invoke_Update_Method_Once() { // Arrange var yugiohBanlistSections = new List <YugiohBanlistSection> { new YugiohBanlistSection { Title = "Forbidden", Content = new List <string> { "Dark Hole" } }, new YugiohBanlistSection { Title = "Limited", Content = new List <string> { "Raigeki" } }, new YugiohBanlistSection { Title = "Semi-Limited", Content = new List <string> { "One For One" } }, new YugiohBanlistSection { Title = "Unlimited", Content = new List <string> { "Macro" } } }; _limitRepository.GetAll().Returns(new List <Limit> { new Limit { Id = 1, Name = "Forbidden" }, new Limit { Id = 2, Name = "Limited" }, new Limit { Id = 3, Name = "Semi-Limited" }, new Limit { Id = 4, Name = "Unlimited" } }); _cardRepository.CardByName(Arg.Any <string>()).Returns(new Card { Id = 432 }); // Act await _sut.Update(123, yugiohBanlistSections); // Assert await _banlistCardRepository.Received(1).Update(Arg.Any <long>(), Arg.Any <List <BanlistCard> >()); }
public IEnumerable <Limit> GetAllLimit() { return(_limitRepository.GetAll()); }