protected void Page_Load(object sender, EventArgs e)
    {
      FormState reqState = RequestedState;

      // Konfiguration einlesen.
      ModuleConfig cfg = LoadConfig();

      if (reqState == FormState.Form)
      {
        // Wurde das Formular bereits übermittelt?
        if (IsPostBack && IsSubmitted(cfg.FormContent))
        {
          // Eingabedaten auswerten.
          Guid errorValidator = Guid.Empty;
          bool success = ValidateRequest(cfg, out errorValidator);
          bool redirect = true;

          if (success)
          {
            if (cfg.SendEmail)
            {
              EmailSender emailSender = new EmailSender();
              try
              {
                emailSender.Process(cfg);
              }
              catch (System.Exception ex)
              {
                // Falls der Benutzer Edit-Rechte hat, wird die Meldung aus der Exception angezeigt.
                if (ModuleHasEditRights)
                {
                  _content.Text = "Error: " + ex.Message;
                  redirect = false;
                }

                success = false;
              }
            }
          }

          if(redirect)
          {
            // Falls die Erfolgsseite angezeigt werden soll, wird diese eingeblendet.
            if (success && cfg.ShowSuccessPage)
            {
              _content.Text = cfg.SuccessContent;
              NavigateTo(FormState.Success);
            }
            else if (!success)
            {
              _content.Text = cfg.ErrorContent;
              NavigateTo(FormState.Error, errorValidator);
            }
            else
            {
              // Die eigene Seite wieder laden, damit die Formulardaten nicht ein zweites mal übermittelt werden können.
              NavigateTo(FormState.Form);
            }
          }
        }
        else
        {
          // Formular anzeigen.
          _content.Text = cfg.FormContent;
        }
      }
      else 
      {
        // Html ermitteln.
        string html = GetCurrentHtml(reqState, cfg);

        // Wurde bereits die Meldung quittiert?
        if (IsPostBack && IsSubmitted(html))
        {
          // Zurück zum Formular.
          NavigateTo(FormState.Form);
        }
        else
        {
          // Meldung anzeigen.
          _content.Text = html;
        }
      }
    }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            FormState reqState = RequestedState;

            // Konfiguration einlesen.
            ModuleConfig cfg = LoadConfig();

            if (reqState == FormState.Form)
            {
                // Wurde das Formular bereits übermittelt?
                if (IsPostBack && IsSubmitted(cfg.FormContent))
                {
                    // Eingabedaten auswerten.
                    Guid errorValidator = Guid.Empty;
                    bool success        = ValidateRequest(cfg, out errorValidator);
                    bool redirect       = true;

                    if (success)
                    {
                        if (cfg.SendEmail)
                        {
                            EmailSender emailSender = new EmailSender();
                            try
                            {
                                emailSender.Process(cfg);
                            }
                            catch (System.Exception ex)
                            {
                                // Falls der Benutzer Edit-Rechte hat, wird die Meldung aus der Exception angezeigt.
                                if (ModuleHasEditRights)
                                {
                                    _content.Text = "Error: " + ex.Message;
                                    redirect      = false;
                                }

                                success = false;
                            }
                        }
                    }

                    if (redirect)
                    {
                        // Falls die Erfolgsseite angezeigt werden soll, wird diese eingeblendet.
                        if (success && cfg.ShowSuccessPage)
                        {
                            _content.Text = cfg.SuccessContent;
                            NavigateTo(FormState.Success);
                        }
                        else if (!success)
                        {
                            _content.Text = cfg.ErrorContent;
                            NavigateTo(FormState.Error, errorValidator);
                        }
                        else
                        {
                            // Die eigene Seite wieder laden, damit die Formulardaten nicht ein zweites mal übermittelt werden können.
                            NavigateTo(FormState.Form);
                        }
                    }
                }
                else
                {
                    // Formular anzeigen.
                    _content.Text = cfg.FormContent;
                }
            }
            else
            {
                // Html ermitteln.
                string html = GetCurrentHtml(reqState, cfg);

                // Wurde bereits die Meldung quittiert?
                if (IsPostBack && IsSubmitted(html))
                {
                    // Zurück zum Formular.
                    NavigateTo(FormState.Form);
                }
                else
                {
                    // Meldung anzeigen.
                    _content.Text = html;
                }
            }
        }