Beispiel #1
0
        //public static List<FamilyMember> CompleteFamily(this Family family)
        //{
        //    if (family == null)
        //        family = new Family();

        //    List<FamilyMember> familyMembers = new List<FamilyMember>();

        //    familyMembers.Add(family.Father() ?? NewFather());
        //    familyMembers.Add(family.Mother() ?? NewMother());
        //    foreach(FamilyMember fm in family.Children())
        //        familyMembers.Add(fm);

        //    if (familyMembers.Count == 2)
        //        familyMembers.Add(NewChild());

        //    return familyMembers;
        //}

        //public static FamilyMember Father(this Family family)
        //{
        //    foreach (FamilyMember fm in family.FamilyMembers)
        //        if (fm.FamilyRole.Guid == SystemLookup.FamilyRole_Adult &&
        //            fm.Gender == Arena.Enums.Gender.Male)
        //            return fm;
        //    return null;
        //}

        //public static FamilyMember Mother(this Family family)
        //{
        //    foreach (FamilyMember fm in family.FamilyMembers)
        //        if (fm.FamilyRole.Guid == SystemLookup.FamilyRole_Adult &&
        //            fm.Gender == Arena.Enums.Gender.Female)
        //            return fm;
        //    return null;
        //}

        public static FamilyMember FindByGuid(this FamilyMemberCollection familyMembers, Guid guid)
        {
            foreach (FamilyMember fm in familyMembers)
            {
                if (fm.Guid == guid)
                {
                    return(fm);
                }
            }
            return(null);
        }
        private string BuildDescription(Family family, OccurrenceAttendanceCollection attendances)
        {
            StringBuilder sb = new StringBuilder();

            FamilyMemberCollection adults   = family.Adults();
            FamilyMemberCollection children = family.Children();
            Address primaryAddress          = null;

            if (adults.Count > 0)
            {
                sb.Append("\nAdults:\n");
                foreach (FamilyMember adult in adults)
                {
                    sb.AppendFormat("+ {0}", adult.FullName, adult.Age.ToString());
                    if (primaryAddress == null)
                    {
                        primaryAddress = adult.PrimaryAddress;
                    }

                    if (adult.Age != -1)
                    {
                        sb.AppendFormat(" (Age {0})", adult.Age.ToString());
                    }

                    sb.Append("\n");
                }
            }

            if (children.Count > 0)
            {
                sb.Append("\nChildren:\n");
                foreach (FamilyMember child in children)
                {
                    sb.AppendFormat("+ {0}", child.FullName);

                    OccurrenceAttendance attendance = attendances.FindByID(child.PersonID);
                    if (attendance != null)
                    {
                        sb.AppendFormat(" (Checked into {0} {1} {2})",
                                        attendance.Occurrence.StartTime.DayOfWeek.ToString(),
                                        attendance.Occurrence.Name,
                                        attendance.Occurrence.OccurrenceType.TypeName);
                    }
                    else
                    if (child.Age != -1)
                    {
                        sb.AppendFormat(" (Age {0})", child.Age.ToString());
                    }

                    sb.Append("\n");

                    if (primaryAddress == null)
                    {
                        primaryAddress = child.PrimaryAddress;
                    }
                }
            }

            if (primaryAddress != null && primaryAddress.Area != null && primaryAddress.Area.AreaID != -1)
            {
                sb.AppendFormat("\nNeighborhood: {0}\n", primaryAddress.Area.Name);
                sb.Append(AreaCoordinators(primaryAddress.Area, RegionalPastorRoleID));
                sb.Append(AreaCoordinators(primaryAddress.Area, NeighborhoodLeaderRoleID));
            }
            sb.Append("\n");

            return(sb.ToString());
        }