public void Clear() { member = null; typeTemplate = null; memberships = null; totalFee = decimal.Zero; }
/// <summary> /// Builds the memberships for the current member. If the member has /// submembers associated, these submemberships will be added to the /// member's memberships listing and associated to the submembers. /// /// Members are responsible for their submember's fees, but not any /// members beneath the submembers. /// </summary> /// <param name="member"></param> /// <param name="typeTemplate"></param> /// <param name="builder"></param> public void Build( DojoMember member, DojoMemberTypeTemplate typeTemplate, MembershipBuilder builder) { DojoMembershipTemplateCollection membershipTemplates; // Builds new memberships for the member. // * Pull old memberships associated with the member. // * Build the next membership based of the template. // * Add membership. Clear(); this.member = member; this.typeTemplate = typeTemplate; this.memberships = new DojoMembershipCollection(); if (typeTemplate != null) { membershipTemplates = builder.getMembershipTemplates(member, typeTemplate); if (membershipTemplates != null) { foreach (DojoMembershipTemplate template in membershipTemplates) { addTemplate(member, template, builder); } } // WALK TEMPLATE TREE AND SUB MEMBERS LOCK STEP AND ADD EACH // SUBMEMBER'S MEMBERSHIPS TO THE CURRENT PACKAGE. builder.pullData(member); if (member.subMembers != null) { if (typeTemplate.subTemplates != null) { for (int i = 0; i < typeTemplate.subTemplates.Count; i++) { // This is for safety although the builder should only return // members that have submembers that equal the type template's sub templates if (i < member.subMembers.Count) { membershipTemplates = builder.getMembershipTemplates(member.subMembers[i], typeTemplate.subTemplates[i]); foreach (DojoMembershipTemplate template in membershipTemplates) { addTemplate(member.subMembers[i], template, builder); } } } } } } }
protected void btOk_Click(object sender, EventArgs e) { DojoMemberTypeTemplate dojoMemberTypeTemplate = new DojoMemberTypeTemplate(dojoMemberTypeTemplateID); dojoMemberTypeTemplate.Delete(); dojoMemberTypeTemplateID = 0; OnDeleted(EventArgs.Empty); }
protected override void OnPreRender(EventArgs e) { if (dojoMemberTypeTemplateID != 0) { dojoMemberTypeTemplate = new DojoMemberTypeTemplate(dojoMemberTypeTemplateID); text = "Delete - " + dojoMemberTypeTemplate.ToString(); } else { text = "Delete "; } }
private static void buildTypeHash( DojoMemberTypeTemplate rootTemplate, DojoMemberTypeTemplate template, int iteration) { // This code works correctly 7FEB08, Roy Hodges // DO NOT MODIFY! // If the root is not the template, this means that // we came into this method as an iteration, therefore // this template's root is higher, so we set the // template's root to the root. if (rootTemplate != template) { template.treeRoot = rootTemplate; } if (template.memberType == null) { rootTemplate.treeHash += treeIterationMarkers[iteration] + "?"; } else { rootTemplate.treeHash += treeIterationMarkers[iteration] + template.memberType.iD.ToString(); } if (template.subTemplates != null && template.subTemplates.Count > 0 && iteration < maxTreeIterations) { foreach (DojoMemberTypeTemplate subTemplate in template.subTemplates) { buildTypeHash(rootTemplate, subTemplate, iteration + 1); } } }
public static DojoMemberTypeTemplate MemberTypeTemplate( string name, string description, DojoMemberTypeTemplate parent, DojoMemberType memberType, bool allowPurchase, bool allowGuestPurchase, bool allowRenewal, bool allowAutoRenewal, int ageYearsMin, int ageYearsMax, int memberForMin, int memberForMax, DojoRank rankMin, DojoRank rankMax, DojoMembershipTemplate template1, DojoMembershipTemplate template2, DojoMembershipTemplate template3, DojoMembershipTemplate template4, DojoMembershipTemplate template5) { DojoMemberTypeTemplate template = new DojoMemberTypeTemplate(); template.Name = name; template.Description = description; template.Parent = parent; template.MemberType = memberType; template.AllowPurchase = allowPurchase; template.AllowGuestPurchase = allowGuestPurchase; template.AllowRenewal = allowRenewal; template.AllowAutoRenewal = allowAutoRenewal; template.AgeYearsMin = ageYearsMin; template.AgeYearsMax = ageYearsMax; template.MemberForMin = memberForMin; template.MemberForMax = memberForMax; template.RankMin = rankMin; template.RankMax = rankMax; template.MembershipTemplate1 = template1; template.MembershipTemplate2 = template2; template.MembershipTemplate3 = template3; template.MembershipTemplate4 = template4; template.MembershipTemplate5 = template5; return(template); }
private void addTemplate(ComponentArt.Web.UI.TreeViewNode parentNode, DojoMemberTypeTemplate template) { // Safe to use internals due to TreeMaker requirements! ComponentArt.Web.UI.TreeViewNode node; node = new ComponentArt.Web.UI.TreeViewNode(); node.Text = template.name; node.Value = template.iD.ToString(); node.ToolTip = template.description; parentNode.Nodes.Add(node); if (template.subTemplates != null) { foreach (DojoMemberTypeTemplate subTemplate in template.subTemplates) { addTemplate(node, subTemplate); } } }
getMembershipTemplates(DojoMember member, DojoMemberTypeTemplate template) { DojoMembershipTemplateCollection templates = new DojoMembershipTemplateCollection(); if (member != null && template != null) { if (filterCheck(member, template.MembershipTemplate1)) { templates.Add(template.MembershipTemplate1); } if (filterCheck(member, template.MembershipTemplate2)) { templates.Add(template.MembershipTemplate2); } if (filterCheck(member, template.MembershipTemplate3)) { templates.Add(template.MembershipTemplate3); } if (filterCheck(member, template.MembershipTemplate4)) { templates.Add(template.MembershipTemplate4); } if (filterCheck(member, template.MembershipTemplate5)) { templates.Add(template.MembershipTemplate5); } } return(templates); }
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(); } }
/// <summary> /// Tests a Member Type Template against a member. /// </summary> /// <param name="member"></param> /// <param name="template"></param> /// <returns></returns> private bool filterCheck(DojoMember member, DojoMemberTypeTemplate template) { if (template == null) { return(false); } if (member == null) { return(false); } // Only root templates are available! if (template.Parent != null) { return(false); } if (template.AgeYearsMin != -1 && member.PrivateContact.BirthDate. AddYears(template.AgeYearsMin) > buildTime) { return(false); } if (template.AgeYearsMax != 0 && member.PrivateContact.BirthDate. AddYears(template.AgeYearsMax) < buildTime) { return(false); } if (template.MemberForMin != 0 && buildTime.Subtract(member.MemberSince).Days < template.MemberForMin) { return(false); } if (template.MemberForMax != 0 && buildTime.Subtract(member.MemberSince).Days > template.MemberForMax) { return(false); } if (template.RankMin != null && member.Rank != null && member.Rank.OrderNum < template.RankMin.OrderNum) { return(false); } if (template.RankMax != null && member.Rank != null && member.Rank.OrderNum > template.RankMax.OrderNum) { return(false); } return(true); }
protected override void OnPreRender(EventArgs e) { if (dojoMemberTypeTemplateID != 0) { dojoMemberTypeTemplate = new DojoMemberTypeTemplate(dojoMemberTypeTemplateID); #region Bind _system Folder // // Set Field Entries // ltCreateDate.Text = dojoMemberTypeTemplate.CreateDate.ToString(); ltModifyDate.Text = dojoMemberTypeTemplate.ModifyDate.ToString(); // // Set Children Selections // #endregion #region Bind General Folder // // Set Field Entries // ltName.Text = dojoMemberTypeTemplate.Name.ToString(); ltDescription.Text = dojoMemberTypeTemplate.Description.ToString(); ltOrderNum.Text = dojoMemberTypeTemplate.OrderNum.ToString(); ltMemberTypeTreeHash.Text = dojoMemberTypeTemplate.MemberTypeTreeHash.ToString(); // // Set Children Selections // // Parent if (dojoMemberTypeTemplate.Parent != null) { ltParent.Text = dojoMemberTypeTemplate.Parent.ToString(); } else { ltParent.Text = string.Empty; } // MemberType if (dojoMemberTypeTemplate.MemberType != null) { ltMemberType.Text = dojoMemberTypeTemplate.MemberType.ToString(); } else { ltMemberType.Text = string.Empty; } #endregion #region Bind Initialization Folder // // Set Field Entries // ltInitialEmailFrom.Text = dojoMemberTypeTemplate.InitialEmailFrom.ToString(); ltInitialEmailBody.Text = dojoMemberTypeTemplate.InitialEmailBody.ToString(); // // Set Children Selections // // InitialRank if (dojoMemberTypeTemplate.InitialRank != null) { ltInitialRank.Text = dojoMemberTypeTemplate.InitialRank.ToString(); } else { ltInitialRank.Text = string.Empty; } // InitialRole if (dojoMemberTypeTemplate.InitialRole != null) { ltInitialRole.Text = dojoMemberTypeTemplate.InitialRole.ToString(); } else { ltInitialRole.Text = string.Empty; } #endregion #region Bind Access Features Folder // // Set Field Entries // ltAllowGuestPurchase.Text = dojoMemberTypeTemplate.AllowGuestPurchase.ToString(); ltAllowPurchase.Text = dojoMemberTypeTemplate.AllowPurchase.ToString(); ltAllowRenewal.Text = dojoMemberTypeTemplate.AllowRenewal.ToString(); ltAllowAutoRenewal.Text = dojoMemberTypeTemplate.AllowAutoRenewal.ToString(); // // Set Children Selections // #endregion #region Bind Requirements Folder // // Set Field Entries // ltAgeYearsMax.Text = dojoMemberTypeTemplate.AgeYearsMax.ToString(); ltAgeYearsMin.Text = dojoMemberTypeTemplate.AgeYearsMin.ToString(); ltMemberForMin.Text = dojoMemberTypeTemplate.MemberForMin.ToString(); ltMemberForMax.Text = dojoMemberTypeTemplate.MemberForMax.ToString(); // // Set Children Selections // // RankMin if (dojoMemberTypeTemplate.RankMin != null) { ltRankMin.Text = dojoMemberTypeTemplate.RankMin.ToString(); } else { ltRankMin.Text = string.Empty; } // RankMax if (dojoMemberTypeTemplate.RankMax != null) { ltRankMax.Text = dojoMemberTypeTemplate.RankMax.ToString(); } else { ltRankMax.Text = string.Empty; } #endregion #region Bind Membership Templates Folder // // Set Field Entries // // // Set Children Selections // // MembershipTemplate1 if (dojoMemberTypeTemplate.MembershipTemplate1 != null) { ltMembershipTemplate1.Text = dojoMemberTypeTemplate.MembershipTemplate1.ToString(); } else { ltMembershipTemplate1.Text = string.Empty; } // MembershipTemplate2 if (dojoMemberTypeTemplate.MembershipTemplate2 != null) { ltMembershipTemplate2.Text = dojoMemberTypeTemplate.MembershipTemplate2.ToString(); } else { ltMembershipTemplate2.Text = string.Empty; } // MembershipTemplate3 if (dojoMemberTypeTemplate.MembershipTemplate3 != null) { ltMembershipTemplate3.Text = dojoMemberTypeTemplate.MembershipTemplate3.ToString(); } else { ltMembershipTemplate3.Text = string.Empty; } // MembershipTemplate4 if (dojoMemberTypeTemplate.MembershipTemplate4 != null) { ltMembershipTemplate4.Text = dojoMemberTypeTemplate.MembershipTemplate4.ToString(); } else { ltMembershipTemplate4.Text = string.Empty; } // MembershipTemplate5 if (dojoMemberTypeTemplate.MembershipTemplate5 != null) { ltMembershipTemplate5.Text = dojoMemberTypeTemplate.MembershipTemplate5.ToString(); } else { ltMembershipTemplate5.Text = string.Empty; } #endregion text = "View - " + dojoMemberTypeTemplate.ToString(); } }
protected void ok_Click(object sender, EventArgs e) { if (dojoMembershipID == 0) { obj = new DojoMembership(); } else { obj = new DojoMembership(dojoMembershipID); } if (comboMember.SelectedItem != null) { obj.Member = DojoMember.NewPlaceHolder(int.Parse(comboMember.SelectedValue)); } else { obj.Member = null; } obj.StartDate = deStartDate.Date; obj.EndDate = deEndDate.Date; if (comboOrganization.SelectedItem != null) { obj.Organization = DojoOrganization.NewPlaceHolder(int.Parse(comboOrganization.SelectedValue)); } else { obj.Organization = null; } obj.OrganizationMemberID = tbOrganizationMemberID.Text; if (ddParent.SelectedItem != null && ddParent.SelectedValue != "null") { obj.Parent = DojoMembership.NewPlaceHolder(int.Parse(ddParent.SelectedValue)); } else { obj.Parent = null; } if (comboMemberTypeTemplate.SelectedItem != null) { obj.MemberTypeTemplate = DojoMemberTypeTemplate.NewPlaceHolder(int.Parse(comboMemberTypeTemplate.SelectedValue)); } else { obj.MemberTypeTemplate = null; } if (comboMembershipTemplate.SelectedItem != null) { obj.MembershipTemplate = DojoMembershipTemplate.NewPlaceHolder(int.Parse(comboMembershipTemplate.SelectedValue)); } else { obj.MembershipTemplate = null; } obj.Fee = decimal.Parse(tbFee.Text); obj.PaymentAmount = decimal.Parse(tbPaymentAmount.Text); obj.IsProRated = cbIsProRated.Checked; if (ddInvoiceLine.SelectedItem != null && ddInvoiceLine.SelectedValue != "null") { obj.InvoiceLine = RHInvoiceLine.NewPlaceHolder(int.Parse(ddInvoiceLine.SelectedValue)); } else { obj.InvoiceLine = null; } if (editOnAdd) { dojoMembershipID = obj.Save(); } else { obj.Save(); } if (resetOnAdd) { DojoMembership newObj = new DojoMembership(); if (newObj.Member != null) { comboMember.Text = newObj.Member.ToString(); foreach (ComponentArt.Web.UI.ComboBoxItem item in comboMember.Items) { if (item.Value == newObj.Member.ID.ToString()) { comboMember.SelectedItem = item; break; } } } else { // Necissary to clear prior ViewState - if only we don't need it. comboMember.Text = string.Empty; comboMember.SelectedItem = null; } deStartDate.Date = newObj.StartDate; deEndDate.Date = newObj.EndDate; if (newObj.Organization != null) { comboOrganization.Text = newObj.Organization.ToString(); foreach (ComponentArt.Web.UI.ComboBoxItem item in comboOrganization.Items) { if (item.Value == newObj.Organization.ID.ToString()) { comboOrganization.SelectedItem = item; break; } } } else { // Necissary to clear prior ViewState - if only we don't need it. comboOrganization.Text = string.Empty; comboOrganization.SelectedItem = null; } tbOrganizationMemberID.Text = newObj.OrganizationMemberID; if (newObj.Parent != null) { foreach (ListItem item in ddParent.Items) { item.Selected = newObj.Parent.ID.ToString() == item.Value; } } else if (ddParent.Items.Count > 0) { ddParent.SelectedIndex = 0; } if (newObj.MemberTypeTemplate != null) { comboMemberTypeTemplate.Text = newObj.MemberTypeTemplate.ToString(); foreach (ComponentArt.Web.UI.ComboBoxItem item in comboMemberTypeTemplate.Items) { if (item.Value == newObj.MemberTypeTemplate.ID.ToString()) { comboMemberTypeTemplate.SelectedItem = item; break; } } } else { // Necissary to clear prior ViewState - if only we don't need it. comboMemberTypeTemplate.Text = string.Empty; comboMemberTypeTemplate.SelectedItem = null; } if (newObj.MembershipTemplate != null) { comboMembershipTemplate.Text = newObj.MembershipTemplate.ToString(); foreach (ComponentArt.Web.UI.ComboBoxItem item in comboMembershipTemplate.Items) { if (item.Value == newObj.MembershipTemplate.ID.ToString()) { comboMembershipTemplate.SelectedItem = item; break; } } } else { // Necissary to clear prior ViewState - if only we don't need it. comboMembershipTemplate.Text = string.Empty; comboMembershipTemplate.SelectedItem = null; } ltSessionID.Text = newObj.SessionID.ToString(); tbFee.Text = newObj.Fee.ToString(); ltPriorMembership.Text = newObj.PriorMembership != null? newObj.PriorMembership.ToString() : Localization.Strings.StartupMembership; tbPaymentAmount.Text = newObj.PaymentAmount.ToString(); cbIsProRated.Checked = newObj.IsProRated; if (newObj.InvoiceLine != null) { foreach (ListItem item in ddInvoiceLine.Items) { item.Selected = newObj.InvoiceLine.ID.ToString() == item.Value; } } else if (ddInvoiceLine.Items.Count > 0) { ddInvoiceLine.SelectedIndex = 0; } } OnUpdated(EventArgs.Empty); }