private void GetFamilyFromService(CACCCheckInDb.PeopleWithDepartmentAndClassView person) { try { List <CACCCheckInDb.PeopleWithDepartmentAndClassView> people = null; if (person != null) { using (CACCCheckInServiceProxy proxy = new CACCCheckInServiceProxy()) { proxy.Open(); if (person.FamilyId.HasValue) { logger.DebugFormat("Retrieving GetFamilyMembersByFamilyId from CACCCheckInService for FamilyId=[{0}]", person.FamilyId.Value); people = proxy.GetFamilyMembersByFamilyId(person.FamilyId.Value); } else { logger.DebugFormat("Retrieving GetFamilyMembersByFamilyId from CACCCheckInService for PersonId=[{0}]", person.PersonId); people = proxy.GetFamilyMembersByFamilyId(person.PersonId); } } } Debug.Assert(View != null); View.ViewDispatcher.BeginInvoke(DispatcherPriority.DataBind, new DispatcherOperationCallback( delegate(object arg) { // We will filter to get ONLY Family members who are // either in Adult or MOPS department. These are // the only valid departments for MOPS check-in // screen. Also, we make sure only records where // ClassRole is Member are needed. View.FamilyDataContext = people.FindAll(p => (p.DepartmentName.Equals(Departments.Adult) || p.DepartmentName.Equals(Departments.MOPS)) && p.ClassRole.Equals(ClassRoles.Member)); return(null); }), null); } catch (Exception ex) { Debug.Assert(View != null); View.ViewDispatcher.BeginInvoke(DispatcherPriority.DataBind, new DispatcherOperationCallback( delegate(object arg) { View.DisplayExceptionDetail(ex); return(null); }), null); } }