protected void AddToList(ref List <ExchangeRate> list, enCurrency sale, enCurrency buy, decimal rate) { var obj = new ExchangeRate { CurrencySale = sale, CurrencyBuy = buy, Rate = (double)rate }; list.Add(obj); }
/// <summary> /// Рекурсиынй поиск всех возможных цепочек валют для обмена /// </summary> /// <param name="variants">Варианты обмена (ref указан только для удобства чтения кода, передается всё равно ReferenseType)</param> /// <param name="toCurrency">Валюта покупки</param> /// <param name="currentSteps">Уже сделанные шаги для покупки валюты</param> private void FillCurrencyChain(ref List <List <enCurrency> > variants, enCurrency toCurrency, List <enCurrency> currentSteps) { foreach (var currency in Enum.GetValues(typeof(enCurrency))) { if ((enCurrency)currency == enCurrency.Unknow || currentSteps.Contains((enCurrency)currency)) { continue; } else if (toCurrency == (enCurrency)currency) { var list = new List <enCurrency>(currentSteps.Count + 1); list.AddRange(currentSteps); list.Add(toCurrency); variants.Add(list); } else { var newSteps = new List <enCurrency>(currentSteps.Count + 1); newSteps.AddRange(currentSteps); newSteps.Add((enCurrency)currency); FillCurrencyChain(ref variants, toCurrency, newSteps); } } }
public static ProfitRecording GetLatestByExchangeAndCurrnecy(enExchange exchange, enCurrency currency, string arbSymbol) { ProfitRecording obj = new ProfitRecording(); DataSet ds = new DAL.ProfitRecordings().GetLatestByExchangeAndCurrnecy(exchange, currency, arbSymbol); if (obj.MapData(ds) == false) { obj = null; } return(obj); }