public void HUDAppraiserContactInfoRepository_BulkUpdate()
		{
			//arrange		
			var appraiserContactInfoes = new HUDAppraiserContactInfo[] { 
				new HUDAppraiserContactInfo(){AppraiserID="000F4U",AddressAttentionLine="",City="NORTH WILKESBORO",CreateDate=SafeConvert.ToDateTime("20080501","yyyyMMdd"),CreateDateString="20080501",FaxNumber="3368387386",FirstName="CHARLES",LastName="SINK",LastUpdateDate=SafeConvert.ToDateTime("20110623","yyyymmdd"),LastUpdateDateString="20110623",MiddleInitial="S",NameSuffix="III",PhoneNumber="3368387337",StateCode="NC",StreetAddress="309 10TH ST-RM 202-PO BOX 1063",Zip="286590000"},
				new HUDAppraiserContactInfo(){AppraiserID="000FDM",AddressAttentionLine="FIRST AMERICAN APPRAISAL SVS",City="POWAY",CreateDate=SafeConvert.ToDateTime("19990522","yyyyMMdd"),CreateDateString="19990522",FaxNumber="0000000000",FirstName="BARBARA",LastName="OAKS",LastUpdateDate=SafeConvert.ToDateTime("20100708","yyyymmdd"),LastUpdateDateString="20100708",MiddleInitial="M",NameSuffix="",PhoneNumber="8009846773",StateCode="CA",StreetAddress="12395 FIRST AMERICAN WAY",Zip="920640000"}
																												};
			//act
			_repository.BulkUpdate(appraiserContactInfoes);
			//assert
			_repository.Get().Should().HaveCount(2);
		}
		private string GetAppraiserContactInfoParseProblem(HUDAppraiserContactInfo importedRecord)
		{
			string problemDescription = " problems:";
			problemDescription += string.IsNullOrWhiteSpace(importedRecord.AppraiserID) ? "appraiserID is empty" : "";
			problemDescription += string.IsNullOrWhiteSpace(importedRecord.LastName) ? "LastName is empty" : "";
			problemDescription += string.IsNullOrWhiteSpace(importedRecord.FirstName) ? "FirstName is empty" : "";
			problemDescription += string.IsNullOrWhiteSpace(importedRecord.City) ? "City is empty" : "";
			problemDescription += string.IsNullOrWhiteSpace(importedRecord.StateCode) ? "StateCode is empty" : "";
			problemDescription += string.IsNullOrWhiteSpace(importedRecord.Zip) ? "Zip is empty" : "";
			problemDescription += importedRecord.CreateDate.HasValue ? "" : "cannot parse CreateDate " + importedRecord.CreateDateString;
			problemDescription += importedRecord.LastUpdateDate.HasValue ? "" : "cannot parse LastUpdateDate " + importedRecord.LastUpdateDateString;
			return problemDescription;
		}
		private bool IsStringParsedCorrectly(HUDAppraiserContactInfo importedRecord)
		{
			return !String.IsNullOrWhiteSpace(importedRecord.AppraiserID) ||
							 !String.IsNullOrWhiteSpace(importedRecord.LastName) ||
							 !String.IsNullOrWhiteSpace(importedRecord.FirstName) ||
							 !String.IsNullOrWhiteSpace(importedRecord.City) ||
							 !String.IsNullOrWhiteSpace(importedRecord.StateCode) ||
							 !String.IsNullOrWhiteSpace(importedRecord.Zip) ||
							 !importedRecord.CreateDate.HasValue ||
							 !importedRecord.LastUpdateDate.HasValue;
		}
		public HUDAppraiserContactInfo GetAppraiserContactInfoFromHUDString(string record)
		{
			if (string.IsNullOrWhiteSpace(record))
				throw new ArgumentNullException("HUD record for appraiser contact info cannot be empty");
			if (record.Length != 191)
				throw new ArgumentOutOfRangeException("HUD record length for appraiser contact info is incorrect " + record.Length);

			HUDAppraiserContactInfo appraiserContactInfo = new HUDAppraiserContactInfo();
			appraiserContactInfo.AppraiserID = record.Substring(0, 6).Trim();
			appraiserContactInfo.LastUpdateDateString = record.Substring(10, 8).Trim();
			appraiserContactInfo.LastUpdateDate = SafeConvert.ToDateTime(appraiserContactInfo.LastUpdateDateString, "yyyyMMdd");
			appraiserContactInfo.CreateDateString = record.Substring(22, 8).Trim();
			appraiserContactInfo.CreateDate = SafeConvert.ToDateTime(appraiserContactInfo.CreateDateString, "yyyyMMdd");
			appraiserContactInfo.LastName = record.Substring(30, 20).Trim();
			appraiserContactInfo.FirstName = record.Substring(50, 20).Trim();
			appraiserContactInfo.MiddleInitial = record.Substring(70, 1).Trim();
			appraiserContactInfo.NameSuffix = record.Substring(71, 4).Trim();
			appraiserContactInfo.AddressAttentionLine = record.Substring(75, 30).Trim();
			appraiserContactInfo.StreetAddress = record.Substring(105, 30).Trim();
			appraiserContactInfo.City = record.Substring(135, 17).Trim();
			appraiserContactInfo.StateCode = record.Substring(152, 2).Trim();
			appraiserContactInfo.Zip = record.Substring(157, 9).Trim();
			appraiserContactInfo.PhoneNumber = record.Substring(168, 10).Trim();
			appraiserContactInfo.FaxNumber = record.Substring(180, 10).Trim();

			return appraiserContactInfo;
		}