//=============================================================== // Function: invitesRepeater_ItemCommand //=============================================================== protected void invitesRepeater_ItemCommand(object sender, RepeaterCommandEventArgs e) { int eventInviteID = int.Parse(e.CommandArgument.ToString()); EventInvite eventInvite = new EventInvite(Session["loggedInUserFullName"].ToString(), eventInviteID); if (e.CommandName == "acceptButton") { int currentUserID = int.Parse(Session["loggedInUserID"].ToString()); // Check if the user is already tracking this event if (TrackedEvent.GetTrackedEventID(eventInvite.eventID, currentUserID) < 0) { TrackedEvent trackedEvent = new TrackedEvent(Session["loggedInUserFullName"].ToString()); trackedEvent.eventID = eventInvite.eventID; trackedEvent.userID = currentUserID; trackedEvent.showOnTimeline = true; trackedEvent.Add(); } eventInvite.inviteAccepted = true; eventInvite.inviteAcceptedDate = DateTime.Now; eventInvite.Update(); eventInvite.SendInviteAcceptedEmail(); Response.Redirect("viewEvent.aspx?EID=" + eventInvite.eventID.ToString()); } if (e.CommandName == "declineButton") { eventInvite.inviteDeclined = true; eventInvite.inviteDeclinedDate = DateTime.Now; eventInvite.Update(); } int userID = int.Parse(Session["loggedInUserID"].ToString()); PopulateInviteList(userID); }
//=============================================================== // Function: SendInviteEmail //=============================================================== private Boolean SendInviteEmail(int eventID, string emailAddress, string additionalInviteText, string dateString, SedogoEvent currentEvent, SedogoUser currentUser, out string errorMessageDescription) { Boolean sentOK = false; GlobalData gd = new GlobalData(""); errorMessageDescription = ""; if (MiscUtils.IsValidEmailAddress(emailAddress) == true) { try { // Check if they have already been invited int inviteCount = EventInvite.GetInviteCountForEmailAddress(eventID, emailAddress); if (inviteCount == 0) { StringBuilder emailBodyCopy = new StringBuilder(); // Check if they are a Sedogo account holder int sedogoUserID = SedogoUser.GetUserIDFromEmailAddress(emailAddress); Boolean enableSendEmails = true; if( sedogoUserID != currentUser.userID ) { EventInvite newInvite = new EventInvite(Session["loggedInUserFullName"].ToString()); newInvite.eventID = eventID; newInvite.emailAddress = emailAddress; newInvite.inviteAdditionalText = additionalInviteText; newInvite.userID = sedogoUserID; newInvite.Add(); string inviteURL = gd.GetStringValue("SiteBaseURL"); inviteURL = inviteURL + "?EIG=" + newInvite.eventInviteGUID; string eventURL = gd.GetStringValue("SiteBaseURL"); eventURL = eventURL + "?EID=" + currentEvent.eventID.ToString(); emailBodyCopy.AppendLine("<html>"); emailBodyCopy.AppendLine("<head><title></title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">"); emailBodyCopy.AppendLine("<style type=\"text/css\">"); emailBodyCopy.AppendLine(" body, td, p { font-size: 15px; color: #9B9885; font-family: Arial, Helvetica, Sans-Serif }"); emailBodyCopy.AppendLine(" p { margin: 0 }"); emailBodyCopy.AppendLine(" h1 { color: #00ccff; font-size: 18px; font-weight: bold; }"); emailBodyCopy.AppendLine(" a, .blue { color: #00ccff; text-decoration: none; }"); emailBodyCopy.AppendLine(" img { border: 0; }"); emailBodyCopy.AppendLine("</style></head>"); emailBodyCopy.AppendLine("<body bgcolor=\"#f0f1ec\">"); emailBodyCopy.AppendLine(" <table width=\"692\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); //emailBodyCopy.AppendLine(" <tr><td colspan=\"3\"><img src=\"http://www.sedogo.com/email-template/images/email-template_01.png\" width=\"692\" height=\"32\" alt=\"\"></td></tr>"); emailBodyCopy.AppendLine(" <tr><td style=\"background: #fff\" width=\"30\"></td>"); emailBodyCopy.AppendLine(" <td style=\"background: #fff\" width=\"632\">"); if (sedogoUserID > 0) { SedogoUser inviteUser = new SedogoUser(Session["loggedInUserFullName"].ToString(), sedogoUserID); if (inviteUser.enableSendEmails == false) { enableSendEmails = false; } inviteURL = inviteURL + "&UID=" + sedogoUserID.ToString(); emailBodyCopy.AppendLine(" <h1>You are invited to join the following goal:</h1>"); emailBodyCopy.AppendLine(" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"600\">"); emailBodyCopy.AppendLine(" <tr>"); emailBodyCopy.AppendLine(" <td width=\"60\">What:</td>"); emailBodyCopy.AppendLine(" <td width=\"10\"> </td>"); emailBodyCopy.AppendLine(" <td width=\"530\">" + currentEvent.eventName + "</td>"); emailBodyCopy.AppendLine(" </tr>"); emailBodyCopy.AppendLine(" <tr>"); emailBodyCopy.AppendLine(" <td valign=\"top\">Where:</td>"); emailBodyCopy.AppendLine(" <td width=\"10\"> </td>"); emailBodyCopy.AppendLine(" <td>" + currentEvent.eventVenue + "</td>"); emailBodyCopy.AppendLine(" </tr>"); emailBodyCopy.AppendLine(" <tr>"); emailBodyCopy.AppendLine(" <td valign=\"top\">When:</td>"); emailBodyCopy.AppendLine(" <td width=\"10\"> </td>"); emailBodyCopy.AppendLine(" <td>" + dateString + "</td>"); emailBodyCopy.AppendLine(" </tr>"); emailBodyCopy.AppendLine(" </table>"); emailBodyCopy.AppendLine(" <p><span class=\"blue\">" + currentUser.firstName + "</span> has created this future goal on <a href=\"http://www.sedogo.com\">sedogo.com</a> and wants you to join in.</p>"); emailBodyCopy.AppendLine(" <p>To be part of this event, <a href=\"" + inviteURL + "\"><u>click here</u></a>.</p>"); emailBodyCopy.AppendLine(" <p>To see who else is part of making this goal happen, <a href=\"" + eventURL + "\"><u>click here</u></a>.</p>"); emailBodyCopy.AppendLine(" <p>To view this goal, <a href=\"" + eventURL + "\"><u>click here</u></a>.</p>"); } else { emailBodyCopy.AppendLine(" <h1>You are invited to join the following goal:</h1>"); emailBodyCopy.AppendLine(" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"600\">"); emailBodyCopy.AppendLine(" <tr>"); emailBodyCopy.AppendLine(" <td width=\"60\">What:</td>"); emailBodyCopy.AppendLine(" <td width=\"10\"> </td>"); emailBodyCopy.AppendLine(" <td width=\"530\">" + currentEvent.eventName + "</td>"); emailBodyCopy.AppendLine(" </tr>"); emailBodyCopy.AppendLine(" <tr>"); emailBodyCopy.AppendLine(" <td valign=\"top\">Where:</td>"); emailBodyCopy.AppendLine(" <td width=\"10\"> </td>"); emailBodyCopy.AppendLine(" <td>" + currentEvent.eventVenue + "</td>"); emailBodyCopy.AppendLine(" </tr>"); emailBodyCopy.AppendLine(" <tr>"); emailBodyCopy.AppendLine(" <td valign=\"top\">When:</td>"); emailBodyCopy.AppendLine(" <td width=\"10\"> </td>"); emailBodyCopy.AppendLine(" <td>" + dateString + "</td>"); emailBodyCopy.AppendLine(" </tr>"); emailBodyCopy.AppendLine(" </table>"); emailBodyCopy.AppendLine(" <p><span class=\"blue\">" + currentUser.firstName + "</span> has created this future goal on <a href=\"http://www.sedogo.com\">sedogo.com</a> and wants you to join in.</p>"); emailBodyCopy.AppendLine(" <p>To be part of this event, <a href=\"" + inviteURL + "\">sign up</a> for a free sedogo account now."); emailBodyCopy.AppendLine(" <p>When you have completed the registration process, <a href=\"" + eventURL + "\">click here</a> to view this event."); } emailBodyCopy.AppendLine(" <br /><br />"); emailBodyCopy.AppendLine(" <p>Regards</p><a href=\"http://www.sedogo.com\" class=\"blue\"><strong>The Sedogo Team.</strong></a><br />"); emailBodyCopy.AppendLine(" <br /><br /><br /><a href=\"http://www.sedogo.com\">"); //emailBodyCopy.AppendLine(" <img src=\"http://www.sedogo.com/email-template/images/logo.gif\" />"); emailBodyCopy.AppendLine(" </a></td>"); emailBodyCopy.AppendLine(" <td style=\"background: #fff\" width=\"30\"></td></tr><tr><td colspan=\"3\">"); //emailBodyCopy.AppendLine(" <img src=\"http://www.sedogo.com/email-template/images/email-template_05.png\" width=\"692\" height=\"32\" alt=\"\">"); emailBodyCopy.AppendLine(" </td></tr><tr><td colspan=\"3\"><small>This message was intended for " + emailAddress + ". To stop receiving these emails, go to your profile and uncheck the 'Enable email notifications' option.<br/>Sedogo offices are located at Sedogo Ltd, The Studio, 17 Blossom St, London E1 6PL.</small></td></tr>"); emailBodyCopy.AppendLine(" </td></tr></table></body></html>"); string emailSubject = currentUser.firstName + " wants you to be a part of " + currentEvent.eventName + " " + dateString + "!"; string SMTPServer = gd.GetStringValue("SMTPServer"); string mailFromAddress = gd.GetStringValue("MailFromAddress"); string mailFromUsername = gd.GetStringValue("MailFromUsername"); string mailFromPassword = gd.GetStringValue("MailFromPassword"); if (enableSendEmails == true) { try { MailMessage message = new MailMessage(mailFromAddress, emailAddress); message.ReplyTo = new MailAddress("*****@*****.**"); message.Subject = emailSubject; message.Body = emailBodyCopy.ToString(); message.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = SMTPServer; if (mailFromPassword != "") { // If the password is blank, assume mail relay is permitted smtp.Credentials = new System.Net.NetworkCredential(mailFromAddress, mailFromPassword); } smtp.Send(message); newInvite.inviteEmailSent = true; newInvite.inviteEmailSentDate = DateTime.Now; newInvite.inviteEmailSentEmailAddress = emailAddress; newInvite.Update(); SentEmailHistory emailHistory = new SentEmailHistory(Session["loggedInUserFullName"].ToString()); emailHistory.subject = emailSubject; emailHistory.body = emailBodyCopy.ToString(); emailHistory.sentFrom = mailFromAddress; emailHistory.sentTo = emailAddress; emailHistory.Add(); } catch (Exception ex) { SentEmailHistory emailHistory = new SentEmailHistory(Session["loggedInUserFullName"].ToString()); emailHistory.subject = emailSubject; emailHistory.body = ex.Message + " -------- " + emailBodyCopy.ToString(); emailHistory.sentFrom = mailFromAddress; emailHistory.sentTo = emailAddress; emailHistory.Add(); } } sentOK = true; } else { errorMessageDescription = emailAddress + " - you cannot invite yourself"; } } else { errorMessageDescription = emailAddress + " - already invited"; } } catch (Exception ex) { errorMessageDescription = emailAddress + " - " + ex.Message; } } else { errorMessageDescription = emailAddress + " - invalid email address"; } return sentOK; }
//=============================================================== // Function: Page_Load //=============================================================== protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { int eventID = int.Parse(Request.QueryString["EID"]); string action = ""; int eventInviteID = -1; if (Request.QueryString["A"] != null && Request.QueryString["EIID"] != null) { action = Request.QueryString["A"].ToString(); eventInviteID = int.Parse(Request.QueryString["EIID"]); if (action == "Delete") { try { EventInvite inviteToDelete = new EventInvite(Session["loggedInUserFullName"].ToString(), eventInviteID); inviteToDelete.Delete(); } catch (Exception ex) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert(\"Error: " + ex.Message + "\");", true); } } if (action == "InviteAgain") { try { EventInvite repeatInvite = new EventInvite(Session["loggedInUserFullName"].ToString(), eventInviteID); repeatInvite.inviteDeclined = false; repeatInvite.inviteDeclinedDate = DateTime.MinValue; repeatInvite.Update(); } catch (Exception ex) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert(\"Error: " + ex.Message + "\");", true); } } } SedogoEvent sedogoEvent = new SedogoEvent(Session["loggedInUserFullName"].ToString(), eventID); SedogoUser eventOwner = new SedogoUser("", sedogoEvent.userID); int userID = int.Parse(Session["loggedInUserID"].ToString()); sidebarControl.userID = userID; if (userID > 0) { SedogoUser user = new SedogoUser(Session["loggedInUserFullName"].ToString(), userID); sidebarControl.user = user; bannerAddFindControl.userID = userID; } string dateString = ""; DateTime startDate = sedogoEvent.startDate; MiscUtils.GetDateStringStartDate(eventOwner, sedogoEvent.dateType, sedogoEvent.rangeStartDate, sedogoEvent.rangeEndDate, sedogoEvent.beforeBirthday, ref dateString, ref startDate); eventTitleLabel.Text = sedogoEvent.eventName; eventOwnersNameLabel.Text = eventOwner.firstName + " " + eventOwner.lastName; eventDateLabel.Text = dateString; eventDescriptionLabel.Text = sedogoEvent.eventDescription.Replace("\n", "<br/>"); eventNameLabel.Text = sedogoEvent.eventName; goalNameLabel.Text = sedogoEvent.eventName; goalVenueLabel.Text = sedogoEvent.eventVenue; editedDateLabel.Text = sedogoEvent.lastUpdatedDate.ToString("dd MMMM yyyy"); PopulateInvitations(eventID); } }
//=============================================================== // Function: Page_Load //=============================================================== protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { int eventID = int.Parse(Request.QueryString["EID"]); string action = ""; int eventInviteID = -1; if (Request.QueryString["A"] != null && Request.QueryString["EIID"] != null) { action = Request.QueryString["A"].ToString(); eventInviteID = int.Parse(Request.QueryString["EIID"]); if (action == "Delete") { try { EventInvite inviteToDelete = new EventInvite(Session["loggedInUserFullName"].ToString(), eventInviteID); inviteToDelete.Delete(); } catch (Exception ex) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert(\"Error: " + ex.Message + "\");", true); } } if (action == "InviteAgain") { try { EventInvite repeatInvite = new EventInvite(Session["loggedInUserFullName"].ToString(), eventInviteID); repeatInvite.inviteDeclined = false; repeatInvite.inviteDeclinedDate = DateTime.MinValue; repeatInvite.Update(); } catch (Exception ex) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert(\"Error: " + ex.Message + "\");", true); } } } SedogoEvent sedogoEvent = new SedogoEvent(Session["loggedInUserFullName"].ToString(), eventID); SedogoUser eventOwner = new SedogoUser("", sedogoEvent.userID); int userID = int.Parse(Session["loggedInUserID"].ToString()); sidebarControl.userID = userID; if (userID > 0) { SedogoUser user = new SedogoUser(Session["loggedInUserFullName"].ToString(), userID); sidebarControl.user = user; bannerAddFindControl.userID = userID; } string dateString = ""; DateTime startDate = sedogoEvent.startDate; MiscUtils.GetDateStringStartDate(eventOwner, sedogoEvent.dateType, sedogoEvent.rangeStartDate, sedogoEvent.rangeEndDate, sedogoEvent.beforeBirthday, ref dateString, ref startDate); eventTitleLabel.Text = sedogoEvent.eventName; eventOwnersNameLabel.Text = eventOwner.firstName + " " + eventOwner.lastName; eventDateLabel.Text = dateString; eventDescriptionLabel.Text = sedogoEvent.eventDescription.Replace("\n", "<br/>"); eventNameLabel.Text = sedogoEvent.eventName; goalNameLabel.Text = sedogoEvent.eventName; goalVenueLabel.Text = sedogoEvent.eventVenue; editedDateLabel.Text = sedogoEvent.lastUpdatedDate.ToString("dd MMMM yyyy"); PopulateInvitations(eventID); string timelineColour = "#cd3301"; switch (sedogoEvent.categoryID) { case 1: timelineColour = "#cd3301"; break; case 2: timelineColour = "#ff0b0b"; break; case 3: timelineColour = "#ff6801"; break; case 4: timelineColour = "#ff8500"; break; case 5: timelineColour = "#d5b21a"; break; case 6: timelineColour = "#8dc406"; break; case 7: timelineColour = "#5b980c"; break; case 8: timelineColour = "#079abc"; break; case 9: timelineColour = "#5ab6cd"; break; case 10: timelineColour = "#8a67c1"; break; case 11: timelineColour = "#e54ecf"; break; case 12: timelineColour = "#a5369c"; break; case 13: timelineColour = "#a32672"; break; } pageBannerBarDiv.Style.Add("background-color", timelineColour); } }
//=============================================================== // Function: invitedButton_click //=============================================================== protected void invitedButton_click(object sender, EventArgs e) { int eventID = int.Parse(Request.QueryString["EID"]); int userID = int.Parse(Session["loggedInUserID"].ToString()); int eventInviteID = EventInvite.GetEventInviteIDFromUserIDEventID(eventID, userID); // Check if the user is already tracking this event if (TrackedEvent.GetTrackedEventID(eventID, userID) < 0) { TrackedEvent trackedEvent = new TrackedEvent(Session["loggedInUserFullName"].ToString()); trackedEvent.eventID = eventID; trackedEvent.userID = userID; trackedEvent.joinPending = false; trackedEvent.showOnTimeline = true; trackedEvent.Add(); } EventInvite eventInvite = new EventInvite(Session["loggedInUserFullName"].ToString(), eventInviteID); eventInvite.inviteAccepted = true; eventInvite.inviteAcceptedDate = DateTime.Now; eventInvite.Update(); Response.Redirect("viewEvent.aspx?EID=" + eventInvite.eventID.ToString()); }