コード例 #1
0
        public void TestMaintainanceMailService()
        {
            IMailService            mailerService = new MaintainanceMailer();
            CurrencyExchangeService ces           = new CurrencyExchangeService(mailerService);

            mailerService.Mail("*****@*****.**", "Help");
        }
コード例 #2
0
        public int UpdateCurrencyExchangeRates()
        {
            try
            {
                //new up everything
                IMailService            mailerService = new MaintainanceMailer();
                CurrencyExchangeService ces           = new CurrencyExchangeService(mailerService);


                //get all the currencies
                using (var _db = new PortVillasContext())
                {
                    var currencies = _db.CurrencyExchanges.ToList();

                    foreach (var currency in currencies)
                    {
                        ces.UpdateCurrency(currency);
                    }
                }

                return(0);
            }
            catch (Exception ex)
            {
            }
            return(-1);
        }
コード例 #3
0
 private static async Task ShowLocalPricesCurrentProducts(string asseccKey)
 {
     var service = new ProductReportService(new Uri(NorthwindServiceUrl));
     var countryCurrencyService  = new CountryCurrencyService();
     var currencyExchangeService = new CurrencyExchangeService(asseccKey);
     var report = new CurrentProductLocalPriceReport(service, currencyExchangeService, countryCurrencyService);
     await report.PrintReport();
 }
コード例 #4
0
        public async Task CurrencyExchangeService_Returns_ExchangeData()
        {
            var client = new HttpClient();
            CurrencyExchangeService exchangeService = new CurrencyExchangeService(client);

            var exchangeData = await exchangeService.GetExchangeDataAsync(5, CurrencyType.USD, CurrencyType.GBP);

            Assert.IsInstanceOfType(exchangeData, typeof(ExchangeData));
        }
コード例 #5
0
        public async Task ExchangeModel_Returns_Correct_Date()
        {
            var client          = new HttpClient();
            var exchangeService = new CurrencyExchangeService(client);
            var expected        = new DateTime(2014, 6, 6);

            var exchangeData = await exchangeService.GetExchangeDataAsync(1, CurrencyType.USD, CurrencyType.GBP, expected);

            Assert.AreEqual(expected, exchangeData.Date);
        }
コード例 #6
0
        private static async Task CurrentLocalPrices()
        {
            IProductReportService service = new ProductReportService(new Uri(NorthwindServiceUrl));

            ICountryCurrencyService  countryCurrencyService  = new CountryCurrencyService();
            ICurrencyExchangeService currencyExchangeService = new CurrencyExchangeService("5a383f8e25731418bc925cfc6d814087");

            CurrentProductLocalPriceReport currentProductLocalPriceReport = new CurrentProductLocalPriceReport(service, currencyExchangeService, countryCurrencyService);

            await currentProductLocalPriceReport.PrintReport();
        }
コード例 #7
0
 public CurrencyViewModelService(IAsyncRepository <BankAccount> bankAccountRepository,
                                 IAsyncRepository <Currency> currencyRepository,
                                 ILogger <CurrencyViewModelService> logger, IMediator mediator,
                                 CurrencyExchangeService currencyExchangeService)
 {
     _bankAccountRepository = bankAccountRepository;
     _currencyRepository    = currencyRepository;
     _logger   = logger;
     _mediator = mediator;
     _currencyExchangeService = currencyExchangeService;
 }
コード例 #8
0
        public void CalculateForeignCurrencyAmount_Should_Take_Direction_And_Different_Rates_Into_Consideration(CurrencyExchangeDirection direction, double localCurrencyAmount, double sellValue, double buyValue, double expectedAmount)
        {
            //Arrange
            Mock <ICurrencyExchangeTransactionsRepository> mockCcyExchgTransaction = new Mock <ICurrencyExchangeTransactionsRepository>();
            Mock <IRatesRepository> mockRatesRepo           = new Mock <IRatesRepository>();
            CurrencyExchangeService currencyExchangeService = new CurrencyExchangeService(mockCcyExchgTransaction.Object, mockRatesRepo.Object);

            //Act
            double actualAmount = currencyExchangeService.CalculateForeignCurrencyAmount(direction, localCurrencyAmount, sellValue, buyValue);

            //Assert
            Assert.Equal(Math.Round(expectedAmount, 5), Math.Round(actualAmount, 5));
        }
コード例 #9
0
        public async Task Convert()
        {
            ServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection.AddHttpClient(CurrencyExchangeService.HttpClientName);
            serviceCollection.AddSingleton <CurrencyExchangeService>();

            ServiceProvider         serviceProvider = serviceCollection.BuildServiceProvider();
            CurrencyExchangeService sut             = serviceProvider.GetRequiredService <CurrencyExchangeService>();

            Money usdMoney = new Money(100, Currency.Euro);
            Money actual   = await sut.Convert(usdMoney, Currency.Dollar);

            Assert.True(actual.Amount > 100);
            Assert.Equal("USD", actual.Currency.Code);
        }
コード例 #10
0
        public void TestCurrencyService()
        {
            //new up everything
            IMailService            mailerService = new MaintainanceMailer();
            CurrencyExchangeService ces           = new CurrencyExchangeService(mailerService);

            //send a cheeky testmail


            //get all the currencies
            using (var _db = new PortVillasContext())
            {
                var currencies = _db.CurrencyExchanges.ToList();

                foreach (var currency in currencies)
                {
                    ces.UpdateCurrency(currency);
                }
            }
        }
コード例 #11
0
        public async Task GetUserRemainingLimitAsync_Should_Consider_Multiple_Transactions_Per_MonthAsync(string currencyCode, double currencyLimit, double currentlyUsedQuota, double expectedRemaingLimit)
        {
            //Arrange
            int      userId          = 1;
            DateTime transactionDate = DateTime.Now;

            Mock <ICurrencyExchangeTransactionsRepository> mockCcyExchgTransaction = new Mock <ICurrencyExchangeTransactionsRepository>();
            Mock <IRatesRepository> mockRatesRepo = new Mock <IRatesRepository>();

            mockCcyExchgTransaction.Setup(o => o.GetCurrencyTransactionLimitAsync(currencyCode))
            .ReturnsAsync(currencyLimit);

            mockCcyExchgTransaction.Setup(o => o.GetUserAmountExchangedPerMonthAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <DateTime>()))
            .ReturnsAsync(currentlyUsedQuota);

            CurrencyExchangeService currencyExchangeService = new CurrencyExchangeService(mockCcyExchgTransaction.Object, mockRatesRepo.Object);

            //Act
            double actualRemainingLimit = await currencyExchangeService.GetUserRemainingLimitAsync(userId, currencyCode, transactionDate);

            //Assert
            Assert.Equal(expectedRemaingLimit, actualRemainingLimit);
        }
コード例 #12
0
        private static async void Migrate(IApplicationBuilder app)
        {
            using var scope = app.ApplicationServices.CreateScope();
            var services = scope.ServiceProvider;

            try
            {
                var dataContext = services.GetRequiredService <DataContext>();
                await dataContext.Database.MigrateAsync();

                await Seed.SeedProducts(dataContext);

                await Seed.SeedUsers(dataContext);

                await Seed.SeedOrders(dataContext);

                await CurrencyExchangeService.ExecuteJsonAsync();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
コード例 #13
0
 public CurrencyExchangeController(CurrencyExchangeService currenncyExchangeService)
 {
     _currenncyExchangeService = currenncyExchangeService;
 }
コード例 #14
0
 public void Setup()
 {
     repoMock         = new Mock <ICurrencyExchangeRepository>();
     currencyRepoMock = new Mock <ICurrencyRepository>();
     service          = new CurrencyExchangeService(repoMock.Object, currencyRepoMock.Object);
 }