private void InitializeData() { // load rates for selected currency by bank var bankOrg = parent.Source.Organizations.Find(o => o.Title.Value == parent.BankBox.SelectedItem); if (bankOrg == null) { return; } var selectedBank = OrganizationToBankConverter.OrganizationtoBank(bankOrg); // select * from rates where bank = parent.bankBox.SelectedItem; var currencyRates = _currencyRateRepository.GetAllByBankId(selectedBank) .Where(cv => cv.Code == (string)parent.CurrencyBox.SelectedItem) .OrderByDescending(cv => cv.DateTime) .ToList(); // load this data into datagrid currencyRatesTable.Rows.Clear(); foreach (var currencyRate in currencyRates) { var index = currencyRatesTable.Rows.Add(); currencyRatesTable.Rows[index].Cells["Date"].Value = currencyRate.DateTime; currencyRatesTable.Rows[index].Cells["PurchaseRate"].Value = currencyRate.PurchaseRate; currencyRatesTable.Rows[index].Cells["SellingRate"].Value = currencyRate.SellingRate; } }
private void SaveNewCurrencyRates() { foreach (var organization in source.Organizations) { var bank = OrganizationToBankConverter.OrganizationtoBank(organization); var currencyRates = _currencyRateRepository.GetAllByBankId(bank); var newCurrencyRates = organization.CurrencyValues .Select(cv => new CurrencyRate(cv.Code, bank.Id, cv.Buy, cv.Sell, DateTime.Parse(source.Date))) .ToList(); newCurrencyRates.RemoveAll(cr => currencyRates.Contains(cr)); if (newCurrencyRates.Count > 0) { _currencyRateRepository.SaveAll(newCurrencyRates); } } }