Exemple #1
0
        public virtual ActionResult Success(XFormPostedData xFormPostedData)
        {
            var data    = xFormPostedData.XFormFragments.ToList();
            var subject = Translate("/niteco/emailtemplate/subject").Replace("{FullName}", data[0].Value)
                          .Replace("\n", "");
            var templateBody = Translate("/niteco/emailtemplate/body");
            var body         = templateBody.Replace("{FullName}", data[0].Value)
                               .Replace("{Email}", data[1].Value)
                               .Replace("{Phone}", data[2].Value)
                               .Replace("{Country}", data[3].Value)
                               .Replace("{Message}", data[4].Value)
                               .Replace("\n", "<br>");

            var emailToSend  = SiteSettingsHandler.Instance.SiteSettings.EmailAdmin;
            var emailService = ServiceLocator.Current.GetInstance <IEmailService>();

            if (!string.IsNullOrEmpty(emailToSend))
            {
                emailService.SendEmail(emailToSend, data[0].Value, subject, body, true);
            }

            TempData["xformPosted"] = true;
            return(new RedirectResult(Url.Action("Index") + "#contact-form"));
            //return RedirectToAction("Index", new { language = PageContext.LanguageID });
        }
Exemple #2
0
        public virtual ActionResult Index(EventPageBase currentPage, XFormPostedData xFormPostedData, string contentLink)
        {
            var model = CreateEventRegistrationModel(currentPage, contentLink);

            var id = (currentPage as IContent).ContentLink.ID;

            var viewDataKey = string.Format("TempViewData_{0}", id);

            this.ViewData["XFormFragments"] = (object)xFormPostedData.Fragments;
            this.ControllerContext.Controller.ViewData["XFormFragments"] = (object)xFormPostedData.Fragments;
            this.TempData[viewDataKey] = this.ViewData;
            model.ViewData             = this.ViewData;
            model.ViewDataKey          = viewDataKey;

            string participantEmail = "";

            foreach (var fragment in xFormPostedData.Fragments)
            {
                if (fragment as EPiServer.XForms.Parsing.InputFragment != null)
                {
                    string fragmentReference = (fragment as EPiServer.XForms.Parsing.InputFragment).Reference.ToLower();
                    if (fragmentReference == "epost" || fragmentReference == "email" || fragmentReference == BVNetwork.Attend.Business.Settings.Settings.GetSetting("emailFieldName"))
                    {
                        participantEmail = (fragment as EPiServer.XForms.Parsing.InputFragment).Value;
                    }
                }
            }

            string xformdata = new EPiServer.Web.Mvc.XForms.XFormPageHelper().GetXFormData(this, xFormPostedData).Data.InnerXml;

            var metadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(XFormPostedData));

            var validationResult = new XFormValidator(metadata, this.ControllerContext).Validate(xFormPostedData);

            model.Messages = new List <string>();
            foreach (var a in validationResult)
            {
                if (!string.IsNullOrEmpty(a.Message))
                {
                    model.Messages.Add(a.Message);
                }
            }
            if (Business.Email.Validation.IsEmail(participantEmail) == false)
            {
                model.Messages.Add(EPiServer.Framework.Localization.LocalizationService.Current.GetString("/attend/edit/emailmissing"));
            }

            if (Business.Email.Validation.IsEmail(participantEmail) == false || model.Messages.Count > 0)
            {
                model.PostedData = xFormPostedData;
                _xformHandler.HandleAction(this);
                return(PartialView("~/modules/BVNetwork.Attend/Views/Pages/Partials/EventPagePartial.cshtml", model));
            }

            IParticipant participant = AttendRegistrationEngine.GenerateParticipation(model.EventPageBase.ContentLink, participantEmail, true, xformdata, "Participant submitted form");

            participant.XForm = xformdata;

            //Add sessions to participant

            participant.Sessions = new ContentArea();
            foreach (var key in Request.Form.AllKeys)
            {
                if (key.StartsWith("Session"))
                {
                    var sessionContentReference = new ContentReference(Request[key]);
                    participant.Sessions.Items.Add(new ContentAreaItem()
                    {
                        ContentLink = sessionContentReference
                    });
                }
            }
            _contentRepository.Save(participant as IContent, SaveAction.Publish, AccessLevel.NoAccess);

            model.Submitted = participant.AttendStatus.ToLower() == "submitted";

            ViewBag.Participant = participant;

            return(PartialView("~/modules/BVNetwork.Attend/Views/Pages/Partials/EventPagePartialSuccess.cshtml", model));
        }
Exemple #3
0
 public ActionResult DoSubmit(XFormPostedData xFormpostedData)
 {
     return(_xformHandler.HandleAction(this));
 }
Exemple #4
0
        public ActionResult Failed(EventPageBase currentPage, XFormPostedData xFormPostedData, string contentLink)
        {
            var model = CreateEventRegistrationModel(currentPage, contentLink);

            return(View("Index", model));
        }
Exemple #5
0
 public virtual ActionResult XFormPost(XFormPostedData xFormpostedData, string contentId)
 {
     _contentId = contentId;
     //ValidateReCaptcha();
     return(_xformHandler.HandleAction(this));
 }
Exemple #6
0
 public virtual ActionResult Failed(XFormPostedData xFormPostedData)
 {
     return(new RedirectResult(Url.Action("Index") + "#contact-form"));
 }