private void AssignHouseholdMember(era_evacuationfile file, era_householdmember member)
 {
     if (member._era_registrant_value != null)
     {
         var registrant = essContext.contacts.Where(c => c.contactid == member._era_registrant_value).SingleOrDefault();
         if (registrant == null)
         {
             throw new ArgumentException($"Household member has registrant id {member._era_registrant_value} which was not found");
         }
         essContext.AddLink(registrant, nameof(contact.era_contact_era_householdmember_Registrantid), member);
     }
     essContext.AddLink(file, nameof(era_evacuationfile.era_era_evacuationfile_era_householdmember_EvacuationFileid), member);
     essContext.SetLink(member, nameof(era_householdmember.era_EvacuationFileid), file);
 }
 private void AssignHouseholdMember(era_needassessment needsAssessment, era_householdmember member)
 {
     essContext.AddLink(member, nameof(era_householdmember.era_era_householdmember_era_needassessment), needsAssessment);
     //essContext.AddLink(needsAssessment, nameof(era_needassessment.era_era_householdmember_era_needassessment), member);
 }
Example #3
0
        private void CreateHouseholdMember(era_evacuationfile eraEvacuationFile, era_needassessment eraNeedsAssessment, era_householdmember member)
        {
            member.era_householdmemberid = Guid.NewGuid();
            var contact = member.era_Registrant;

            if (contact.contactid.HasValue)
            {
                //TODO: figure out a nicer way to handle already tracked primary contact handling
                var trackedContact = (contact)essContext.EntityTracker.Entities.SingleOrDefault(e => e.Entity is contact c && c.contactid == contact.contactid).Entity;
                if (trackedContact != null)
                {
                    contact = trackedContact;
                }
                else
                {
                    essContext.AttachTo(nameof(essContext.contacts), contact);
                }
            }
            else
            {
                contact.contactid            = Guid.NewGuid();
                contact.era_authenticated    = false;
                contact.era_verified         = false;
                contact.era_registrationdate = DateTimeOffset.UtcNow;
                essContext.AddTocontacts(contact);
            }
            essContext.AddToera_householdmembers(member);
            essContext.AddLink(member, nameof(era_householdmember.era_era_householdmember_era_needassessment), eraNeedsAssessment);
            //essContext.AddLink(eraNeedsAssessment, nameof(era_needassessment.era_era_householdmember_era_needassessment), member);
            essContext.SetLink(member, nameof(era_householdmember.era_EvacuationFileid), eraEvacuationFile);
            essContext.SetLink(member, nameof(era_householdmember.era_Registrant), contact);
            essContext.AddLink(contact, nameof(contact.era_contact_era_householdmember_Registrantid), member);
        }
Example #4
0
        private era_evacuationfile CreateEvacuationFile(EssContext essContext, contact primaryContact, string fileId, string?paperFileNumber = null)
        {
            var file = new era_evacuationfile()
            {
                era_evacuationfileid   = Guid.NewGuid(),
                era_name               = fileId,
                era_evacuationfiledate = DateTime.UtcNow,
                era_securityphrase     = EvacuationFileSecurityPhrase,
                era_paperbasedessfile  = paperFileNumber
            };

            essContext.AddToera_evacuationfiles(file);
            essContext.SetLink(file, nameof(era_evacuationfile.era_TaskId), this.activeTask);
            var needsAssessment = new era_needassessment
            {
                era_needassessmentid    = Guid.NewGuid(),
                era_needsassessmenttype = (int)NeedsAssessmentTypeOptionSet.Preliminary,
                era_insurancecoverage   = (int)InsuranceOptionOptionSet.Unknown
            };

            essContext.AddToera_needassessments(needsAssessment);

            essContext.SetLink(file, nameof(era_evacuationfile.era_CurrentNeedsAssessmentid), needsAssessment);
            essContext.AddLink(file, nameof(era_evacuationfile.era_needsassessment_EvacuationFile), needsAssessment);
            essContext.SetLink(file, nameof(era_evacuationfile.era_Registrant), primaryContact);

            var primaryMember = new era_householdmember
            {
                era_householdmemberid   = Guid.NewGuid(),
                era_dateofbirth         = primaryContact.birthdate,
                era_firstname           = primaryContact.firstname,
                era_lastname            = primaryContact.lastname,
                era_gender              = primaryContact.gendercode,
                era_initials            = primaryContact.era_initial,
                era_isprimaryregistrant = true
            };

            var householdMembers = Enumerable.Range(1, Random.Shared.Next(1, 5)).Select(i => new era_householdmember
            {
                era_householdmemberid   = Guid.NewGuid(),
                era_dateofbirth         = new Date(2000 + i, i, i),
                era_firstname           = $"{testPrefix}-member-first-{i}",
                era_lastname            = $"{testPrefix}-member-last-{i}",
                era_gender              = Random.Shared.Next(1, 3),
                era_isprimaryregistrant = false
            }).Prepend(primaryMember)
                                   .Append(new era_householdmember
            {
                era_householdmemberid   = Guid.NewGuid(),
                era_dateofbirth         = new Date(1998, 1, 2),
                era_firstname           = $"{testPrefix}-member-no-registrant-first",
                era_lastname            = $"{testPrefix}-member-no-registrant-last",
                era_gender              = Random.Shared.Next(1, 3),
                era_isprimaryregistrant = false
            }).ToArray();

            foreach (var member in householdMembers)
            {
                essContext.AddToera_householdmembers(member);
                essContext.SetLink(member, nameof(era_householdmember.era_EvacuationFileid), file);
                essContext.AddLink(member, nameof(era_householdmember.era_era_householdmember_era_needassessment), needsAssessment);
                if (member.era_isprimaryregistrant == true)
                {
                    essContext.SetLink(member, nameof(era_householdmember.era_Registrant), primaryContact);
                    essContext.SetLink(file, nameof(era_evacuationfile.era_Registrant), primaryContact);
                }
            }

            file.era_era_evacuationfile_era_householdmember_EvacuationFileid = new Collection <era_householdmember>(householdMembers);
            return(file);
        }