Пример #1
0
		public Money(Money money)
		{
			Value = money.Value;
			Currency = money.Currency;
			CurrencyConverter = money.CurrencyConverter;
		}
Пример #2
0
		/// <summary>
		/// Вычисление и проставление полных стоимостей цены и её частей на основании подробностей цены
		/// </summary>
		public void CalculateTotalPrices()
		{
			if (TotalPrice == null && PriceBreakdown != null)
			{
				foreach (var pricePart in PriceBreakdown)
				{
					if (pricePart.TotalPrice == null && pricePart.PassengerTypePriceBreakdown != null)
					{
						pricePart.TotalPrice = new Money(pricePart.PassengerTypePriceBreakdown.Sum(passTypePrice => passTypePrice.TotalFare.Value * passTypePrice.TravellerRef.Count), pricePart.PassengerTypePriceBreakdown[0].TotalFare.Currency);
					}
				}

				TotalPrice = new Money(PriceBreakdown.Sum(pricePart => pricePart.TotalPrice.Value), PriceBreakdown[0].TotalPrice.Currency);
			}
		}
Пример #3
0
		/// <summary>
		/// Приводит (если необходимо) валюту второго аргуманта к валюте первого и возращает новый объект с нужной валютой.
		/// </summary>
		/// <param name="sample">То К ЧЕМУ мы будем приводить</param>
		/// <param name="modifiable">То, ЧЬЮ валюту мы будем приводить</param>
		/// <returns>Новый объект на базе второго параметра, но приведённого к валюте первого</returns>
		private static void CorrectCurrency(Money sample, ref Money modifiable)
		{
			if (sample.Currency == null)
			{
				sample.Currency = modifiable.Currency;
			}
			else if (!sample.Currency.Equals(modifiable.Currency))
			{
				modifiable = modifiable.ConvertToCurrency(sample.Currency);
			}
		}