Esempio n. 1
0
		public NachaFile(NachaFileInfo info, List<NachaFileAppraiserEntry> listOfEntry)
			: this()
		{
			ValidateParams(info, listOfEntry);

			double totalAmount = 0;
			long entryHash = 0;
			_fileHeaderSection = new FileHeaderSection(info.CreationDate, info.CreationDate, info.FileIdModifier);
			_companyBatchHeaderSection = new CompanyBatchHeaderSection(info.CompanyDescriptiveDate, info.EffectiveEntryDate,
																																 info.BatchNumber);
			foreach (var entry in listOfEntry)
			{
				var parsedRoutingNumber = GetParsedRoutingNumber(entry.RoutingNumber);
				totalAmount += (double)entry.Amount;
				entryHash = (entryHash + parsedRoutingNumber.ReceivingDfiIdentification) % MaxEntryhashLength;
				int typeOfAccount = entry.TypeOfAccount == AccountType.Savings ? SavingTypeOfAccount : CheckingOrMoneymarketTypeOfAccount;
				_listOfEntryDetailSection.Add(new EntryDetailSection(typeOfAccount, parsedRoutingNumber.ReceivingDfiIdentification, parsedRoutingNumber.CheckDigit, entry.AccountNumber, (double)entry.Amount, entry.AppraiserOrCompanyId, entry.AppraiserOrCompanyName, entry.UniqueTraceNumber, entry.IsAppraiserWithCompany));
			}
			_companyBatchControlSection = new CompanyBatchControlSection(_listOfEntryDetailSection.Count, entryHash, totalAmount, info.BatchNumber);
			_fileTrailerSection = new FileTrailerSection(GetBlockCount(), _listOfEntryDetailSection.Count, entryHash, totalAmount);
		}
Esempio n. 2
0
		public void CompanyBatchControlSection_should_return_correct_string()
		{
			//arrange
			var companyBatchControlSection = new CompanyBatchControlSection(1, 1, 32154356.34, 1);
			//act
			var actual = companyBatchControlSection.RenderSection();
			//assert
			actual.Should().Be("820000000100000000010000000000000032154356341453737277                         121144550000001");
		}
Esempio n. 3
0
		public void SectionsRender_should_return_correct_string_length()
		{
			//arrange
			int size = 94;
			var header = new FileHeaderSection(DateTime.Now, DateTime.Now, "A");
			var companyBatchHeader = new CompanyBatchHeaderSection(DateTime.Now, DateTime.Now, 1234);
			var entryDetailSection = new EntryDetailSection(1, 5667, 1, "dfs23", 233456.45, "123454567", "First", 1, true);
			var companyBatchControlSection = new CompanyBatchControlSection(1, 1, 32154356.34, 1);
			var fileTrailerSection = new FileTrailerSection(1, 12, 1, 324543.44);
			//act
			var actual = header.RenderSection();
			var actual1 = companyBatchHeader.RenderSection();
			var actual2 = entryDetailSection.RenderSection();
			var actual3 = companyBatchControlSection.RenderSection();
			var actual4 = fileTrailerSection.RenderSection();

			//assert
			actual.Length.Should().Be(size);
			actual1.Length.Should().Be(size);
			actual2.Length.Should().Be(size);
			actual3.Length.Should().Be(size);
			actual4.Length.Should().Be(size);

		}