예제 #1
0
        static void Main()
        {
            if (!Utils.IsSupportedRuntimeVersion())
            {
                MessageBox.Show("需要.NET框架, 请升级到 4.6.2 以上",
                                "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                Process.Start(
                    "http://dotnetsocial.cloudapp.net/GetDotnet?tfm=.NETFramework,Version=v4.6.2");
                return;
            }

            Utils.ReleaseMemory(true);

            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            // handle UI exceptions
            Application.ThreadException += Application_ThreadException;
            // handle non-UI exceptions
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            Application.ApplicationExit   += Application_ApplicationExit;
            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Directory.SetCurrentDirectory(Application.StartupPath);
            Logging.OpenLogFile();

            exchangeController = new ExchangeController();
            exchangeController.Start();

            Application.Run();
        }
        public void Initialize()
        {
            var repository = new Repository(context);
            var currency   = new Currency {
                Id = 1, Acronym = "USD", Name = "USA Dollar"
            };
            var currency1 = new Currency {
                Id = 2, Acronym = "EUR", Name = "Euro"
            };

            context.Currencies.Add(currency);
            context.Currencies.Add(currency1);
            var exchange = new Exchange
            {
                Id             = 1,
                srcCurrencyId  = 1,
                Currency       = currency,
                trgtCurrencyId = 2,
                Currency1      = currency1,
                rate           = 0.27
            };

            currency.Exchanges.Add(exchange);
            currency1.Exchanges.Add(exchange);
            context.Exchanges.Add(exchange);

            controller = new ExchangeController(repository);
        }
예제 #3
0
        public PurchaseControllerTest()
        {
            _exchangeController = A.Fake <ExchangeController>();
            _purchaseService    = A.Fake <PurchaseService>();
            _logger             = A.Fake <ILoggerManager>();
            _sut = new PurchasesController(_purchaseService, _exchangeController, _logger);

            _fixture = new Fixture();
        }
예제 #4
0
        public void TestValidateFavorite(string value, bool expectedResult)
        {
            //arrange
            var exchangeController = new ExchangeController();
            //act
            var actualResult = exchangeController.ValidateFavorite(value);

            //assert
            Assert.AreEqual(expectedResult, actualResult);
        }
예제 #5
0
 private static void Application_ApplicationExit(object sender, EventArgs e)
 {
     // detach static event handlers
     Application.ApplicationExit   -= Application_ApplicationExit;
     SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged;
     Application.ThreadException   -= Application_ThreadException;
     if (exchangeController != null)
     {
         exchangeController.Stop();
         exchangeController = null;
     }
 }
예제 #6
0
        public exchanger(ExchangeController exchangeController)
        {
            InitializeComponent();
            syncContext = SynchronizationContext.Current;

            this.exchangeController = exchangeController;

            exchangeController.BalanceChangedEventHandler += view_OnBalanceChanged;
            exchangeController.HistoryChangedEventHandler += view_OnHistoryChanged;
            exchangeController.LogAppendedEventHandler    += view_OnLogAppended;

            FillComboBoxExchange();
            SetFromConfig();
        }
예제 #7
0
        public async void Test1()
        {
            var currencyMock = new Mock <ICurrencyService>();
            var loggerMock   = new Mock <ILogger <ExchangeController> >();

            currencyMock.Setup(x => x.GetRate(CurrencyType.USD)).Returns(Task.FromResult(new Exchange()
            {
                BuyValue = 1, SellValue = 1, Currency = CurrencyType.USD
            }));
            ExchangeController exchange = new ExchangeController(loggerMock.Object, currencyMock.Object);
            var result = await exchange.Get(CurrencyType.USD);

            Assert.IsType <ActionResult <double> >(result);
            //what is the scope of the unit tests? Also add other tests for testing the same controller for exceptions and the other controllers
        }
예제 #8
0
        public JsonResult Refresh(StandardTradeToolInputModel standardTradeToolInputModel)
        {
            restClientController = new RestClientController(standardTradeToolInputModel.EndPoint, standardTradeToolInputModel.HttpMethod);
            restClientController.MakeRequest();
            //ECurrencyPair currencyPair = new ECurrencyPair();
            //decimal tickerPrice = 0.0M;

            //exchangeDataModel.CurrencyPair = currencyPair;
            //exchangeDataModel.TickerPrice = tickerPrice;
            //InitiateTrade();
            string        rawTicker    = restClientController.GetResponse();
            ECurrencyPair currencyPair = ECurrencyPair.NOT_SELECTED;
            decimal       amount       = 0.0m;

            ExchangeController.ProcessRawData(rawTicker, ref currencyPair, ref amount);
            standardTradeToolViewModel.CurrencyPair = currencyPair.ToString();
            standardTradeToolViewModel.Amount       = amount;
            return(Json(standardTradeToolViewModel, JsonRequestBehavior.AllowGet));
        }
예제 #9
0
        public void OnBuyStamina(string rateName)
        {
            Debug.Log("StaminaStoreDirector::OnBuyStamina");

            StartCoroutine(
                ExchangeController.Exchange(
                    _client,
                    _session,
                    _staminaStoreSetting.exchangeNamespaceName,
                    rateName,
                    1,
                    _staminaStoreSetting.onIssueBuyStampSheet,
                    _staminaStoreSetting.onError,
                    _config.Select(item => new EzConfig
            {
                Key   = item.Key,
                Value = item.Value
            }).ToList()
                    )
                );
        }
예제 #10
0
        public IEnumerator Refresh()
        {
            void RefreshExchangeAction(
                string exchangeNamespaceName,
                List <EzRateModel> rateModels
                )
            {
                ExchangeRates = rateModels;

                _onGetExchangeRate.RemoveListener(RefreshExchangeAction);
                onWatchExchangeEvent.Invoke(exchangeNamespaceName, ExchangeRates);
            }

            _onGetExchangeRate.AddListener(RefreshExchangeAction);

            yield return(ExchangeController.GetExchangeRate(
                             _client,
                             _exchangeNamespaceName,
                             _onGetExchangeRate,
                             _onError
                             ));
        }
예제 #11
0
        public void Convert_Perfect()
        {
            // Arrange
            var fakeLatestRates = new Dictionary <string, decimal>()
            {
                { "HUF", 2 }, { "USD", 1 }
            };
            var fakeRepository = new FakeCurrencyRespository();

            fakeRepository.latestRates = fakeLatestRates;
            var controller = new ExchangeController(fakeRepository);

            // Act
            var convertTask = controller.Convert("10", "HUF", "USD");

            convertTask.Wait();
            var convertContent = (JsonResult <Decimal>)convertTask.Result;

            // Assert
            Assert.IsNotNull(convertContent);
            Assert.AreEqual(5, convertContent.Content);
        }
예제 #12
0
        public void Convert_Exception()
        {
            // Arrange
            var fakeRepository = new FakeCurrencyRespository_Exception();
            var controller     = new ExchangeController(fakeRepository);

            try
            {
                // Act
                var convertTask = controller.Convert("10", "HUF", "USD");
                convertTask.Wait();
                throw new Exception("No exception is thrown by controller.");
            }
            catch (AggregateException ex)
            {
                // Assert
                Assert.AreEqual(typeof(HttpResponseException), ex.InnerException.GetType());
                var innerEx      = ex.InnerException as HttpResponseException;
                var innerContent = innerEx.Response.Content.ReadAsStringAsync();
                innerContent.Wait();
                Assert.AreEqual(Messages.ConvertErrorMessage, innerContent.Result);
            }
        }
예제 #13
0
 public ExchangeControllerTest()
 {
     _manager    = new CurrencyManagerFake();
     _controller = new ExchangeController(null, _manager);
 }
예제 #14
0
        public ExchangeControllerTest()
        {
            _sut = new ExchangeController();

            _fixture = new Fixture();
        }