internal PriceSummary CatalogExcursionMinPrice(DataRow row) { PriceSummary result; if (row.IsNull("minprice$forservice") || row.IsNull("minprice$price")) { result = null; } else { result = new PriceSummary { priceType = (row.ReadInt("minprice$forservice") > 0) ? PriceSummary.PriceType.perService : PriceSummary.PriceType.perPerson, price = row.ReadDecimal("minprice$price"), currency = row.ReadNullableTrimmedString("minprice$currency") }; } return(result); }
private PriceSummary ConvertPrice(PriceSummary inp, string targetCurrency) { //ключ для кэша курсов string key = inp.currency + "to" + targetCurrency; //если курса нет в кэше, ищем в базе if (!_courses.ContainsKey(key)) _courses[key] = GetCourse(inp.currency, targetCurrency); //если ключ найден и он реальный, конвертируем if (_courses[key] > 0) { inp.price *= _courses[key]; inp.price = Math.Round(inp.price, 2); inp.currency = targetCurrency; } return inp; }