public SeminarRegistrationBuilder(int registrationID) { registration = new DojoSeminarRegistration(registrationID); options = new DojoSeminarRegistrationOptionManager(). GetCollection("ParentRegistrationID=" + registrationID.ToString(), string.Empty, DojoSeminarRegistrationOptionFlags.ParentOption); }
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); }
public DojoSeminarRegistrationOptionCollection Clone() { DojoSeminarRegistrationOptionCollection clonedDojoSeminarRegistrationOption = new DojoSeminarRegistrationOptionCollection(count); lock (this) { foreach (DojoSeminarRegistrationOption item in this) { clonedDojoSeminarRegistrationOption.Add(item); } } return(clonedDojoSeminarRegistrationOption); }
public SeminarRegistrationBuilder(DojoSeminarRegistration registration) { this.registration = registration; if (registration.ID != 0) { options = new DojoSeminarRegistrationOptionManager(). GetCollection("ParentRegistrationID=" + registration.ID.ToString(), string.Empty, DojoSeminarRegistrationOptionFlags.ParentOption); } else { options = new DojoSeminarRegistrationOptionCollection(); } }
/// <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(); } }
public SeminarRegistrationBuilder() { registration = new DojoSeminarRegistration(); options = new DojoSeminarRegistrationOptionCollection(); }
public void LoadDefaults() { DojoAccessControlGroupCollection accessControls; DojoAttendanceEntryCollection attendanceEntries; DojoBulkAttendanceEntryCollection bulkAttendances; DojoClassCollection classes; DojoClassDefinitionCollection classDefinitions; DojoMemberCollection members; DojoMembershipCollection memberships; DojoMembershipTemplateCollection membershipTemplates; DojoMemberTypeCollection memberTypes; DojoMemberTypeTemplateCollection memberTypeTemplates; DojoOrganizationCollection organizations; DojoPromotionCollection promotions; DojoPromotionFlagCollection promotionFlags; DojoPromotionStatusCollection promotionStatuses; DojoRankCollection ranks; DojoTestCollection tests; DojoTestListCollection testLists; DojoTestListJournalEntryCollection testListJournalEntries; DojoTestListJournalEntryTypeCollection testListJournalEntryTypes; DojoTestListStatusCollection testListStatuses; DojoSeminarCollection seminars; DojoSeminarOptionCollection seminarOptions; DojoSeminarRegistrationCollection seminarRegistrations; DojoSeminarRegistrationOptionCollection seminarRegistrationOptions; GreyFoxContactCollection locations; accessControls = new DojoAccessControlGroupCollection(); attendanceEntries = new DojoAttendanceEntryCollection(); bulkAttendances = new DojoBulkAttendanceEntryCollection(); classes = new DojoClassCollection(); classDefinitions = new DojoClassDefinitionCollection(); members = new DojoMemberCollection(); memberships = new DojoMembershipCollection(); membershipTemplates = new DojoMembershipTemplateCollection(); memberTypes = new DojoMemberTypeCollection(); memberTypeTemplates = new DojoMemberTypeTemplateCollection(); organizations = new DojoOrganizationCollection(); promotions = new DojoPromotionCollection(); promotionFlags = new DojoPromotionFlagCollection(); promotionStatuses = new DojoPromotionStatusCollection(); ranks = new DojoRankCollection(); tests = new DojoTestCollection(); testLists = new DojoTestListCollection(); testListJournalEntries = new DojoTestListJournalEntryCollection(); testListJournalEntryTypes = new DojoTestListJournalEntryTypeCollection(); testListStatuses = new DojoTestListStatusCollection(); seminars = new DojoSeminarCollection(); seminarOptions = new DojoSeminarOptionCollection(); seminarRegistrations = new DojoSeminarRegistrationCollection(); seminarRegistrationOptions = new DojoSeminarRegistrationOptionCollection(); locations = new GreyFoxContactCollection(); organizations = new DojoOrganizationManager().GetCollection(string.Empty, string.Empty, null); memberTypes = new DojoMemberTypeManager().GetCollection(string.Empty, string.Empty); memberTypeTemplates = new DojoMemberTypeTemplateManager().GetCollection(string.Empty, string.Empty, null); ranks = new DojoRankManager().GetCollection(string.Empty, string.Empty, null); membershipTemplates = new DojoMembershipTemplateManager().GetCollection(string.Empty, string.Empty, null); Dictionary <string, DojoMemberType> memberTypesDictionary = new Dictionary <string, DojoMemberType>(); foreach (DojoMemberType memberType in memberTypes) { memberTypesDictionary.Add(memberType.Name, memberType); } Dictionary <string, DojoMemberTypeTemplate> memberTypeTemplatesDictionary = new Dictionary <string, DojoMemberTypeTemplate>(); foreach (DojoMemberTypeTemplate typeTemplate in memberTypeTemplates) { memberTypeTemplatesDictionary.Add(typeTemplate.Name, typeTemplate); } Dictionary <string, DojoRank> ranksDictionary = new Dictionary <string, DojoRank>(); foreach (DojoRank rank in ranks) { ranksDictionary.Add(rank.Name, rank); } Dictionary <string, DojoMembershipTemplate> membershipTemplatesDictionary = new Dictionary <string, DojoMembershipTemplate>(); foreach (DojoMembershipTemplate template in membershipTemplates) { membershipTemplatesDictionary.Add(template.Name, template); } CsvParser.CsvStream csv = CsvParser.StreamParse(Localization.Defaults.Defaults_en_US, false); string rowType; string[] r = csv.GetNextRow(); while (r != null) { rowType = r[0]; if (rowType == Localization.Defaults.CSVMembershipTemplate) { DojoMembershipTemplate template = TessenFactory.MembershipTemplate( r[1], r[2], bool.Parse(r[3]), bool.Parse(r[4]), bool.Parse(r[5]), decimal.Parse(r[6]), decimal.Parse(r[7]), (DojoMembershipDayType)Enum.Parse(typeof(DojoMembershipDayType), r[8]), (DojoMembershipDayType)Enum.Parse(typeof(DojoMembershipDayType), r[9]), DojoOrganization.NewPlaceHolder(0), 1, int.Parse(r[11]), int.Parse(r[12]), decimal.Parse(r[13]), (DojoMembershipDayType)Enum.Parse(typeof(DojoMembershipDayType), r[14]), int.Parse(r[15]), int.Parse(r[16]), decimal.Parse(r[17]), (DojoMembershipDayType)Enum.Parse(typeof(DojoMembershipDayType), r[18]), int.Parse(r[19]), int.Parse(r[20]), decimal.Parse(r[21]), (DojoMembershipDayType)Enum.Parse(typeof(DojoMembershipDayType), r[22]), int.Parse(r[23]), int.Parse(r[24]), int.Parse(r[25]), int.Parse(r[26]), ranksDictionary.ContainsKey(r[27]) ? ranksDictionary[r[27]] : null, ranksDictionary.ContainsKey(r[28]) ? ranksDictionary[r[28]] : null); membershipTemplates.Add(template); membershipTemplatesDictionary.Add(template.Name, template); template.Save(); } else if (rowType == Localization.Defaults.CSVMemberTypeTemplate) { DojoMemberTypeTemplate template = TessenFactory.MemberTypeTemplate( r[1], r[2], memberTypeTemplatesDictionary.ContainsKey(r[3].ToString()) ? memberTypeTemplatesDictionary[r[3]] : null, memberTypesDictionary.ContainsKey(r[4]) ? memberTypesDictionary[r[4]] : null, bool.Parse(r[5]), bool.Parse(r[6]), bool.Parse(r[7]), bool.Parse(r[8]), int.Parse(r[9]), int.Parse(r[10]), int.Parse(r[11]), int.Parse(r[12]), ranksDictionary.ContainsKey(r[13]) ? ranksDictionary[r[13]] : null, ranksDictionary.ContainsKey(r[14]) ? ranksDictionary[r[14]] : null, membershipTemplatesDictionary.ContainsKey(r[15]) ? membershipTemplatesDictionary[r[15]] : null, membershipTemplatesDictionary.ContainsKey(r[16]) ? membershipTemplatesDictionary[r[16]] : null, membershipTemplatesDictionary.ContainsKey(r[17]) ? membershipTemplatesDictionary[r[17]] : null, membershipTemplatesDictionary.ContainsKey(r[18]) ? membershipTemplatesDictionary[r[18]] : null, membershipTemplatesDictionary.ContainsKey(r[19]) ? membershipTemplatesDictionary[r[19]] : null); memberTypeTemplates.Add(template); memberTypeTemplatesDictionary.Add(template.Name, template); template.Save(); } r = csv.GetNextRow(); } }
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; }