public static Models.Db.Evacuee ToModel(this ViewModels.Person source) { var result = new Models.Db.Evacuee(); if (source.Id != null) { result.RegistrationId = Models.Db.Evacuee.GetEvacueeRegistrationIdFromIncidentRegSeqId(source.Id); result.EvacueeSequenceNumber = Models.Db.Evacuee.GetEvacueeSequenceNumberFromIncidentRegSeqId(source.Id); } result.FirstName = source.FirstName; result.LastName = source.LastName; if (source is ViewModels.Evacuee sourceEvacuee) { result.Nickname = sourceEvacuee.Nickname; result.Initials = sourceEvacuee.Initials; result.Gender = source.Gender; result.Dob = sourceEvacuee.Dob; } if (source is ViewModels.HeadOfHousehold sourceHoh) { result.EvacueeSequenceNumber = 1; result.EvacueeTypeCode = EvacueeType.HeadOfHousehold.GetDisplayName(); } if (source is ViewModels.FamilyMember sourceFm) { result.EvacueeTypeCode = sourceFm.RelationshipToEvacuee.Code; result.SameLastNameAsEvacuee = sourceFm.SameLastNameAsEvacuee; } return(result); }
private string MapPrintEvacueeTypeCode(Models.Db.Evacuee evacuee) { if (evacuee.EvacueeType == Models.Db.Enumerations.EvacueeType.HeadOfHousehold) { return("F"); } if (evacuee.Dob.HasValue && evacuee.Dob.Value > DateTime.Now.AddYears(-12)) { return("C"); } return("A"); }
public static ViewModels.Person ToViewModel(this Models.Db.Evacuee source, Models.Db.EvacueeRegistration evacueeRegistration) { ViewModels.Person result; var isHeadOfHousehold = false; if (source.EvacueeTypeCode == EvacueeType.HeadOfHousehold.GetDisplayName()) { result = new ViewModels.HeadOfHousehold(); isHeadOfHousehold = true; } else { result = new ViewModels.FamilyMember(); } result.Id = source.RegistrationIdSeq; result.FirstName = source.FirstName; result.LastName = source.LastName; if (isHeadOfHousehold) { var resultHoh = result as ViewModels.HeadOfHousehold; resultHoh.PhoneNumber = evacueeRegistration.PhoneNumber; resultHoh.PhoneNumberAlt = evacueeRegistration.PhoneNumberAlt; resultHoh.Email = evacueeRegistration.Email; resultHoh.PrimaryResidence = evacueeRegistration.EvacueeRegistrationAddresses.Single(a => a.AddressType == AddressType.Primary).ToViewModel(); if (evacueeRegistration.EvacueeRegistrationAddresses.Any(a => a.AddressType == AddressType.Mailing)) { resultHoh.MailingAddress = evacueeRegistration.EvacueeRegistrationAddresses.Single(a => a.AddressType == AddressType.Mailing).ToViewModel(); } var familyMembers = evacueeRegistration.Evacuees.Where(e => e.EvacueeTypeCode != EvacueeType.HeadOfHousehold.GetDisplayName()); if (familyMembers.Any()) { resultHoh.FamilyMembers = new List <ViewModels.FamilyMember>(); foreach (var familyMember in familyMembers) { resultHoh.FamilyMembers.Add(familyMember.ToViewModel(evacueeRegistration) as ViewModels.FamilyMember); } } } var resultEvacuee = result as ViewModels.Evacuee; resultEvacuee.Nickname = source.Nickname; resultEvacuee.Initials = source.Initials; resultEvacuee.Gender = source.Gender; resultEvacuee.Dob = source.Dob; if (!isHeadOfHousehold) { var resultFm = result as ViewModels.FamilyMember; resultFm.RelationshipToEvacuee = mapper.Map <ViewModels.FamilyRelationshipType>(source.EvacueeTypeCode == EvacueeType.ImmediateFamily.GetDisplayName() ? EvacueeType.ImmediateFamily : EvacueeType.ExtendedFamily); resultFm.SameLastNameAsEvacuee = source.SameLastNameAsEvacuee; } return(result); }