/// <summary> /// /// </summary> /// <param name="entity"></param> /// <param name="model"></param> /// <returns></returns> public static CurrencyExchangeRate Update(this CurrencyExchangeRate entity, CurrencyExchangeRateModel model) { if (entity == null) { return(null); } entity.Rate = model.Rate > 0 ? model.Rate : entity.Rate; return(entity); }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <param name="currencies"></param> /// <returns></returns> public static CurrencyExchangeRate ToEntity(this CurrencyExchangeRateModel model, Dictionary <string, Currency> currencies) { return(new CurrencyExchangeRate { SourceId = currencies["source"].Id, TargetId = currencies["target"].Id, Rate = model.Rate, From = (model.Day?.Date ?? DateTime.UtcNow.Date), To = (model.Day?.Date.AddDays(1).AddTicks(-1) ?? DateTime.UtcNow.Date.AddDays(1).AddTicks(-1)) }); }
private void OpenDetails(CurrencyExchangeRateModel model, bool isNew = false) { this.OpenDetailsWindow(new CurrencyExchangeRateDetailsView(_currencyExchangeRateService, model, isNew, _viewModel.Currencies, _viewModel.CurrencyExchangeRates), () => { // update grid if (isNew && _viewModel.CurrencyExchangeRates.FirstOrDefault(_ => _.CurrencyFromId == model.CurrencyFromId && _.CurrencyToId == model.CurrencyToId) == null) { _viewModel.CurrencyExchangeRates.Add(model); } GridCurrencyExchangeRates.Items.Refresh(); NotifyDataChanged(); }); }
public CurrencyExchangeRateDetailsView(ICurrencyExchangeRateService service, CurrencyExchangeRateModel entity, bool isNew, IEnumerable <CurrencyModel> currencies, IEnumerable <CurrencyExchangeRateModel> currencyExchangeRates) : base(service, entity, isNew) { InitializeComponent(); // init _existingCurrencyExchangeRates = currencyExchangeRates; // initialize datacontexts IEnumerable <CurrencyModel> activeCurrencies = currencies.Where(_ => _.IsActive || _.Id == entity.CurrencyFromId || _.Id == entity.CurrencyToId); comboFromCurrencies.ItemsSource = activeCurrencies; comboToCurrencies.ItemsSource = activeCurrencies; // disable currency comboboxes for not new currency exchange rates comboFromCurrencies.IsEnabled = IsNew; comboToCurrencies.IsEnabled = IsNew; // set header and commands panel context LabelHeader.Content = ViewHeader; CommandsPanel.DataContext = Commands; }
public async Task <IActionResult> Post([FromRoute] CurrencyExchangeRateRequest request, [FromBody] CurrencyExchangeRateModel model, CancellationToken token = default) { try { var currencies = await _currencyService.GetCurrenciesByIsoCode(request.Source.IsoCodeValue, request.Target.IsoCodeValue, token : token) .ConfigureAwait(false); if (currencies.Values.Any(x => x == null)) { return(NotFoundObjectResult(nameof(CurrencyService), "currency code don't exist")); } var currencyExchangeRate = model.ToEntity(currencies); await _repository.InsertAsync(currencyExchangeRate, token : token).ConfigureAwait(false); return(CreateObjectResult(currencyExchangeRate.ToModel())); } catch (Exception e) { return(LogAndError500Response(nameof(CurrencyExchangeRatesController), e)); } }