Пример #1
0
        public async Task <FormElementActionResponse> PerformElementActionAsync(long tenantId, long elementId, FormElementActionRequest request, IPageContext context)
        {
            // Get form settings, domain and current page details
            FormElementSettings settings = await _elementRepository.ReadElementSettingsAsync(tenantId, elementId);

            Page page = await _pageService.ReadPageAsync(tenantId, context.PageId);

            WebDomain domain = await _domainService.ReadDomainByRedirectUrlAsync(tenantId, null);

            Tenant tenant = await _tenantService.ReadTenantAsync(tenantId);

            // Construct email
            IEnumerable <FormFieldLabelValue> labelValues = GetFormFieldLabelValues(settings, request);
            EmailContent content = GetEmailContent(page, labelValues);
            Email        email   = GetEmail(tenant, domain, page, settings, content);

            // Send finished email
            _emailService.Send(email);

            // Return response
            return(new FormElementActionResponse
            {
                Message = settings.SubmittedMessage
            });
        }
Пример #2
0
 private IEnumerable <FormFieldLabelValue> GetFormFieldLabelValues(FormElementSettings settings, FormElementActionRequest request)
 {
     foreach (FormField field in settings.Fields)
     {
         FormFieldValue value = request.Fields.Where(f => f.FormFieldId == field.FormFieldId).FirstOrDefault();
         if (value != null)
         {
             yield return(new FormFieldLabelValue
             {
                 Label = field.Label,
                 Value = value.Value
             });
         }
     }
 }