Ejemplo n.º 1
0
        public static void UpdateUserBalance(Guid userId, CurrenciesEnum currency, double balanceAddition, UpdateBalanceType updateType)
        {
            try
            {
                using (var ctx = new RentooloEntities())
                {
                    var obj = ctx.Wallets.FirstOrDefault(x => x.UserId == userId && x.CurrencyId == (int)currency);
                    if (obj != null)
                    {
                        obj.Value = obj.Value + balanceAddition;
                    }
                    else
                    {
                        Wallets wallet = new Wallets();

                        wallet.Value      = balanceAddition;
                        wallet.UserId     = userId;
                        wallet.CurrencyId = (int)currency;
                        wallet.CreateDate = DateTime.Now;

                        ctx.Wallets.Add(wallet);
                    }

                    ctx.SaveChanges();
                }
            }
            catch (System.Exception ex)
            {
                DataHelper.AddException(ex);
            }
        }
Ejemplo n.º 2
0
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     if (value != null)
     {
         CurrenciesEnum enumValue = (CurrenciesEnum)value;
         return(enumValue);
     }
     return(null);
 }
        //public async Task<ExchangeRateOnADate> GetExchangeRateOnADateAsync(
        //    string baseCurrency, string targetCurrency, string date)
        //{
        //    var httpClient = _httpClientFactory.CreateClient();
        //    var response = await httpClient
        //        .GetAsync($"https://api.exchangeratesapi.io/{date}?base={baseCurrency}&symbols={targetCurrency}");
        //    if (response.IsSuccessStatusCode)
        //    {
        //        return JsonConvert.DeserializeObject<ExchangeRateOnADate>(
        //            await response.Content.ReadAsStringAsync());
        //    }
        //    return null;
        //}

        public async Task <IEnumerable <ExchangeRateOnADate> > GetExchangeRatesOnDatesAsync(CurrenciesEnum baseCurrency,
                                                                                            CurrenciesEnum targetCurrency, IEnumerable <DateTime> dates)
        {
            var httpClient = _httpClientFactory.CreateClient();

            var singleDateUrls = dates.Select(date =>
                                              $"https://api.exchangeratesapi.io/{date:yyyy-MM-dd}?base={baseCurrency}&symbols={targetCurrency}")
                                 .ToList();

            //Create tasks query
            var getRatesOnDatesTasksQuery =
                from singleDateUrl in singleDateUrls
                select GetRateOnDateAsync(httpClient, singleDateUrl);

            //Run tasks
            var getRatesOnDatesTasks = getRatesOnDatesTasksQuery.ToList();

            return(await Task.WhenAll(getRatesOnDatesTasks));
        }