Exemple #1
0
        private void dropMembership(bool Deceased, CMSDataContext Db)
        {
            if (MemberStatusId == MemberStatusCode.Member)
            {
                if (Deceased)
                {
                    DropCodeId = DropTypeCode.Deceased;
                }
                MemberStatusId = MemberStatusCode.Previous;
                DropDate       = Util.Now.Date;
            }
            if (Deceased)
            {
                EmailAddress   = null;
                DoNotCallFlag  = true;
                DoNotMailFlag  = true;
                DoNotVisitFlag = true;
            }
            if (SpouseId.HasValue)
            {
                var spouse = Db.LoadPersonById(SpouseId.Value);
                if (Deceased)
                {
                    spouse.MaritalStatusId = MaritalStatusCode.Widowed;
                    if (spouse.EnvelopeOptionsId.HasValue)
                    {
                        if (spouse.EnvelopeOptionsId != EnvelopeOptionCode.None)
                        {
                            spouse.EnvelopeOptionsId = EnvelopeOptionCode.Individual;
                        }
                    }
                    spouse.ContributionOptionsId = EnvelopeOptionCode.Individual;
                }

                if (spouse.MemberStatusId == MemberStatusCode.Member)
                {
                    if (spouse.EnvelopeOptionsId == EnvelopeOptionCode.Joint)
                    {
                        spouse.EnvelopeOptionsId = EnvelopeOptionCode.Individual;
                    }
                }
            }
            EnvelopeOptionsId = EnvelopeOptionCode.None;

            var list = OrganizationMembers.ToList();

            foreach (var om in list)
            {
                om.Drop(Db, addToHistory: true);
            }
        }
Exemple #2
0
        public void SetOrgLeadersOnly()
        {
            var me = Util.UserPeopleId;
            var dt = Util.Now.AddYears(-1);

            var oids = GetLeaderOrgIds(Util.UserPeopleId);
            // current members of one of my orgs I lead
            var q = from p in People
                    where p.OrganizationMembers.Any(m => oids.Contains(m.OrganizationId))
                    select p;
            var tag = PopulateSpecialTag(q, DbUtil.TagTypeId_OrgLeadersOnly);

            // previous members of my org
            q = from p in People
                where p.EnrollmentTransactions.Any(et =>
                                                   et.TransactionDate > dt &&
                                                   et.TransactionTypeId >= 4 &&
                                                   oids.Contains(et.OrganizationId) &&
                                                   et.Organization.SecurityTypeId != 3 &&
                                                   OrganizationMembers.Any(um =>
                                                                           um.OrganizationId == et.OrganizationId && um.PeopleId == me))
                select p;

            TagAll(q, tag);

            // members of my family
            q = from p in People
                where p.FamilyId == CurrentUser.Person.FamilyId
                select p;

            TagAll(q, tag);

            // visitors in the last year to one of my orgs excluding unshared
            var attype = new int[] { 40, 50, 60 };

            q = from p in People
                where p.Attends.Any(a =>
                                    OrganizationMembers.Any(um =>
                                                            um.MemberType.AttendanceTypeId == AttendTypeCode.Leader &&
                                                            um.Organization.SecurityTypeId != 3 &&
                                                            oids.Contains(um.OrganizationId) &&
                                                            um.OrganizationId == a.Meeting.OrganizationId &&
                                                            um.PeopleId == me) &&
                                    attype.Contains(a.AttendanceTypeId.Value) && a.MeetingDate > dt)
                select p;

            TagAll(q, tag);

            // people assigned to me in one of my tasks
            q = from p in People
                where p.TasksAboutPerson.Any(at => at.OwnerId == me || at.CoOwnerId == me)
                select p;

            TagAll(q, tag);

            // people I have visited in a contact
            q = from p in People
                where p.contactsHad.Any(c => c.contact.contactsMakers.Any(cm => cm.PeopleId == me))
                select p;

            TagAll(q, tag);
        }