Esempio n. 1
0
        /// <summary>
        /// Ctor is based on single line from the fed's text report
        /// </summary>
        /// <param name="li"></param>
        public static Bank GetBankFromDynData(dynamic li)
        {
            var          bank         = new Bank();
            const string COMMA        = ",";
            const string LETTER_Y     = "Y";
            var          unfoldedName = Bank.GetBankFullName(li.BankName);

            bank.AddName(KindsOfNames.Legal, unfoldedName);
            bank.AddName(KindsOfNames.Abbrev, li.BankName);
            bank.Rssd = new ResearchStatisticsSupervisionDiscount {
                Value = li.BankId
            };
            if (UsCityStateZip.TryParse(li.Location, out UsCityStateZip cityOut))
            {
                bank.BusinessAddress = new PostalAddress {
                    CityArea = cityOut
                }
            }
            ;
            if (TypeOfBankAbbrev3Enum.ContainsKey(li.Chtr))
            {
                bank.BankType = TypeOfBankAbbrev3Enum[li.Chtr];
            }
            var assets = new BankAssetsSummary {
                Src = FedLrgBnk.RELEASE_URL
            };

            if (decimal.TryParse(li.ConsolAssets.Replace(COMMA, string.Empty), out decimal conAssts))
            {
                assets.TotalAssets = conAssts * 1000;
            }
            if (decimal.TryParse(li.DomesticAssets.Replace(COMMA, string.Empty), out decimal domAssts))
            {
                assets.DomesticAssets = domAssts * 1000;
            }
            if (int.TryParse(li.NumOfDomBranches.Replace(COMMA, string.Empty), out int domBranches))
            {
                assets.DomesticBranches = domBranches;
            }
            if (int.TryParse(li.NumOfFgnBranches.Replace(COMMA, string.Empty), out int frnBranches))
            {
                assets.ForeignBranches = frnBranches;
            }
            bank.IsInternational = li.Ibf == LETTER_Y;
            if (int.TryParse(li.PercentFgnOwned, out int pfo))
            {
                assets.PercentForeignOwned = Math.Round((double)pfo / 100, 2);
            }
            bank.Assets = new Dictionary <DateTime, BankAssetsSummary> {
                { li.RptDate, assets }
            };
            return(bank);
        }
Esempio n. 2
0
        public void TestTryParse()
        {
            var testAddresses = new[]
            {
                "RIVERTON WY 82501",
                "Los Angeles CA 90029",
                "Los Angeles, CA 90029",
                "CARROLLTON MS 38917",
                "TAYLORS SC 29687",
                "CARROLLTON MS 38917",
                "ASHLANDCITY TN 37015",
                "Riverside CA 92501",
                "PLEASANTVIEW TN 37146",
                "FRANKLIN TN 37067",
                "FRENCH CAMP, MS 39745",
                "MURFREESBORO TN 37128",
                "Vernal UT 84078",
                "Roosevelt UT 84066",
                "HILTON HEAD SC 29926",
                "SARDIS MS 38666",
                "FRANKLIN TN 37069",
                "VENTURA CA 93004",
                "Mayfield KY 42066",
                "Washington DC 20006"
            };

            foreach (var testAddr in testAddresses)
            {
                var testResult = UsCityStateZip.TryParse(testAddr, out var testResultOut);
                Assert.IsTrue(testResult);
                Assert.AreNotEqual(string.Empty, testResultOut.City);
                Assert.AreNotEqual(string.Empty, testResultOut.StateAbbrev);
                Assert.AreNotEqual(string.Empty, testResultOut.ZipCode);
            }

            var anotherTest = UsCityStateZip.TryParse("EL CAMPO, TX", out var usCityStateZip);

            Assert.IsFalse(anotherTest);
            Assert.AreEqual("El Campo", usCityStateZip.City);
            Assert.AreEqual("TX", usCityStateZip.StateAbbrev);
            Console.WriteLine(usCityStateZip.City);
            Console.WriteLine(usCityStateZip.StateAbbrev);
        }