private static async Task RateBOMX(string Currency, DateTime date) { IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOMX, Resources.bmxSecret); IBankResult result = await ibank.GetRateAsync(Currency, date); PrintReSult(Currency, result); }
public async Task RBA_GetRateAsyncShoudReturn() { DateTime date = new DateTime(2018, 1, 17); #region Arrange IBankResult expected = new BankResult() { BankName = "Reserve Bank of Australia", HomeCurrency = "AUD", ExchangeRate = 1.2571M, RateDate = date }; #endregion #region Act IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.RBA); IBankResult actual = await ibank.GetRateAsync("USD", date); #endregion #region Assert //Assert.Equal(expected, actual); Assert.Equal(expected.RateDate, actual.RateDate); Assert.Equal(expected.ExchangeRate, actual.ExchangeRate); Assert.Equal(expected.BankName, actual.BankName); Assert.Equal(expected.HomeCurrency, actual.HomeCurrency); #endregion }
public async Task BOC_GetRateAsyncShoudReturn(decimal expectedExchangeRate, DateTime requestedRateDate, DateTime expectedRateDate, string currency) { #region Arrange IBankResult expected = new BankResult() { BankName = "Bank of Canada", HomeCurrency = "CAD", ExchangeRate = expectedExchangeRate, RateDate = expectedRateDate }; IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); #endregion #region Act IBankResult actual = await ibank.GetRateAsync(currency, requestedRateDate); #endregion #region Assert //Assert.Equal(expected, actual); Assert.Equal(expected.RateDate, actual.RateDate); Assert.Equal(expected.ExchangeRate, actual.ExchangeRate); Assert.Equal(expected.BankName, actual.BankName); Assert.Equal(expected.HomeCurrency, actual.HomeCurrency); #endregion }
public override void OnSaved(object sender, EntityAfterEventArgs e) { base.OnSaved(sender, e); Entity entity = (Entity)sender; //UserConnection = entity.UserConnection; var amountFC = entity.GetTypedColumnValue <decimal>("AmountFC"); var date = entity.GetTypedColumnValue <DateTime>("TransactionDate"); var currencyId = entity.GetTypedColumnValue <Guid>("CurrencyId"); string shortCurrency = entity.FindValueById <string>("Currency", currencyId, "ShortName"); IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); IBankResult result = null; Task.Run(async() => { result = await ibank.GetRateAsync(shortCurrency, date); }).Wait(); entity.SetColumnValue("FxRate", result.ExchangeRate); entity.SetColumnValue("AmountHC", amountFC * result.ExchangeRate); entity.Save(); _log.Info($"rate:{result.ExchangeRate} on {result.RateDate:dd-MMM-yyyy}"); }
private static async Task RateRBA(string Currency, DateTime date) { IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.RBA); IBankResult result = await ibank.GetRateAsync(Currency, date); PrintReSult(Currency, result); }
private static async Task RateBOE(string Currency, DateTime date) { IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOE); IBankResult result = await ibank.GetRateAsync(Currency, date); result.ExchangeRate = Decimal.Round((1 / result.ExchangeRate), 4); PrintReSult(Currency, result); }
public void CreatingBankWithSameNameGetsSameBank() { _bank.CreateAccount(1); _bank.CreateAccount(2); var accounts = _bank.GetAccounts(); Assert.AreEqual(2, accounts.Count); var bankDuplicate = BankFactory.GetBank("DNB"); accounts = bankDuplicate.GetAccounts(); Assert.AreEqual(2, accounts.Count); }
DV_10132020_EN_INTERFACES.BankResult IForeignExchangeApi.GetEcbRate(string currency, DateTime date) { var ECB = BankFactory.GetBank(BankFactory.SupportedBanks.ECB); IBankResult EcbResult = ECB.GetRateAsync(currency, date).Result; DV_10132020_EN_INTERFACES.BankResult result = new DV_10132020_EN_INTERFACES.BankResult(); result.BankName = EcbResult.BankName; result.ExchangeRate = EcbResult.ExchangeRate; result.RateDate = EcbResult.RateDate; result.HomeCurrency = EcbResult.HomeCurrency; return(result); }
public DV_10132020_EN_INTERFACES.BankResult GetBOCRate(string currency, DateTime date) { var BOC = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); IBankResult BocResult = BOC.GetRateAsync(currency, date).Result; DV_10132020_EN_INTERFACES.BankResult result = new DV_10132020_EN_INTERFACES.BankResult(); result.BankName = BocResult.BankName; result.ExchangeRate = BocResult.ExchangeRate; result.RateDate = BocResult.RateDate; result.HomeCurrency = BocResult.HomeCurrency; return(result); }
public BankResult Validate(PrevalidateExpenseReportLineDataContract request) { //Call: [APP]/0/rest/PrevalidateExpenseReportLine/Validate userConnection = UserConnection ?? SystemUserConnection; IBank Bank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); BankResult result = new BankResult(); string shortCurrency = FindValueById <string>("Currency", request.CurrencyId, "ShortName"); System.Threading.Tasks.Task.Run(async() => { IBankResult response = await Bank.GetRateAsync(shortCurrency, request.TransactionDate); result = (BankResult)response; }).Wait(); return(result); }
public override void OnSaved(object sender, EntityAfterEventArgs e) { base.OnSaved(sender, e); Entity entity = (Entity)sender; userConnection = entity.UserConnection; string[] ObservableColumns = { "AmountHC", "AmountFC", "Currency" }; bool isChangeInteresting = false; foreach (EntityColumnValue mc in e.ModifiedColumnValues) { if (Array.IndexOf(ObservableColumns, mc.Column.Name) > -1) { isChangeInteresting = true; } } if (!isChangeInteresting) { return; } Guid currencyId = entity.GetTypedColumnValue <Guid>("CurrencyId"); string currencyName = GetCurrencyName(currencyId); IBank bank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); IBankResult bankResult = Task.Run(() => bank.GetRateAsync(currencyName, DateTime.Today)).Result; decimal rate = bankResult.ExchangeRate; decimal amountFC = entity.GetTypedColumnValue <decimal>("AmountFC"); decimal amountHC = rate * amountFC; entity.SetColumnValue("AmountHC", amountHC); entity.Save(); Guid expenseReportId = entity.GetTypedColumnValue <Guid>("ExpenseReportId"); UpdateExpenseReport(entity.UserConnection, expenseReportId); MsgChannelUtilities.PostMessage(userConnection, GetType().Name, "UpdatedExpenseReportLine"); }
public void BOC_ShoudThrowDate() { #region Arrange DateTime date = new DateTime(2017, 1, 2); string expectedMessage = @"Date must be greater than 03-Jan-2017 (Parameter 'date')"; #endregion #region Act IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); #endregion #region Assert var exception = Record.ExceptionAsync( async() => await ibank.GetRateAsync("USD", date)); exception.Wait(); Assert.IsType <ArgumentOutOfRangeException>(exception.Result); Assert.Equal("date", ((ArgumentException)exception.Result).ParamName); Assert.Equal(exception.Result.Message, expectedMessage); #endregion }
public async Task CBR_ShoudThrowCurrency() { #region Arrange DateTime date = new DateTime(2020, 1, 8); string expectedMessage = $"Central bank of the Russian Federation does not support XXX"; IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.CBR); #endregion #region Act var exception = Record.ExceptionAsync( async() => await ibank.GetRateAsync("XXX", date)); exception.Wait(); #endregion #region Assert Assert.Equal(expectedMessage, exception.Result.Message); Assert.IsType <NotImplementedException>(exception.Result); await Assert.ThrowsAsync <NotImplementedException>( async() => await ibank.GetRateAsync("XXX", date)); #endregion }
public async Task CBR_ShoudThrowDate() { #region Arrange DateTime date = new DateTime(1992, 6, 1); string expectedMessage = @"Date must be greater than 03-Jan-2017 (Parameter 'date')"; IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); #endregion #region Act var exception = Record.ExceptionAsync( async() => await ibank.GetRateAsync("USD", date)); exception.Wait(); #endregion #region Assert Assert.Equal(expectedMessage, exception.Result.Message); Assert.IsType <ArgumentOutOfRangeException>(exception.Result); await Assert.ThrowsAsync <ArgumentOutOfRangeException>( async() => await ibank.GetRateAsync("USD", date)); #endregion }
public async Task RBA_ShoudThrowDate() { #region Arrange DateTime date = new DateTime(2017, 1, 8); string expectedMessage = @"Date must be greater than 01-Jan-2018"; #endregion #region Act IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.RBA); #endregion #region Assert var exception = Record.ExceptionAsync( async() => await ibank.GetRateAsync("KRW", date)); exception.Wait(); Assert.Equal(exception.Result.Message, expectedMessage); Assert.IsType <NotImplementedException>(exception.Result); await Assert.ThrowsAsync <NotImplementedException>( async() => await ibank.GetRateAsync("KRW", date)); #endregion }
public void Initialize() { _bazaar = new Bazaar(); _bank = BankFactory.GetBank("DnB"); }
/// <summary> /// Constructor /// </summary> /// <param name="amountOfCustomers"> /// Number of customer to be created /// </param> public Client(int amountOfCustomers) { _bank = BankFactory.GetBank("DNB"); _bazaar = new Bazaar(); _threadHandler = new ThreadHandler(amountOfCustomers); }
static void Main(string[] args) { #region singleton /* Task task1 = Task.Factory.StartNew(() => { * Counter counter1 = Counter.GetInstance(); * counter1.AddOne(); * Console.WriteLine("counter 1 :"+ counter1.count.ToString()); * }); * * Task task2 = Task.Factory.StartNew(() => { * Counter counter2 = Counter.GetInstance(); * counter2.AddOne(); * Console.WriteLine("counter 2 :"+ counter2.count.ToString()); * Console.WriteLine(); * }); */ //counter1.AddOne(); //Console.WriteLine("counter 1 :"+ counter1.count.ToString()); //Console.WriteLine("counter 2 :"+ counter2.count.ToString()); #endregion #region prototype /*EmployeePrototype tempEmp1 = new TempEmployee(); * tempEmp1.Name = "temp employee 1"; * tempEmp1.Id = 1; * tempEmp1.EmpAddress = new Address{City="city 1", Building="B1", StreetName="street name"}; * * EmployeePrototype tempEmp2 =tempEmp1.ShallowCopy(); * * Console.WriteLine("========= Temp Emp 1 Original Values============="); * Console.WriteLine(tempEmp1.ToString()); * Console.WriteLine("========= Temp Emp 2 Copy========================"); * Console.WriteLine(tempEmp2.ToString()); * * tempEmp2.EmpAddress.City="new city"; * tempEmp2.Name="sadasdasd"; * tempEmp2.Id=1000; * Console.ForegroundColor = ConsoleColor.Cyan; * Console.WriteLine("========= Temp Emp 1 After Change ============="); * Console.WriteLine(tempEmp1.ToString()); * Console.WriteLine("========= Temp Emp 2 =========================="); * Console.WriteLine(tempEmp2.ToString());*/ #endregion #region Builder /*System.Text.StringBuilder sb =new System.Text.StringBuilder(); * sb.Append("Word 1,"); * sb.Append("Word 2"); * * WriteColoredLine(sb.ToString(),ConsoleColor.Cyan);*/ /*WriteColoredLine("***Builder Pattern***",ConsoleColor.Yellow); * Director director = new Director(); * IBuilder carBuilder = new Car("Jeep"); * IBuilder motorCycleBuilder = new MotorCycle("Honda");*/ // Making Car /*director.Construct(carBuilder); * Product car = carBuilder.GetVehicle(); * WriteColoredLine($"Car {car.Show()}"); * * //Making MotorCycle * director.Construct(motorCycleBuilder); * Product motorCycle = motorCycleBuilder.GetVehicle(); * WriteColoredLine($"MotorCycle {motorCycle.Show()}");*/ #endregion #region Factory Method string cardNumber, bankCode; BankFactory bankFactory = new BankFactory(); WriteColoredLine("Enter your card number", ConsoleColor.Cyan); cardNumber = Console.ReadLine(); bankCode = cardNumber.Substring(0, 6); IBank bank = bankFactory.GetBank(bankCode); IPaymentCard paymentCard = bankFactory.GetPaymentCard("12"); WriteColoredLine(bank.Withdraw()); WriteColoredLine(paymentCard.GetName()); #endregion Console.ReadKey(); }
public void SetUp() { _bank = BankFactory.GetBank("DNB"); }