Beispiel #1
0
        public static bool HasCommonCurrencyWith(this TradeMergeItemDto fisrtTradeMergeItem, TradeMergeItemDto secondTradeMergeItem)
        {
            var currencies = new List <Currency>()
            {
                fisrtTradeMergeItem.FirstCurrency,
                fisrtTradeMergeItem.SecondCurrency,
                secondTradeMergeItem.FirstCurrency,
                secondTradeMergeItem.SecondCurrency
            };

            return(currencies.Distinct().Count() < 4);
        }
Beispiel #2
0
        public static bool CanBeThirdCurrencyIn(this TradeMergeItemDto tradeMergeItem, List <TradeMergeItemDto> alreadyAddedTrades)
        {
            if (alreadyAddedTrades.Count != 2)
            {
                throw new SelectedTradesWrongAmountException($"Added for merge trades amount should be 2. Actual amount is {alreadyAddedTrades.Count}.");
            }

            var currencies = alreadyAddedTrades.GetCurrencies();

            var duplicateCurrency = currencies.GroupBy(c => c)
                                    .Where(g => g.Count() > 1)
                                    .Select(g => g.Key)
                                    .Single();

            currencies.RemoveAll(c => c == duplicateCurrency);

            return(currencies.TrueForAll(c => c == tradeMergeItem.FirstCurrency || c == tradeMergeItem.SecondCurrency));
        }