public void UpdateObject(Person updateFrom) { LastUpdatedAt = updateFrom.LastUpdatedAt; ExternalParentId = updateFrom.ExternalParentId; LastName = updateFrom.LastName; FirstName = updateFrom.FirstName; MiddleName = updateFrom.MiddleName; Gender = updateFrom.Gender; DateOfBirth = updateFrom.DateOfBirth; DateOfBirthIsApproximate = updateFrom.DateOfBirthIsApproximate; RelationshipToHeadOfHousehold = updateFrom.RelationshipToHeadOfHousehold; RelationshipIfOther = updateFrom.RelationshipIfOther; IntakeDate = updateFrom.IntakeDate; HaveJobReturningTo = updateFrom.HaveJobReturningTo; HoursWorked = updateFrom.HoursWorked; HouseWorkedOnHousework = updateFrom.HouseWorkedOnHousework; EnrolledInSchool = updateFrom.EnrolledInSchool; GpsLatitude = updateFrom.GpsLatitude; GpsLongitude = updateFrom.GpsLongitude; GpsPositionAccuracy = updateFrom.GpsPositionAccuracy; GpsAltitude = updateFrom.GpsAltitude; GpsAltitudeAccuracy = updateFrom.GpsAltitudeAccuracy; GpsHeading = updateFrom.GpsHeading; GpsSpeed = updateFrom.GpsSpeed; GpsPositionTime = updateFrom.GpsPositionTime; // update status customizations if (!PeopleWorkActivities.Select(a => a.WorkActivity.InternalId).SequenceEqual(updateFrom.PeopleWorkActivities.Select(a => a.WorkActivity.InternalId))) { MdpmsDatabaseContext.RemoveRange(PeopleWorkActivities); MdpmsDatabaseContext.SaveChanges(); foreach (var x in updateFrom.PeopleWorkActivities.Select(a => a.WorkActivity.InternalId)) { var scQuery = MdpmsDatabaseContext.StatusCustomizationWorkActivities.Where(a => a.InternalId == x); if (scQuery.Any()) { PeopleWorkActivities.Add(new PersonWorkActivity { Person = this, WorkActivity = scQuery.First() }); } } MdpmsDatabaseContext.SaveChanges(); } if (!PeopleHazardousConditions.Select(a => a.HazardousCondition.InternalId).SequenceEqual(updateFrom.PeopleHazardousConditions.Select(a => a.HazardousCondition.InternalId))) { MdpmsDatabaseContext.RemoveRange(PeopleHazardousConditions); MdpmsDatabaseContext.SaveChanges(); foreach (var x in updateFrom.PeopleHazardousConditions.Select(a => a.HazardousCondition.InternalId)) { var scQuery = MdpmsDatabaseContext.StatusCustomizationHazardousConditions.Where(a => a.InternalId == x); if (scQuery.Any()) { PeopleHazardousConditions.Add(new PersonHazardousCondition { Person = this, HazardousCondition = scQuery.First() }); } } MdpmsDatabaseContext.SaveChanges(); } if (!PeopleHouseholdTasks.Select(a => a.HouseholdTask.InternalId).SequenceEqual(updateFrom.PeopleHouseholdTasks.Select(a => a.HouseholdTask.InternalId))) { MdpmsDatabaseContext.RemoveRange(PeopleHouseholdTasks); MdpmsDatabaseContext.SaveChanges(); foreach (var x in updateFrom.PeopleHouseholdTasks.Select(a => a.HouseholdTask.InternalId)) { var scQuery = MdpmsDatabaseContext.StatusCustomizationHouseholdTasks.Where(a => a.InternalId == x); if (scQuery.Any()) { PeopleHouseholdTasks.Add(new PersonHouseholdTask { Person = this, HouseholdTask = scQuery.First() }); } } MdpmsDatabaseContext.SaveChanges(); } }