コード例 #1
0
ファイル: BankIDTest.cs プロジェクト: Kanris/ExchangeRate
        public void CreateBankID_NormalValue()
        {
            var expected = 0;
            var actual   = BankID.Create(0);

            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
ファイル: BankIDTest.cs プロジェクト: Kanris/ExchangeRate
        public void CreateBankID_GreaterBorderValue()
        {
            Int64 borderValue = unchecked (int.MaxValue + 1);
            var   actual      = BankID.Create(Convert.ToInt32(borderValue));

            Assert.AreEqual(borderValue, actual);
        }
コード例 #3
0
        //create new ExchangeRateItem for dgExchangeRate
        private ExchangeRateItem InitializeNewExchangeRateItem(int ID, Tuple <string, string> rateBuySell)
        {
            var bankID = BankID.Create(ID);
            var newExchangeRateItem = new ExchangeRateItem(ID, exchangeRate.BanksInfo[bankID].Name, rateBuySell.Item1, rateBuySell.Item2); //Item1 - buy rate, Item2 - sell rate

            return(newExchangeRateItem);
        }
コード例 #4
0
        private void Menu_EditBank_Click(object sender, RoutedEventArgs e)
        {
            var selectedItem = dgExchangeRate.SelectedItem as ExchangeRateItem;

            if (!ReferenceEquals(selectedItem, null))
            {
                try
                {
                    var selectedID = BankID.Create(selectedItem.ID);

                    var addWindow = new AddEditWindow(exchangeRate.BanksInfo[selectedID]);

                    if (addWindow.ShowDialog() == true)
                    {
                        UpdateDataGrid();
                    }
                }
                catch (Exception except)
                {
                    MessageBox.Show(except.Message);
                }
            }
            else
            {
                MessageBox.Show("Click on item that needed to be edit");
            }
        }
コード例 #5
0
ファイル: Maps.cs プロジェクト: Tenebrous/vscode-zx-debugger
        public GetLabelsResult GetLabelsAt(BankID bankId, ushort address, ushort maxDistance = 0)
        {
            GetLabelsResult result = null;

            ushort highest = 0;

            foreach (var map in this)
            {
                if (!map.Labels.TryGetValueOrBelow(bankId, address, out var actualAddress, out var labels))
                {
                    continue;
                }

                if (actualAddress < highest || address - actualAddress > maxDistance)
                {
                    continue;
                }

                highest = actualAddress;

                result = new GetLabelsResult()
                {
                    Bank    = bankId,
                    Address = address,
                    Labels  = labels
                };
            }

            return(result);
        }
コード例 #6
0
        //save button clicked
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var bankID        = BankID.Create(Convert.ToInt32(txID.Text));           //read id from txID
                var bankName      = BankName.Create(txName.Text);                        //read name from txName
                var bankURI       = BankURI.Create(txURI.Text);                          //read URI from txURI
                var bankPattern   = BankPattern.Create(txPattern.Text);                  //read pattern from txPattern
                var bankBuyIndex  = BankIndex.Create(Convert.ToInt32(txBuyIndex.Text));  //read BuyIndex from txBuyIndex
                var bankSellIndex = BankIndex.Create(Convert.ToInt32(txSellIndex.Text)); //read SellIndex from txSellIndex

                if (oper == Operations.Edit)                                             //if window in "edit mode"
                {
                    MainWindow.exchangeRate.RemoveBankInfo(this.bankInfo.ID);            //remove bankinfo from list
                    FileHelper.DeleteFromFile(this.bankInfo);                            //remove bankinfo from file
                }

                var bankInfo = CreateBankInfo(bankID, bankName, bankURI, bankPattern, bankBuyIndex, bankSellIndex);
                MainWindow.exchangeRate.AddBankInfo(bankInfo); //save bankinfo in list
                FileHelper.WriteInFile(bankInfo);              //save bankinfo in file

                this.DialogResult = true;
                this.Close(); //close file
            }
            catch (Exception excep)
            {
                MessageBox.Show(excep.Message);
            }
        }
コード例 #7
0
        //create bankInfo class
        private BankInfo CreateBankInfo(BankID bankID, BankName bankName, BankURI bankURI,
                                        BankPattern bankPattern, BankIndex bankBuy, BankIndex bankSell)
        {
            var newBankInfo = new BankInfo(bankID, bankName, bankURI, bankPattern, bankBuy, bankSell);

            return(newBankInfo);
        }
コード例 #8
0
ファイル: BankIDTest.cs プロジェクト: Kanris/ExchangeRate
        public void ConvertBankID_ToString()
        {
            var expected = "1";

            var actual = BankID.Create(1).ToString();

            Assert.AreEqual(expected, actual);
        }
コード例 #9
0
ファイル: BankIDTest.cs プロジェクト: Kanris/ExchangeRate
        public void CreateBankID_BorderValue()
        {
            var borderValue = int.MaxValue;

            var actual = BankID.Create(borderValue);

            Assert.AreEqual(borderValue, actual);
        }
コード例 #10
0
        public void GetSellRate()
        {
            string expected = "2740.00"; //check on web-site sell exchange rate (USD)

            var    neededBankID = BankID.Create(1);
            string actual       = exchangeRate.GetSellRate(neededBankID).Result; //get sell rate from web-site

            Assert.AreEqual(expected, actual);
        }
コード例 #11
0
        public void GetBuyRate()
        {
            string expected = "2685.00"; //check on web-site buy exchange rate (USD)

            var    neededBankID = BankID.Create(1);
            string actual       = exchangeRate.GetBuyRate(neededBankID).Result; //get buy rate from web-site

            Assert.AreEqual(expected, actual);
        }
コード例 #12
0
        public void GetBuySellRate()
        {
            var expected = new Tuple <string, string>("2685.00", "2740.00"); //check on web-site buy and sell exchange rate (USD)

            var neededBankID = BankID.Create(1);
            var actual       = exchangeRate.GetBuySellRate(neededBankID).Result; //get buy and sell rate from web-site

            Assert.AreEqual(expected, actual);
        }
コード例 #13
0
        public static void InitializeClass(TestContext testContext)
        {
            BankID      bankID    = BankID.Create(1);
            BankName    bankName  = BankName.Create("Ощадбанк");
            BankURI     bankURI   = BankURI.Create("https://www.oschadbank.ua/ru/private/currency/currency_rates/");
            BankPattern pattern   = BankPattern.Create(@"<td class=""text-right"">(\d+\.\d+)</td>");
            BankIndex   buyIndex  = BankIndex.Create(1);
            BankIndex   sellIndex = BankIndex.Create(2);

            exchangeRateItem = new BankInfo(bankID, bankName, bankURI, pattern, buyIndex, sellIndex); //initialize BankInfo item

            exchangeRate = new ExchangeRate();                                                        //initialize ExchangeRate class
        }
コード例 #14
0
        public static void Initialize(TestContext testContext)
        {
            File.Delete("BanksInfo.csv"); //delete file if it exist

            var bankID        = BankID.Create(1);
            var bankName      = BankName.Create("Укргазбанк");
            var bankURI       = BankURI.Create("https://www.ukrgasbank.com/");
            var bankPattern   = BankPattern.Create(@"<td class=""val"">(\d+\.\d+)</td>");
            var bankBuyIndex  = BankIndex.Create(0);
            var bankSellIndex = BankIndex.Create(1);

            bankInfo  = new BankInfo(bankID, bankName, bankURI, bankPattern, bankBuyIndex, bankSellIndex);
            bankInfo2 = new BankInfo(BankID.Create(2), bankName, bankURI, bankPattern, bankBuyIndex, bankSellIndex);
        }
コード例 #15
0
ファイル: Map.cs プロジェクト: Tenebrous/vscode-zx-debugger
        void AddMapping(string bankStr, string addressStr, string fileStr, string lineStr, List <Label> labelList)
        {
            var bank    = new BankID(bankStr);
            var address = Convert.Parse(addressStr, isHex: true);

            if (labelList != null && labelList.Count > 0)
            {
                Labels.TryAdd(bank, address, out var labels);
                labels.AddRange(labelList);

                foreach (var l in labelList)
                {
                    ByLabel[l.Name].Add(new LabelLocation()
                    {
                        Map     = this,
                        BankID  = bank,
                        Address = address,
                        Comment = l.Comment
                    }
                                        );
                }
            }

            if (!string.IsNullOrWhiteSpace(fileStr))
            {
                var normalisedFileStr = Path.GetFullPath(Path.Combine(SourceRoot, fileStr));
                var line = int.Parse(lineStr);

                Maps.Files.TryAdd(normalisedFileStr, out var file);

                if (Source.TryAdd(bank, address, out var sym,
                                  (pBank, pAddress) => new FileLine(file, line)
                                  )
                    )
                {
                    // TryAdd returns false if item was already there, true if it was added

                    if (sym.File != file)
                    {
                        sym.File = file;
                        sym.Line = line;
                    }
                    else if (line > sym.Line)
                    {
                        sym.Line = line;
                    }
                }
            }
        }
コード例 #16
0
ファイル: Maps.cs プロジェクト: Tenebrous/vscode-zx-debugger
        public AddressDetails GetAddressDetails(BankID bankId, ushort address, ushort maxDistance = 0)
        {
            var result = new AddressDetails()
            {
                Bank    = bankId,
                Address = address
            };

            ushort highestLabel = 0;

            foreach (var map in this)
            {
                if (result.Source == null && map.Source.TryGetValue(bankId, address, out var source))
                {
                    result.Source = source;
                }

                if (map.Labels.TryGetValueOrBelow(bankId, address, out var actualAddress, out var labels))
                {
                    if (actualAddress >= highestLabel && address - actualAddress <= maxDistance)
                    {
                        highestLabel           = actualAddress;
                        result.Labels          = labels;
                        result.LabelledAddress = actualAddress;
                    }

                    if (actualAddress == address)
                    {
                        result.LabelledSource = result.Source;
                    }
                    else
                    {
                        map.Source.TryGetValue(bankId, actualAddress, out result.LabelledSource);
                    }
                }
            }

            //Logging.Write( Logging.Severity.Message, result.ToString() );

            return(result);
        }
コード例 #17
0
ファイル: FileHelper.cs プロジェクト: Kanris/ExchangeRate
        private static BankInfo CreateBankInfo(string lineFromFile)
        {
            var items = lineFromFile.Split(',');

            items = items.Select(x => x.Trim()).ToArray();                //remove spaces in words
            items = items.Where(x => !String.IsNullOrEmpty(x)).ToArray(); //remove empty items

            if (items.Length == 6)
            {
                BankID      bankID      = BankID.Create(Convert.ToInt32(items[0]));
                BankName    bankName    = BankName.Create(items[1]);
                BankURI     bankURI     = BankURI.Create(items[2]);
                BankPattern bankPattern = BankPattern.Create(items[3]);
                BankIndex   bankBuy     = BankIndex.Create(Convert.ToInt32(items[4]));
                BankIndex   bankSell    = BankIndex.Create(Convert.ToInt32(items[5]));

                return(new BankInfo(bankID, bankName, bankURI, bankPattern, bankBuy, bankSell));
            }
            else
            {
                throw new Exception("Wrong data in file");
            }
        }
コード例 #18
0
        private void dgExchangeRate_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            var selectedItem = dgExchangeRate.SelectedItem as ExchangeRateItem;

            if (!ReferenceEquals(selectedItem, null))
            {
                try
                {
                    var selectedID = BankID.Create(selectedItem.ID);

                    var editWindow = new AddEditWindow(exchangeRate.BanksInfo[selectedID]);

                    if (editWindow.ShowDialog() == true)
                    {
                        UpdateDataGrid();
                    }
                }
                catch (Exception excep)
                {
                    MessageBox.Show(excep.Message);
                }
            }
        }
コード例 #19
0
 public override string ToString()
 {
     return(string.Format("BankId={0} ---- BankName={1}", BankID.ToString(), BankaAdi));
 }
コード例 #20
0
        public override bool ReadMemoryConfiguration(Memory memory)
        {
            var currentPages       = SendAndReceiveSingle("get-memory-pages");
            var currentPagingState = SendAndReceiveSingle("get-paging-state");

            // don't get verbose page list if the simple page lists haven't changed
            if (_lastGetMemoryPages == currentPages && _lastGetPagingState == currentPagingState)
            {
                return(false);
            }

            _lastGetMemoryPages = currentPages;
            _lastGetPagingState = currentPagingState;

            memory.ClearConfiguration();
            memory.PagingEnabled = true;

            // now get the verbose page lists
            var lines = SendAndReceive("get-memory-pages verbose", _tempMemoryConfig);

            int    count        = 0;
            string indexStr     = null;
            string typeStr      = null;
            string numberStr    = null;
            string shortnameStr = null;
            string startAddrStr = null;
            string endAddrStr   = null;

            foreach (var line in lines)
            {
                var match = _regexPages.Match(line);

                if (!match.Success)
                {
                    continue;
                }

                count += UpdateFromRegexGroup(match.Groups, "index", ref indexStr);
                count += UpdateFromRegexGroup(match.Groups, "type", ref typeStr);
                count += UpdateFromRegexGroup(match.Groups, "number", ref numberStr);
                count += UpdateFromRegexGroup(match.Groups, "shortname", ref shortnameStr);
                count += UpdateFromRegexGroup(match.Groups, "startaddr", ref startAddrStr);
                count += UpdateFromRegexGroup(match.Groups, "endaddr", ref endAddrStr);

                if (count != 6)
                {
                    continue;
                }

                if (typeStr == "System")
                {
                    typeStr   = numberStr;
                    numberStr = "0";
                }

                var number    = int.Parse(numberStr);
                var startAddr = Convert.Parse(startAddrStr);
                var endAddr   = Convert.Parse(endAddrStr);
                var length    = (ushort)(endAddr - startAddr + 1);

                var bankID = new BankID(typeStr, number, BankID.PartEnum.All);
                memory.SetAddressBank(startAddr, length, memory.Bank(bankID));

                indexStr = typeStr = numberStr = shortnameStr = startAddrStr = endAddrStr = null;
                count    = 0;
            }

            return(true);
        }
コード例 #21
0
 public override string ToString()
 {
     return(BankID.ToString() + ' ' + BranchID.ToString());
 }
コード例 #22
0
ファイル: BankIDTest.cs プロジェクト: Kanris/ExchangeRate
 public void CreateBankID_LessThanZero()
 {
     var bankID = BankID.Create(-1);
 }