Skip to main content

Posts

Showing posts with the label EPiServer

Validating for uniqueness with EPiServer

This is just a short post describing a method found for validating that the value provided for field within a page or block is unique across other instances of that content type. The specific need was for a poll block that provided a question and set of answers for users to pick from, with the results being saved to the dynamic data store. I had an "identifier" field that the editors had to complete, the value of which being unique across all polls. And rather than relying on them to remember that, it's obviously better to validate it. Here was the solution. Firstly I created an extension method that gets a list of all blocks of a given type other than the current block, looking like this: public static IEnumerable<T> GetOtherContentData<T>(this T instance) where T : IContentData { var contentTypeRepository = ServiceLocator.Current.GetInstance<IContentTypeRepository>(); var contentModelUsage = ServiceLocator.Current.GetIn...

Creating a Confirmation Email With EPiServer Forms

Had what probably seemed quite a straightforward request for an EPiServer site in development that's using EPiServer Forms - an add-on that allows editors to create their own forms to receive input from the site visitors and review the submissions in the back-office.  They wanted a confirmation email to go to the recipient. Of course though, we don't know what fields the editors are going to create. There may not be one for the visitor's email address. nd even if there were, how can we know which field is the one to use? I came up with a solution to this that requires some simple conventions for the editor to follow but is quite straightforward for them to set up. The first step was to create a new model for the form, inheriting from the base one provided but adding additional properties for the confirmation email details: public class FormContainerWithConfirmationEmailBlock : FormContainerBlock, IHasConfirmationEmail { [Display( Name =...