public ActionResult Index()
        {
            var exchangeMatrix = new CurrencyExchangeMatrixViewModel();

            exchangeMatrix.Columns = new List <List <CurrencyExchangeViewModel> >();

            int x = 0;

            foreach (var currencyTo in _currencyRepository.Table)
            {
                int y         = 0;
                var newColumn = new List <CurrencyExchangeViewModel>();
                foreach (var currencyFrom in _currencyRepository.Table)
                {
                    var exchange = new CurrencyExchangeViewModel();
                    // If it won't be a delivery from a country to the same country
                    // then populate the matrix with the real data.
                    if (x != y)
                    {
                        var record = _currencyExchangeRepository.Table
                                     .Where(s => (s.CurrencyFrom.Id == currencyFrom.Id) && (s.CurrencyTo.Id == currencyTo.Id))
                                     .FirstOrDefault();
                        if (record == null)
                        {
                            record = new CurrencyExchangeRecord();
                            record.CurrencyFrom = currencyFrom;
                            record.CurrencyTo   = currencyTo;
                            _currencyExchangeRepository.Create(record);
                        }
                        exchange.Id                       = record.Id;
                        exchange.CurrencyFromId           = record.CurrencyFrom.Id;
                        exchange.CurrencyFromCode         = record.CurrencyFrom.Code;
                        exchange.CurrencyToId             = record.CurrencyTo.Id;
                        exchange.CurrencyToCode           = record.CurrencyTo.Code;
                        exchange.RateForBuyer             = record.RateForBuyer;
                        exchange.RateForSeller            = record.RateForSeller;
                        exchange.CurrencyFromFlagFileName = record.CurrencyFrom.FlagFileName;
                        exchange.CurrencyToFlagFileName   = record.CurrencyTo.FlagFileName;
                    }
                    // It's an exchange from a currency to the same currency.
                    // just pass the empty setting to the view.
                    else
                    {
                        exchange.CurrencyFromCode         = currencyFrom.Code;
                        exchange.CurrencyToCode           = currencyTo.Code;
                        exchange.CurrencyFromFlagFileName = currencyFrom.FlagFileName;
                        exchange.CurrencyToFlagFileName   = currencyTo.FlagFileName;
                    }
                    newColumn.Add(exchange);
                    y++;
                }
                exchangeMatrix.Columns.Add(newColumn);
                x++;
            }
            ViewBag.Currencies = _currencyRepository.Table.ToArray();
            return(View(exchangeMatrix));
        }
Esempio n. 2
0
 public CurrencyExchangeView()
 {
     InitializeComponent();
     DataContext = new CurrencyExchangeViewModel();
 }