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