コード例 #1
0
        protected void OnComboCurrencyModeChanged(object sender, EventArgs e)
        {
            currencyMode = (CurrencyMode)comboCurrencyMode.SelectedItem;
            var priceEditColumn = projectTreeView.Columns.First(x => x.Title == "Цена");
            var priceColumn     = projectTreeView.Columns.First(x => x.Title == "Цена в валюте");

            switch (currencyMode)
            {
            case CurrencyMode.Edit:
                labelCurrencyInfo.LabelProp = String.Empty;
                priceEditColumn.Visible     = true;
                priceColumn.Visible         = false;
                break;

            case CurrencyMode.EUR:
                labelCurrencyInfo.LabelProp = String.Format("1 EUR = {0:N2} USD\n1 EUR = {1:N2} RUB",
                                                            CurrencyConverter.Convert(1, "EUR", "USD"),
                                                            CurrencyConverter.Convert(1, "EUR", "RUB")
                                                            );
                priceEditColumn.Visible = false;
                priceColumn.Visible     = true;
                break;

            case CurrencyMode.RUB:
                labelCurrencyInfo.LabelProp = String.Format("100 RUB = {0:N2} USD\n100 RUB = {1:N2} EUR",
                                                            CurrencyConverter.Convert(100, "RUB", "USD"),
                                                            CurrencyConverter.Convert(100, "RUB", "EUR")
                                                            );
                priceEditColumn.Visible = false;
                priceColumn.Visible     = true;
                break;

            case CurrencyMode.USD:
                labelCurrencyInfo.LabelProp = String.Format("1 USD = {0:N2} EUR\n1 USD = {1:N2} RUB",
                                                            CurrencyConverter.Convert(1, "USD", "EUR"),
                                                            CurrencyConverter.Convert(1, "USD", "RUB")
                                                            );
                priceEditColumn.Visible = false;
                priceColumn.Visible     = true;
                break;
            }
            projectTreeView.QueueDraw();
        }
コード例 #2
0
ファイル: GenevaValidation.cs プロジェクト: BrianGoff/BITS
        private string NewSpecialCurrencies(int jobKeyCode, string tradeId, string investmentType, string priceDenomination, string counterInvestment,
                                            string dcFlag, string dcFxRate, CurrencyMode mode, string tradeFX, string counterTDateFx, string counterSDateFx)
        {
			
			double _tradeFX = double.NaN;
            double _dcFxRate = double.NaN;
            double _counterTDateFx = double.NaN;
            double _counterSDateFx = double.NaN;


            try
            {
				
                #region Type conversions and checks

                if (!double.TryParse(tradeFX, out _tradeFX) || double.IsNaN(1.0/_tradeFX))
                    log.InfoFormat(jobKeyCode, "Trade {0}: Invalid Fx Rate ({1})", tradeId, tradeFX);
                if (!double.TryParse(dcFxRate, out _dcFxRate) || double.IsNaN(1.0/_dcFxRate))
					log.InfoFormat(jobKeyCode, "Trade {0}: Invalid Dual Currency Fx Rate ({1})", tradeId, dcFxRate);
                if (!double.TryParse(counterTDateFx, out _counterTDateFx) || double.IsNaN(1.0/_counterTDateFx))
					log.InfoFormat(jobKeyCode, "Trade {0}: Invalid CounterTDateFx Rate ({1})", tradeId, counterTDateFx);
                if (!double.TryParse(counterSDateFx, out _counterSDateFx) || double.IsNaN(1.0/_counterSDateFx))
					log.InfoFormat(jobKeyCode, "Trade {0}: Invalid CounterSDateFx Rate ({1})", tradeId, counterSDateFx);
                if (!priceDenomination.Equals(counterInvestment))
					log.InfoFormat(jobKeyCode, "Trade {0} is DUAL CURRENCY! PriceDenomination {1} CounterInvestment {2}", tradeId, priceDenomination, counterInvestment);

                #endregion

                if (dcFlag.Equals("DC"))
                {
                    switch (mode)
                    {
                        case CurrencyMode.tradeFX:
                            return priceDenomination.Equals(counterInvestment) ? " " : dcFxRate;
                        case CurrencyMode.CounterTDateFx:
                            return counterTDateFx;
                        case CurrencyMode.CounterSDateFx:
                            return counterSDateFx;
                    }
                }


	            if (investmentType.Equals("FXO") && mode == CurrencyMode.tradeFX)
		            return tradeFX;




	            if ((SpecialCurrencies.Contains(priceDenomination) &&
                    SpecialCurrencies.Contains(counterInvestment))
					//Prod1-Prod2 OPTI with AUD
					 && !(investmentType.Equals("OPTI")
					&& priceDenomination.Equals("AUD") 
					&& counterInvestment.Equals("AUD"))) 
                {
                    switch (mode)
                    {
                        case CurrencyMode.CounterSDateFx:
                        case CurrencyMode.CounterTDateFx:
							//return (1.0/_tradeFX).ToString();
		                    return double.IsInfinity(1.0/_tradeFX) ? "" : (1.0/_tradeFX).ToString();
						case CurrencyMode.tradeFX:
                            return " ";
                    }
                }
                else
                {
                    switch (mode)
                    {
                        case CurrencyMode.CounterSDateFx:
                        case CurrencyMode.CounterTDateFx:
                            return " ";
                        case CurrencyMode.tradeFX:
                            return "1.0";
                    }
                }
            }

                #region 1st Version. To be review when DC will come
                /*
				if (SwapTypes.Contains(investmentType) &&
					SpecialCurrencies.Contains(priceDenomination) &&
					SpecialCurrencies.Contains(counterInvestment) &&
					priceDenomination == counterInvestment)
				{
					switch (mode)
					{
						case CurrencyMode.CounterSDateFx:
						case CurrencyMode.CounterTDateFx:
							if (dcFlag.Equals("DC"))
								return (1.0 / _dcFxRate).ToString();
							else
								return (1.0 / _tradeFX).ToString();
						case CurrencyMode.tradeFX:
							if (dcFlag.Equals("DC"))
								return (_dcFxRate).ToString();
							else
								return ""; //(_tradeFX).ToString();
					}
				}
				#region priceDenomination != counterInvestment
				else if (priceDenomination != counterInvestment)
				{
					switch (mode)
					{
						case CurrencyMode.CounterSDateFx:
							return (1.0 / _counterSDateFx).ToString();
						case CurrencyMode.CounterTDateFx:
							return (1.0 / _counterTDateFx).ToString();
						case CurrencyMode.tradeFX:
							if (dcFlag.Equals("DC")) return (1.0 / _dcFxRate).ToString();
							return (1.0 / _tradeFX).ToString();
					}
				}
				#endregion
				else
				{
					if (priceDenomination == counterInvestment)
					{
						//We are generating another spagettii here...
						if (NoCounterFXDenominationTypes.Contains(investmentType)
							&& (mode == CurrencyMode.CounterSDateFx || mode == CurrencyMode.CounterTDateFx))
						{
							return "";
						}

						switch (mode)
						{
							case CurrencyMode.CounterSDateFx:
								return (1.0 / _counterSDateFx).ToString();
							case CurrencyMode.CounterTDateFx:
								return (1.0 / _counterTDateFx).ToString();
							case CurrencyMode.tradeFX:
								return "1.0";

						}
					}
					switch (mode)
					{
						case CurrencyMode.CounterSDateFx:
						case CurrencyMode.CounterTDateFx:
							return "";
						case CurrencyMode.tradeFX:
							if (dcFlag.Equals("DC")) return (1.0 / _dcFxRate).ToString();
							return "1.0";
					}                    
				
				 */
                #endregion

            catch (Exception ex)
            {
                log.ErrorFormat(jobKeyCode, ex.ToString());
            }
            return tradeFX;
        }