/// <summary> /// Creates the control(s) neccessary for prompting user for a new value /// </summary> /// <param name="configurationValues">The configuration values.</param> /// <param name="id"></param> /// <returns> /// The control /// </returns> public override Control EditControl(Dictionary<string,ConfigurationValue> configurationValues, string id) { var editControl = new RockDropDownList { ID = id }; var service = new EmailTemplateService(); foreach ( var emailTemplate in service.Queryable().OrderBy( e => e.Title ) ) { editControl.Items.Add( new ListItem( emailTemplate.Title, emailTemplate.Guid.ToString() ) ); } return editControl; }
/// <summary> /// Handles the Click event of the btnSave control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnSave_Click( object sender, EventArgs e ) { EmailTemplateService emailTemplateService = new EmailTemplateService(); EmailTemplate emailTemplate; int emailTemplateId = int.Parse(hfEmailTemplateId.Value); if ( emailTemplateId == 0 ) { emailTemplate = new EmailTemplate(); emailTemplateService.Add( emailTemplate, CurrentPersonId ); } else { emailTemplate = emailTemplateService.Get( emailTemplateId ); } emailTemplate.Category = tbCategory.Text; emailTemplate.Title = tbTitle.Text; emailTemplate.From = tbFrom.Text; emailTemplate.To = tbTo.Text; emailTemplate.Cc = tbCc.Text; emailTemplate.Bcc = tbBcc.Text; emailTemplate.Subject = tbSubject.Text; emailTemplate.Body = tbBody.Text; if ( !emailTemplate.IsValid ) { // Controls will render the error messages return; } emailTemplateService.Save( emailTemplate, CurrentPersonId ); BindFilter(); BindGrid(); pnlDetails.Visible = false; pnlList.Visible = true; }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { EmailTemplateService emailTemplateService = new EmailTemplateService(); SortProperty sortProperty = gEmailTemplates.SortProperty; var emailTemplates = emailTemplateService.Queryable(); if ( ddlCategoryFilter.SelectedValue != All.Id.ToString() ) { emailTemplates = emailTemplates.Where( a => a.Category.Trim() == ddlCategoryFilter.SelectedValue ); } if ( sortProperty != null ) { gEmailTemplates.DataSource = emailTemplates.Sort( sortProperty ).ToList(); } else { gEmailTemplates.DataSource = emailTemplates.OrderBy( a => a.Category ).ThenBy( a => a.Title ).ToList(); } gEmailTemplates.DataBind(); }
/// <summary> /// Binds the filter. /// </summary> private void BindFilter() { ddlCategoryFilter.Items.Clear(); ddlCategoryFilter.Items.Add( new ListItem(All.Text, All.Id.ToString()) ); EmailTemplateService emailTemplateService = new EmailTemplateService(); var items = emailTemplateService.Queryable(). Where( a => a.Category.Trim() != "" && a.Category != null ). OrderBy( a => a.Category ). Select( a => a.Category.Trim() ). Distinct().ToList(); foreach ( var item in items ) { ListItem li = new ListItem( item ); li.Selected = ( !Page.IsPostBack && rFilter.GetUserValue( "Category" ) == item ); ddlCategoryFilter.Items.Add( li ); } }
/// <summary> /// Shows the edit. /// </summary> /// <param name="emailTemplateId">The email template id.</param> protected void ShowEdit( int emailTemplateId ) { pnlList.Visible = false; pnlDetails.Visible = true; EmailTemplateService emailTemplateService = new EmailTemplateService(); EmailTemplate emailTemplate = emailTemplateService.Get( emailTemplateId ); if ( emailTemplate != null ) { lActionTitle.Text = ActionTitle.Edit( EmailTemplate.FriendlyTypeName ); hfEmailTemplateId.Value = emailTemplate.Id.ToString(); tbCategory.Text = emailTemplate.Category; tbTitle.Text = emailTemplate.Title; tbFrom.Text = emailTemplate.From; tbTo.Text = emailTemplate.To; tbCc.Text = emailTemplate.Cc; tbBcc.Text = emailTemplate.Bcc; tbSubject.Text = emailTemplate.Subject; tbBody.Text = emailTemplate.Body; } else { lActionTitle.Text = ActionTitle.Add( EmailTemplate.FriendlyTypeName ); hfEmailTemplateId.Value = 0.ToString(); tbCategory.Text = string.Empty; tbTitle.Text = string.Empty; tbFrom.Text = string.Empty; tbTo.Text = string.Empty; tbCc.Text = string.Empty; tbBcc.Text = string.Empty; tbSubject.Text = string.Empty; tbBody.Text = string.Empty; } }
/// <summary> /// Handles the Delete event of the gEmailTemplates control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gEmailTemplates_Delete( object sender, RowEventArgs e ) { EmailTemplateService emailTemplateService = new EmailTemplateService(); EmailTemplate emailTemplate = emailTemplateService.Get( (int)gEmailTemplates.DataKeys[e.RowIndex]["id"] ); if ( emailTemplate != null ) { emailTemplateService.Delete( emailTemplate, CurrentPersonId ); emailTemplateService.Save( emailTemplate, CurrentPersonId ); } BindGrid(); }
/// <summary> /// Shows the edit. /// </summary> /// <param name="emailTemplateId">The email template id.</param> protected void ShowEdit( int emailTemplateId ) { var globalAttributes = GlobalAttributesCache.Read(); string globalFrom = globalAttributes.GetValue( "OrganizationEmail" ); tbFrom.Help = string.Format( "If a From value is not entered the 'Organization Email' Global Attribute value of '{0}' will be used when this template is sent.", globalFrom ); pnlList.Visible = false; pnlDetails.Visible = true; EmailTemplateService emailTemplateService = new EmailTemplateService(); EmailTemplate emailTemplate = emailTemplateService.Get( emailTemplateId ); if ( emailTemplate != null ) { lActionTitle.Text = ActionTitle.Edit( EmailTemplate.FriendlyTypeName ).FormatAsHtmlTitle(); hfEmailTemplateId.Value = emailTemplate.Id.ToString(); tbCategory.Text = emailTemplate.Category; tbTitle.Text = emailTemplate.Title; tbFrom.Text = emailTemplate.From; tbTo.Text = emailTemplate.To; tbCc.Text = emailTemplate.Cc; tbBcc.Text = emailTemplate.Bcc; tbSubject.Text = emailTemplate.Subject; tbBody.Text = emailTemplate.Body; } else { lActionTitle.Text = ActionTitle.Add( EmailTemplate.FriendlyTypeName ).FormatAsHtmlTitle(); hfEmailTemplateId.Value = 0.ToString(); tbCategory.Text = string.Empty; tbTitle.Text = string.Empty; tbFrom.Text = string.Empty; tbTo.Text = string.Empty; tbCc.Text = string.Empty; tbBcc.Text = string.Empty; tbSubject.Text = string.Empty; tbBody.Text = string.Empty; } }