Exemplo n.º 1
0
        protected override void OnPreRender(EventArgs e)
        {
            switch (selectedTab)
            {
            case Tab.Disabled:
                btOk.CausesValidation = false;
                break;

            case Tab.Create:
                if (registrationID != 0 && registration == null)
                {
                    registration = new DojoSeminarRegistration(registrationID);
                }
                if (registration != null)
                {
                    tbName.Text          = registration.Contact.FullName;
                    tbAddress1.Text      = registration.Contact.Address1;
                    tbAddress2.Text      = registration.Contact.Address2;
                    tbCity.Text          = registration.Contact.City;
                    tbStateProvince.Text = registration.Contact.StateProvince;
                    tbPostalCode.Text    = registration.Contact.PostalCode;
                    tbCountry.Text       = registration.Contact.Country;
                    tbHomePhone.Text     = registration.Contact.HomePhone;
                    tbWorkPhone.Text     = registration.Contact.WorkPhone;
                    tbEmail1.Text        = registration.Contact.Email1;
                    if (registrationOptions == null)
                    {
                        DojoSeminarRegistrationOptionManager m = new DojoSeminarRegistrationOptionManager();
                        registrationOptions = m.GetCollection("ParentRegistrationID=" + registrationID,
                                                              string.Empty, null);
                    }
                    foreach (ListItem i in ddClassUnits.Items)
                    {
                        i.Selected = i.Value == registration.classUnits.ToString();
                    }
                }
                break;

            case Tab.Verify:
                btOk.CausesValidation = false;
                goto case Tab.Create;

            case Tab.Payment:
                btOk.CausesValidation = false;
                break;

            case Tab.Locked:
                btOk.CausesValidation = false;
                break;
            }

            setValidators(selectedTab);
        }
        /// <summary>
        /// Render this control to the output parameter specified.
        /// </summary>
        /// <param name="output"> The HTML writer to write out to </param>
        protected override void RenderContent(HtmlTextWriter output)
        {
            DojoSeminarRegistrationOptionManager    m = new DojoSeminarRegistrationOptionManager();
            DojoSeminarRegistrationOptionCollection dojoSeminarRegistrationOptionCollection = m.GetCollection(string.Empty, string.Empty, null);

            // Render Header Row
            this.headerLockEnabled = true;
            RenderRow(this.HeaderRowCssClass, );

            bool   rowflag = false;
            string rowCssClass;

            //
            // Render Records
            //
            foreach (DojoSeminarRegistrationOption dojoSeminarRegistrationOption in dojoSeminarRegistrationOptionCollection)
            {
                if (rowflag)
                {
                    rowCssClass = defaultRowCssClass;
                }
                else
                {
                    rowCssClass = alternateRowCssClass;
                }
                rowflag = !rowflag;
                output.WriteBeginTag("tr");
                output.WriteAttribute("i", dojoSeminarRegistrationOption.ID.ToString());
                output.WriteLine(HtmlTextWriter.TagRightChar);
                output.Indent++;

                output.Indent--;
                output.WriteEndTag("tr");
                output.WriteLine();
            }
        }
Exemplo n.º 3
0
        protected override void RenderViewPane(HtmlTextWriter output)
        {
            RenderTableBeginTag("_viewPanel", this.CellPadding, this.CellSpacing, Unit.Percentage(100), Unit.Empty, this.CssClass);

            DojoSeminarRegistration m = new DojoSeminarRegistration(int.Parse(Page.Request.QueryString[0]));

            output.WriteFullBeginTag("tr");
            output.WriteBeginTag("th");
            output.WriteAttribute("class", this.HeaderCssClass);
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write(m.Contact.FullName);
            output.WriteEndTag("th");
            output.WriteEndTag("tr");

            #region Contact Information

            output.WriteFullBeginTag("tr");
            output.WriteBeginTag("td");
            output.WriteAttribute("class", this.SubHeaderCssClass);
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write("Contact Information");
            output.WriteEndTag("td");
            output.WriteEndTag("tr");

            output.WriteFullBeginTag("tr");
            output.WriteBeginTag("td");
            output.WriteAttribute("class", this.defaultRowCssClass);
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write(m.Contact.ConstructAddress("<br />"));
            output.Write("<br />");
            if (m.Contact.HomePhone != string.Empty)
            {
                output.Write(m.Contact.HomePhone + " (h)<br />");
            }
            if (m.Contact.WorkPhone != string.Empty)
            {
                output.Write(m.Contact.WorkPhone + " (w)<br />");
            }
            if (m.Contact.Email1 != string.Empty)
            {
                output.Write("<a href=\"mailto:");
                output.Write(m.Contact.Email1);
                output.Write("\">");
                output.Write(m.Contact.Email1);
                output.Write("</a>");
                output.Write("<br />");
            }
            if (m.Contact.ValidationMemo != null && m.Contact.ValidationMemo.Length > 0)
            {
                output.Write("<br />");
                output.Write("<strong>Validation Memo : </strong><br />");
                output.Write(m.Contact.ValidationMemo.Replace("\n", "<br />"));
            }
            output.WriteEndTag("td");
            output.WriteEndTag("tr");

            #endregion

            #region Registration

            output.WriteFullBeginTag("tr");
            output.WriteBeginTag("td");
            output.WriteAttribute("class", this.SubHeaderCssClass);
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write("Payment");
            output.WriteEndTag("td");
            output.WriteEndTag("tr");

            if (m.PaymentAmount == decimal.Zero)
            {
                output.WriteFullBeginTag("tr");
                output.WriteBeginTag("td");
                output.WriteAttribute("class", this.DefaultRowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write("<strong>Payment Amount</strong> : Unpaid");
                output.WriteEndTag("td");
                output.WriteEndTag("tr");
            }
            else
            {
                output.WriteFullBeginTag("tr");
                output.WriteBeginTag("td");
                output.WriteAttribute("class", this.DefaultRowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write("<strong>Payment Amount</strong> : ");
                output.Write(m.PaymentAmount.ToString("c"));
                output.WriteEndTag("td");
                output.WriteEndTag("tr");

                output.WriteFullBeginTag("tr");
                output.WriteBeginTag("td");
                output.WriteAttribute("class", this.DefaultRowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write("<strong>Payment Date</strong> : ");
                output.Write(m.PaymentDate.ToLongDateString());
                output.WriteEndTag("td");
                output.WriteEndTag("tr");

                output.WriteFullBeginTag("tr");
                output.WriteBeginTag("td");
                output.WriteAttribute("class", this.DefaultRowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write("<strong>Payment Reference</strong> : ");
                output.Write(m.PaymentReference);
                output.WriteEndTag("td");
                output.WriteEndTag("tr");
            }

            #endregion

            #region Options

            DojoSeminarRegistrationOptionCollection options =
                new DojoSeminarRegistrationOptionManager().GetCollection("ParentRegistrationID=" +
                                                                         m.ID.ToString(), string.Empty, null);

            if (options.Count > 0)
            {
                output.WriteFullBeginTag("tr");
                output.WriteBeginTag("td");
                output.WriteAttribute("class", this.SubHeaderCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write("Options");
                output.WriteEndTag("td");
                output.WriteEndTag("tr");

                foreach (DojoSeminarRegistrationOption option in options)
                {
                    output.WriteFullBeginTag("tr");
                    output.WriteBeginTag("td");
                    output.WriteAttribute("class", this.DefaultRowCssClass);
                    output.Write(HtmlTextWriter.TagRightChar);
                    output.Write(option.ParentOption.Name);
                    output.Write(" - ");
                    output.Write(option.Quantity.ToString());
                    output.WriteEndTag("td");
                    output.WriteEndTag("tr");
                }
            }

            #endregion

            output.WriteEndTag("table");
        }
Exemplo n.º 4
0
        private void create()
        {
            setValidators(Tab.Create);

            Page.Validate();
            if (!Page.IsValid)
            {
                return;
            }

            // Create a new registration if it does not already exist. Be sure to create
            // the registration in proper order; contact, registration, options. If
            // Rappahanock is enabled, create the sales order for the item.

            SeminarRegistrationBuilder builder = null;

            if (registrationID == 0)
            {
                builder              = new SeminarRegistrationBuilder();
                registration         = builder.Registration;
                registrationOptions  = builder.Options;
                registration.Contact =
                    new GreyFoxContact(DojoSeminarRegistrationManager.ContactTable);

                // Set a SessionID for security using either the username
                // or ASP.net SessionID
                if (Page.User.Identity.Name != string.Empty)
                {
                    registration.SessionID = Page.User.Identity.Name;
                }
                else
                {
                    registration.SessionID = Page.Session.SessionID;
                }
            }
            else
            {
                // Be sure to remove the registration from the cart if
                // Rappahanock processing is activated.
                try
                {
                    builder = new SeminarRegistrationBuilder(registrationID);
                }
                catch
                {
                    selectedTab = Tab.Locked;
                    return;
                }

                registration        = builder.Registration;
                registrationOptions = builder.Options;

                // Check for SessionID for Security
                if (registration.SessionID != Page.Session.SessionID &
                    registration.SessionID != Page.User.Identity.Name)
                {
                    selectedTab = Tab.Locked;
                    return;
                }

                // If the registration has a payment amount over zero,
                // be sure to lock it to remove a vulnerability.
                if (registration.PaymentAmount > 0)
                {
                    selectedTab = Tab.Locked;
                    return;
                }

                if (paymentMode == RegistrationPaymentMode.Rappahanock)
                {
                    builder.RemoveFromCart();
                }
            }

            registration.RegistrationDate = DateTime.Now;
            registration.Status           = 0;
            registration.Contact.ParseName(tbName.Text);
            registration.Contact.ParseAddress(tbAddress1.Text, tbAddress2.Text, tbCity.Text,
                                              tbStateProvince.Text, tbPostalCode.Text, tbCountry.Text);
            registration.Contact.ParsePhones(tbHomePhone.Text, tbWorkPhone.Text, string.Empty,
                                             string.Empty, string.Empty);
            registration.Contact.Email1 = tbEmail1.Text;
            registration.Contact.Save();
            registration.ParentSeminar = seminar;
            registration.classUnits    = int.Parse(ddClassUnits.SelectedItem.Value);
            registrationID             = registration.Save();

            // Set options for the registration by first clearing the options
            // already associated with the registration then recreating them
            // from current selections.
            DojoSeminarRegistrationOptionManager.ClearOptions(registration);
            registrationOptions.Clear();

            // Loop through the form's post back data looking for the lineOption
            // and quantity keys. Setup the associated options with the
            // current registration only if selected or the quantity is not
            // zero.
            string[] allKeys = Context.Request.Form.AllKeys;
            int      optionId;
            int      quantity = 0;

            for (int x = 0; x < allKeys.Length; x++)
            {
                if (!allKeys[x].StartsWith(ClientID + "___option") &
                    !allKeys[x].StartsWith(ClientID + "___qty"))
                {
                    continue;
                }

                if (allKeys[x].StartsWith(ClientID + "___option"))
                {
                    // Parse OptionID Selected
                    optionId = int.Parse(allKeys[x].Substring(
                                             ClientID.Length + 9, allKeys[x].Length - (ClientID.Length + 9)));
                    quantity = 1;
                }
                else
                {
                    // Parse OptionID and Quantity Selected and be sure
                    // to ignore quantities less than 1, otherwise some
                    // clever registrants will get some discounts!
                    optionId = int.Parse(allKeys[x].Substring(
                                             ClientID.Length + 6, allKeys[x].Length - (ClientID.Length + 6)));
                    quantity =
                        int.Parse(Context.Request.Form[ClientID + "___qty" + optionId.ToString()]);

                    if (quantity < 1)
                    {
                        continue;
                    }
                }

                // Find the lineOption in the seminar's list of available options then
                // add the lineOption and save it.
                foreach (DojoSeminarOption seminarOption in seminar.Options)
                {
                    if (optionId == seminarOption.iD)
                    {
                        DojoSeminarRegistrationOption registrationOption =
                            new DojoSeminarRegistrationOption();
                        registrationOption.ParentRegistration = registration;
                        registrationOption.ParentOption       = seminarOption;
                        registrationOption.CostPerItem        = seminarOption.Fee;
                        registrationOption.Quantity           = quantity;
                        registrationOption.TotalFee           = seminarOption.Fee * registrationOption.Quantity;
                        registrationOption.Save();
                        registrationOptions.Add(registrationOption);
                        break;
                    }
                }
            }

            // Save the registration again to update quantities and fees.
            registration.CalculateFee(registrationOptions);
            registration.Save();

            if (paymentMode == RegistrationPaymentMode.Rappahanock)
            {
                builder.AddToCart();
            }

            selectedTab = Tab.Verify;
        }