Exemple #1
0
        internal static void ProcessReceivedPayment(BasicEvent newEvent)
        {
            // Set membership expiry to one year from today's expiry

            // First, find this particular membership

            Membership renewedMembership = null;
            bool       foundExisting     = false;

            try
            {
                renewedMembership = Membership.FromBasic(Memberships.GetMembership(newEvent.VictimPersonId, newEvent.OrganizationId));
                foundExisting     = true;
            }
            catch (ArgumentException) { }              // an exception here means there was no active membership

            if (foundExisting)
            {
                Person   person  = renewedMembership.Person;
                DateTime expires = renewedMembership.Expires;

                ChurnData.LogRetention(person.Identity, renewedMembership.OrganizationId, expires);
                Events.CreateEvent(EventSource.CustomServiceInterface, EventType.ExtendedMembership, person.Identity, renewedMembership.OrganizationId, person.GeographyId, person.Identity, 0, string.Empty);

                expires = expires.AddYears(1);


                // If the membership is in organization 1, then propagate the expiry to every other org this person is a member of

                // Cheat and assume Swedish. In the future, take this from a template.

                string mailBody =
                    "Tack för att du har valt att förnya ditt medlemskap och fortsätta vara en del av piratrörelsen i " +
                    "Sverige! Ditt medlemskap går nu ut " + expires.ToString("yyyy-MM-dd") + ", och gäller följande föreningar:\r\n\r\n";

                Memberships memberships = person.GetMemberships();

                foreach (Membership membership in memberships)
                {
                    if (membership.Organization.Inherits(1) || membership.OrganizationId == 1)
                    {
                        membership.Expires = expires;
                        mailBody          += membership.Organization.Name + "\r\n";
                    }
                }

                mailBody += "\r\nOm du har några frågor, så kontakta gärna Medlemsservice på [email protected]. Återigen, " +
                            "välkommen att vara med i vårt fortsatta arbete!\r\n";

                new PirateWeb.Utility.Mail.MailTransmitter("Piratpartiet Medlemsservice", "*****@*****.**", "Piratpartiet: Ditt medlemskap är förnyat",
                                                           mailBody, person).Send();
            }
            else
            {
                // This person's membership has expired, so he/she needs a new one.

                // TODO
            }
        }
Exemple #2
0
    public List <ListPerson> GetData(string sortBy)
    {
        List <ListPerson> retval = new List <ListPerson>();

        if (listedPersons != null)
        {
            People ppl = People.FromIdentities(listedPersons);
            Dictionary <int, List <BasicMembership> > membershipTable = Memberships.GetMembershipsForPeople(listedPersons, Membership.GracePeriod);
            Memberships membershipsToLoad = new Memberships();
            foreach (Person p in ppl)
            {
                if (membershipTable.ContainsKey(p.Identity))
                {
                    foreach (BasicMembership bm in membershipTable[p.Identity])
                    {
                        if (bm.OrganizationId == selectedOrgId)
                        {
                            Membership ms = Membership.FromBasic(bm);
                            membershipsToLoad.Add(ms);
                        }
                    }
                }
            }
            Membership.LoadPaymentStatuses(membershipsToLoad);

            Dictionary <int, Membership> memberships = new Dictionary <int, Membership>();
            foreach (Membership ms in membershipsToLoad)
            {
                memberships[ms.Identity] = ms;
            }

            foreach (Person p in ppl)
            {
                ListPerson lp = new ListPerson(p);
                if (membershipTable.ContainsKey(p.Identity))
                {
                    foreach (BasicMembership bm in membershipTable[p.Identity])
                    {
                        if (bm.OrganizationId == selectedOrgId)
                        {
                            Membership ms = memberships[bm.MembershipId];
                            lp.JoinedDate   = ms.MemberSince;
                            lp.ExpiresDate  = ms.Expires;
                            lp.MembershipId = ms.Identity;
                            retval.Add(lp);
                        }
                    }
                }
            }
        }

        PropertyInfo pi = typeof(ListPerson).GetProperty(sortBy);

        if (pi != null)
        {
            MemberInfo [] miA = pi.PropertyType.GetMember("CompareTo", MemberTypes.Method, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
            if (miA.Length > 0)
            {
                MethodInfo mi = (MethodInfo)miA[0];
                retval.Sort(delegate(ListPerson p1, ListPerson p2)
                {
                    return(Convert.ToInt32(mi.Invoke(pi.GetValue(p1, null), new object[] { pi.GetValue(p2, null) })));
                });
            }
        }
        return(retval);
    }