Пример #1
0
        public static void Run(string data, Organization organization, Person runningPerson)
        {
            if (!data.StartsWith("Date\t Time\t Time Zone\t Name\t Type"))
            {
                runningPerson.SendPhoneMessage("The file you uploaded does not appear to be a PayPal tab-delimited file of all activity. No processing done. The data has been discarded.");
                throw new ArgumentException("This does not appear to be a PayPal file");
            }

            ImportResult result = ImportPaypal(data);

            ImportStats stats = ProcessImportedData(result, organization, runningPerson);

            try
            {
                runningPerson.SendPhoneMessage("The PayPal file was processed. See mail for more details.");
            }
            catch (Exception)
            {
                // Ignore error on SMS transmit
            }

            string mailBody = string.Empty;

            mailBody += String.Format("Rows processed: {0,9:N0}\r\n", stats.ProcessedTransactionCount);
            mailBody += String.Format("Tx imported:    {0,9:N0}\r\n", stats.ImportedTransactionCount);
            mailBody += String.Format("Tx modified:    {0,9:N0}\r\n", stats.ModifiedTransactionCount - stats.ImportedTransactionCount);

            runningPerson.SendNotice("PayPal file imported", mailBody, organization.Identity);
        }
Пример #2
0
        public static void Run(string data, Organization organization, Person runningPerson)
        {
            if (!data.StartsWith("\r\n<html>\r\n<head>\r\n    <style>\r\n        .tal"))
            {
                runningPerson.SendPhoneMessage("The file you uploaded does not appear to be a Payson export file. No processing done. The data has been discarded.");
                throw new ArgumentException("This does not appear to be a Payson file");
            }

            if (organization.Identity != 1)
            {
                runningPerson.SendPhoneMessage("Payson import is currently only supported for PPSE. No processing done. The data has been discarded.");
                throw new Exception("Payson is only supported for PPSE at the moment.");
            }

            ImportResult result = ImportPayson(data);

            ImportStats stats = ProcessImportedData(result, organization, runningPerson);

            try
            {
                runningPerson.SendPhoneMessage("The Payson file was processed. See mail for more details.");
            }
            catch (Exception)
            {
                // Ignore error on SMS transmit
            }

            string mailBody = string.Empty;

            mailBody += String.Format("Rows processed: {0,9:N0}\r\n", stats.ProcessedTransactionCount);
            mailBody += String.Format("Tx imported:    {0,9:N0}\r\n", stats.ImportedTransactionCount);
            mailBody += String.Format("Tx modified:    {0,9:N0}\r\n", stats.ModifiedTransactionCount - stats.ImportedTransactionCount);

            runningPerson.SendNotice("Payson file imported", mailBody, organization.Identity);
        }
Пример #3
0
        public static void RequestMembershipConfirmation (Person p, string URL)
        {
            string passwordTicket = CreateRandomPassword(EmailVerificationTicketLength);

            string encodedPasswordTicket = SHA1.Hash(passwordTicket);
            p.ResetPasswordTicket = encodedPasswordTicket + ";" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            string mailbody = "";

            App_LocalResources.Authentication.Culture =
                System.Globalization.CultureInfo.GetCultureInfo(p.PreferredCulture);

            mailbody = App_LocalResources.Authentication.MembershipConf_Mail_Preamble;
            mailbody += "\r\n" + String.Format(URL, p.PersonId, passwordTicket);

            mailbody += App_LocalResources.Authentication.MembershipConf_Mail_Ending;

            p.SendNotice(App_LocalResources.Authentication.MembershipConf_Mail_Subject, mailbody, 1);
        }
Пример #4
0
        private static void ProcessCreateChangedEmailAccount (Person newMailPerson, Person requestingPerson,
                                                              string oldAddress)
        {
            try
            {
                string newAddress = newMailPerson.CreateUniquePPMailAddress(); // TODO: Change to organization-derived
                string basicNewAddress = newMailPerson.CreatePPMailAddress();

                string password = Formatting.GeneratePassword(16);

                MailServerDatabase.AddAccount(newAddress, password, 1024);
                MailServerDatabase.StartForwarding(oldAddress, newAddress);

                newMailPerson.PartyEmail = newAddress;

                // Send notice to person that the account has been created

                string noticeBody =
                    "Hej,\r\n\r\n" +
                    "det här är ett automatbrev som skickas ut eftersom du har begärt en ändring av namnet " +
                    "på ditt mailkonto i " +
                    "Piratpartiet och/eller Ung Pirat.\r\n\r\n" +
                    "Din nya mailadress är " + newAddress + ".\r\n\r\n" +
                    "Ditt login till servrarna är " + newAddress + " (samma som mailadressen).\r\n\r\n" +
                    "Ditt lösenord är satt till " + password + ". Inom kort kommer du att kunna byta det " +
                    "på PirateWeb.\r\n\r\n" +
                    "Din gamla adress (" + oldAddress + ") kommer att fortsätta att fungera att skicka till, " +
                    "men mailen kommer att vidarebefordras till " + newAddress + ".\r\n\r\n" +
                    MailConnectionExplanation(newAddress) +
                    "Hör av dig om du har några frågor!\r\n" +
                    "Piratpartiet medlemsservice (automatbrev)\r\n";

                if (newAddress != basicNewAddress)
                {
                    noticeBody += "\r\n\r\nPS.\r\n\r\n" +
                        "Om du undrar varför du fått \"" + newAddress + "\" istället för \"" + basicNewAddress + "\" så beror det på att den var upptagen, så vi fick lägga till en bokstav extra där för att du skulle få en egen... DS.";
                }

                newMailPerson.SendNotice("Du har fått en ny mailadress under piratpartiet.se", noticeBody, Organization.PPSEid);

                string noticeBody2 =
                    "Hej,\r\n\r\n" +
                    "det här är ett automatbrev för att tala om att " + newMailPerson.Name +
                    " har bytt mailadress till " + newAddress + ", " +
                    "från den gamla " + oldAddress + " \r\n\r\n" +
                    "Följ gärna upp med honom/henne att mailen har kommit igång ordentligt. Mail är ett av våra viktigaste " +
                    "verktyg.\r\n";

                requestingPerson.SendOfficerNotice("Ny mailadress tilldelad till " + newMailPerson.Name, noticeBody2, Organization.PPSEid);

                newMailPerson.SendOfficerNotice("Din mailadress fungerar",
                                                "Eftersom du kan läsa detta så fungerar din mailadress.", Organization.PPSEid);
            }
            catch (Exception e)
            {
                DebugWriteLine(e.ToString());
                throw e;
            }
        }
Пример #5
0
        private static void ProcessCreateNewEmailAccount (Person newMailPerson, Person requestingPerson)
        {
            if (newMailPerson.PartyEmail.Length > 1)
            {
                return; // Already has mail address
            }

            try
            {
                string newAddress = newMailPerson.CreateUniquePPMailAddress(); // TODO: Change to organization-derived
                string basicNewAddress = newMailPerson.CreatePPMailAddress();

                // string adAccountName = ActiveDirectoryCode.GetADAccountName(newMailPerson);  -- COMMENTED OUT - AD DEACTIVATED


                string password = Formatting.GeneratePassword(16);

                MailServerDatabase.AddAccount(newAddress, password, 1024);
                newMailPerson.PartyEmail = newAddress;

                /** -- COMMENTED OUT -- OLD EXCHANGE-FACING CODE -- KEEP AS COMMENT FOR REFERENCE --

				// Create AD account

				ActiveDirectoryCode.AddUser(newMailPerson, organization, password);

				// Add to security group 

				ActiveDirectoryCode.AddUserToPirateSecurityGroup(newMailPerson, organization);

				// Mail enable

				ExchangeCode.CreateMailbox(newMailPerson);

				// Add internal mail addresses

				ActiveDirectoryCode.AddEmailAddress(newMailPerson, adAccountName + "@internal.pirateweb.net", false);
				ActiveDirectoryCode.AddEmailAddress(newMailPerson, adAccountName + "@pirateweb.net", false);

				// Add primary mail address

				ActiveDirectoryCode.AddEmailAddress(newMailPerson, newAddress, true); -- */


                // Send notice to person that the account has been created


                string noticeBody =
                    "Hej,\r\n\r\n" +
                    "det här är ett automatbrev som skickas ut eftersom du har fått en funktionärsroll i " +
                    "Piratpartiet och/eller Ung Pirat. Som en viktig del av att vara funktionär, så behöver du en mailadress " +
                    "under piratpartiet.se, för att kunna agera officiellt. Därför har du fått en sådan.\r\n\r\n" +
                    "Din mailadress är " + newAddress + ".\r\n\r\n" +
                    "Ditt login till servrarna är " + newAddress + " (samma som mailadressen).\r\n\r\n" +
                    "Ditt lösenord är satt till " + password +
                    ". Inom kort kommer du att kunna byta det på PirateWeb.\r\n\r\n" +
                    "Försök att börja läsa mail från den adressen så snart som möjligt; i vissa roller kan " +
                    "det hända att du redan står som lokal kontaktperson, när medlemmar letar.\r\n\r\n" +
                    MailConnectionExplanation(newAddress) +
                    /* Fix for Ticket #50 */
                    "Du kan också hitta bra information här: http://forum.piratpartiet.se/Topic131505-56-1.aspx\r\n\r\n" +
                    "Hör av dig om du har några frågor!\r\n" +
                    "Piratpartiet medlemsservice (automatbrev)\r\n";

                if (newAddress != basicNewAddress)
                {
                    noticeBody += "\r\n\r\nPS.\r\n\r\n" +
                        "Om du undrar varför du fått \"" + newAddress + "\" istället för \"" + basicNewAddress + "\" så beror det på att den var upptagen, så vi fick lägga till en bokstav extra där för att du skulle få en egen... DS.";

                }

                newMailPerson.SendNotice("Du har fått en mailadress under piratpartiet.se", noticeBody, Organization.PPSEid);

                string noticeBody2 =
                    "Hej,\r\n\r\n" +
                    "det här är ett automatbrev för att tala om att " + newMailPerson.Name + " har fått en mailadress, " +
                    newAddress + ", " +
                    "och instruktioner för hur man sätter upp den. (Du gav nyligen honom/henne en funktionärsroll eller mailadress.)\r\n\r\n" +
                    "Följ gärna upp med honom/henne att mailen har kommit igång ordentligt. Mail är ett av våra viktigaste " +
                    "verktyg.\r\n";

                requestingPerson.SendOfficerNotice("Mailadress tilldelad till " + newMailPerson.Name, noticeBody2, Organization.PPSEid);

                newMailPerson.SendOfficerNotice("Din mailadress fungerar",
                                                "Eftersom du kan läsa detta så fungerar din mailadress.", Organization.PPSEid);
            }
            catch (Exception e)
            {
                DebugWriteLine(e.ToString());
                throw e;
            }
        }