/// <summary>
        /// Resolves all the information for a published org unit entity.
        /// </summary>
        /// <param name="orgUnit">The org unit.</param>
        /// <param name="orgUnitPub">The published org unit.</param>
        /// <param name="orgUnits">Collection of all org units.</param>
        /// <param name="orgUnitAssocs">Collection of all org unit associations.</param>
        /// <param name="disabledOrgUnits">A list of org units determined to be disabled.</param>
        /// <returns></returns>
        private static OrgUnitPublished ResolvePublishedOrgUnit(OrgUnit orgUnit, OrgUnitPublished orgUnitPub, OrgUnit[] orgUnits, IEnumerable<OrgUnitAssociation> orgUnitAssocs, Collection<int> disabledOrgUnits)
        {
            // Fill in information from org unit (self)
            ApplyOrgUnitInfo(orgUnit, orgUnitPub, disabledOrgUnits);

            // Fill in information from linked org unit
            if (orgUnit.LinkedOrgUnitId != null)
            {
                OrgUnit linkedOrgUnit = orgUnits.SingleOrDefault(o => o.Id == orgUnit.LinkedOrgUnitId);
                ApplyOrgUnitInfo(linkedOrgUnit, orgUnitPub, disabledOrgUnits);
            }

            // Repeat process for any ascendants
            OrgUnitAssociation orgUnitAssoc = orgUnitAssocs.SingleOrDefault(a => a.SecondaryId == orgUnit.Id);
            int? ascendantId = orgUnitAssoc != null ? orgUnitAssoc.PrimaryId : null;

            if (ascendantId.HasValue)
            {
                OrgUnit ascendantOrgUnit = orgUnits.SingleOrDefault(o => o.Id == ascendantId);
                ResolvePublishedOrgUnit(ascendantOrgUnit, orgUnitPub, orgUnits, orgUnitAssocs, disabledOrgUnits);
            }

            // Ensure schedules/insurances/types/services org unit IDs were set before exiting
            if (orgUnitPub.SchedulesOrgUnitId == null)
                orgUnitPub.SchedulesOrgUnitId = orgUnitPub.Id;

            if (orgUnitPub.InsurancesOrgUnitId == null)
                orgUnitPub.InsurancesOrgUnitId = orgUnitPub.Id;

            if (orgUnitPub.TypesOrgUnitId == null)
                orgUnitPub.TypesOrgUnitId = orgUnitPub.Id;

            if (orgUnitPub.ServicesOrgUnitId == null)
                orgUnitPub.ServicesOrgUnitId = orgUnitPub.Id;

            return orgUnitPub;
        }