public IEnumerable <tcIncome> TransferDTIncomesToTCIncomes(CertificationTransferUnitOfWork uow, tcDTFamilyMember dtFamilyMember, tcFamilyMember familyMember) { tcIncome newIncome = null; foreach (tcDTIncome dtIncome in dtFamilyMember.tcDTIncomes) { newIncome = new tcIncome { tcFamilyMember = familyMember, IncomeDescription = dtIncome.IncomeDescription, ExternalKey = dtIncome.ExternalKey, YearlyIncomeAmount = dtIncome.YearlyIncomeAmount, tcIncomeType = uow.IncomeTypeRepository.Get(t => t.IncomeType.Trim().ToLower() == dtIncome.tcDTIncomeType.IncomeType.Trim().ToLower() && t.IsActive).SingleOrDefault(), IsActive = true }; uow.IncomeRepository.Insert(newIncome); //remove the income records //uow.IncomeRepository.Delete(newIncome.PK); } return(uow.IncomeRepository.InternalCollection); }
/// <summary> /// This method is reponsible for transferring the family from data transfer tables to the tax credit tables. Afterwards we'll delete the family /// from the dt tables to keep them clean. The tables are meant to be transactional. /// /// </summary> /// <param name="uow"></param> /// <param name="tcDTFamily"></param> /// <param name="effectiveDate"></param> /// <param name="externalKey"></param> /// <param name="transactionKey"></param> /// <returns></returns> private tcFamily TransferDTFamilyToTCFamily(CertificationTransferUnitOfWork uow, tcDTFamily tcDTFamily, DateTime effectiveDate, string externalKey, string transactionKey) { tcFamily newFamily = new tcFamily { EffectiveDate = effectiveDate, IsActive = true, IsFullTimeResidentialWorker = tcDTFamily.IsFullTimeResidentialWorker, ExternalKey = externalKey, transactionKey = transactionKey }; //insert the family to the tc family uow.FamilyRepository.Insert(newFamily); //remove the family from dt //uow.DTFamilyRepository.Delete(tcDTFamily.PK); return(newFamily); }
public IEnumerable <tcAsset> TransferDTAssetsToTCAssets(CertificationTransferUnitOfWork uow, tcDTFamilyMember dtFamilyMember, tcFamilyMember familyMember) { tcAsset newAsset = null; foreach (tcDTAsset dtAsset in dtFamilyMember.tcDTAssets) { newAsset = new tcAsset { tcFamilyMember = familyMember, AssetDescription = dtAsset.AssetDescription, ExternalKey = dtAsset.ExternalKey, AnnualIncome = dtAsset.AnnualIncome, Value = dtAsset.Value, WithdrawlPenalty = dtAsset.WithdrawlPenalty }; uow.AssetRepository.Insert(newAsset); //remove the dt assets //uow.DTAssetRepository.Delete(dtAsset.PK); } return(uow.AssetRepository.InternalCollection); }
/// <summary> /// Pass in loosely coupled versions of the repositories, later to be altered with unity /// </summary> /// <param name="dtFamilyRepository"></param> /// <param name="familyRepository"></param> public CertificationTransferApplicationService(CertificationTransferUnitOfWork unitOfWorkTransfer) { _uow = unitOfWorkTransfer; }
/// <summary> /// /// </summary> /// <param name="uow"></param> /// <param name="dtFamilyMembers"></param> /// <param name="tcFamily"></param> /// <param name="tcDTFamily"></param> /// <param name="transactionKey"></param> /// <returns></returns> private IEnumerable <tcFamilyMember> TransferDTFamilyMemberInfoToTCFamilyMemberInfo(CertificationTransferUnitOfWork uow, IEnumerable <tcDTFamilyMember> dtFamilyMembers, tcFamily tcFamily, tcDTFamily tcDTFamily, string transactionKey) { tcFamilyMember newMember = null; foreach (tcDTFamilyMember dtMember in dtFamilyMembers) { newMember = new tcFamilyMember { fkFamily = tcFamily.PK, FirstName = dtMember.FirstName.Trim(), LastName = dtMember.LastName.Trim(), SSN = dtMember.SSN.Trim(), MiddleInitial = dtMember.MiddleInitial.Trim(), BirthDate = dtMember.BirthDate, ExternalKey = dtMember.ExternalKey, transactionKey = transactionKey, fkFamilyMemberStatus = uow.FamilyMemberStatusRepository.Get(filter: s => s.FamilyMemberStatus.Trim().ToLower() == dtMember.tcDTFamilyMemberStatu.FamilyMemberStatus.Trim().ToLower() && s.IsActive).Single().PK, fkGender = (dtMember.Gender.ToLower().Trim() == "m" ? uow.GenderRepository.Get(filter: gen => gen.Gender.Trim().ToLower() == "male" && gen.IsActive).Single() : uow.GenderRepository.Get(filter: gen => gen.Gender.Trim().ToLower() != "female" && gen.IsActive).Single()).PK, IsActive = true }; //if they have a student status, let's hunt down the appropriate one and assign it to the family member if (dtMember.tcDTStudentStatu != null) { newMember.fkStudentStatus = uow.StudentStatusRepository.Get(filter: s => s.StudentStatus.Trim().ToLower() == dtMember.tcDTStudentStatu.StudentStatus.Trim().ToLower()).Single().PK; } //apply special status's for the members if (dtMember.tcDTSpecialStatu != null) { newMember.fkSpecialStatus = uow.SpecialStatusRepository.Get(filter: s => s.SpecialStatus.Trim().ToLower() == dtMember.tcDTSpecialStatu.SpecialStatus.Trim().ToLower()).Single().PK; } //transfer this members asset information TransferDTAssetsToTCAssets(uow, dtMember, newMember); //transfer this members income information TransferDTIncomesToTCIncomes(uow, dtMember, newMember); //add the family member to our context for later saving uow.FamilyMemberRepository.Insert(newMember); //remove the family member //uow.DTFamilyMemberRepository.Delete(dtMember.PK); } return(uow.FamilyMemberRepository.InternalCollection); }