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); } }
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); }