private void bindDropDownLists() { #region Bind General Child Data #endregion #region Bind Contact Child Data msContact.Items.Add(new ListItem("Null", "Null")); GreyFoxContactManager contactManager = new GreyFoxContactManager("kitTessen_SeminarRegistrations_Contacts"); GreyFoxContactCollection contactCollection = contactManager.GetCollection(string.Empty, string.Empty); foreach (GreyFoxContact contact in contactCollection) { ListItem i = new ListItem(contact.ToString(), contact.ID.ToString()); msContact.Items.Add(i); } #endregion #region Bind Rappahanock Child Data msCustomer.Items.Add(new ListItem("Null", "Null")); RHCustomerManager customerManager = new RHCustomerManager(); RHCustomerCollection customerCollection = customerManager.GetCollection(string.Empty, string.Empty, null); foreach (RHCustomer customer in customerCollection) { ListItem i = new ListItem(customer.ToString(), customer.ID.ToString()); msCustomer.Items.Add(i); } msInvoiceLine.Items.Add(new ListItem("Null", "Null")); RHInvoiceLineManager invoiceLineManager = new RHInvoiceLineManager(); RHInvoiceLineCollection invoiceLineCollection = invoiceLineManager.GetCollection(string.Empty, string.Empty, null); foreach (RHInvoiceLine invoiceLine in invoiceLineCollection) { ListItem i = new ListItem(invoiceLine.ToString(), invoiceLine.ID.ToString()); msInvoiceLine.Items.Add(i); } msSalesOrderLine.Items.Add(new ListItem("Null", "Null")); RHSalesOrderLineManager salesOrderLineManager = new RHSalesOrderLineManager(); RHSalesOrderLineCollection salesOrderLineCollection = salesOrderLineManager.GetCollection(string.Empty, string.Empty, null); foreach (RHSalesOrderLine salesOrderLine in salesOrderLineCollection) { ListItem i = new ListItem(salesOrderLine.ToString(), salesOrderLine.ID.ToString()); msSalesOrderLine.Items.Add(i); } #endregion }
public DojoSeminarRegistrationOptionCollection GetCollection(int topCount, string whereClause, string sortClause, params DojoSeminarRegistrationOptionFlags[] optionFlags) { StringBuilder query; Database database; DbCommand dbCommand; IDataReader r; DojoSeminarRegistrationOptionCollection dojoSeminarRegistrationOptionCollection; int hashcode; // Cache Handling hashcode = 0; if (cacheEnabled) { hashcode = topCount.GetHashCode() + whereClause.GetHashCode() + sortClause.GetHashCode() + tableName.GetHashCode(); DojoSeminarRegistrationOptionCollection collection = cacheFindCollection(hashcode); if (collection != null) { return(collection); } } int innerJoinOffset; query = new StringBuilder("SELECT "); if (topCount > 0) { query.Append("TOP "); query.Append(topCount); query.Append(" "); } foreach (string columnName in InnerJoinFields) { query.Append("DojoSeminarRegistrationOption."); query.Append(columnName); query.Append(","); } innerJoinOffset = InnerJoinFields.GetUpperBound(0) + 1; int parentOptionOffset = -1; int parentOptionItemOffset = -1; int parentRegistrationOffset = -1; int parentRegistrationParentSeminarOffset = -1; int parentRegistrationContactOffset = -1; int parentRegistrationInvoiceLineOffset = -1; int parentRegistrationSalesOrderLineOffset = -1; int parentRegistrationCustomerOffset = -1; // // Append Option Flag Fields // if (optionFlags != null) { for (int x = 0; x < optionFlags.Length; x++) { switch (optionFlags[x]) { case DojoSeminarRegistrationOptionFlags.ParentOption: for (int i = 0; i <= DojoSeminarOptionManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentOption."); query.Append(DojoSeminarOptionManager.InnerJoinFields[i]); query.Append(","); } parentOptionOffset = innerJoinOffset; innerJoinOffset = parentOptionOffset + DojoSeminarOptionManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentOptionItem: for (int i = 0; i <= RHItemManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentOption_Item."); query.Append(RHItemManager.InnerJoinFields[i]); query.Append(","); } parentOptionItemOffset = innerJoinOffset; innerJoinOffset = parentOptionItemOffset + RHItemManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentRegistration: for (int i = 0; i <= DojoSeminarRegistrationManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentRegistration."); query.Append(DojoSeminarRegistrationManager.InnerJoinFields[i]); query.Append(","); } parentRegistrationOffset = innerJoinOffset; innerJoinOffset = parentRegistrationOffset + DojoSeminarRegistrationManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationParentSeminar: for (int i = 0; i <= DojoSeminarManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentRegistration_ParentSeminar."); query.Append(DojoSeminarManager.InnerJoinFields[i]); query.Append(","); } parentRegistrationParentSeminarOffset = innerJoinOffset; innerJoinOffset = parentRegistrationParentSeminarOffset + DojoSeminarManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationContact: for (int i = 0; i <= GreyFoxContactManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentRegistration_Contact."); query.Append(GreyFoxContactManager.InnerJoinFields[i]); query.Append(","); } parentRegistrationContactOffset = innerJoinOffset; innerJoinOffset = parentRegistrationContactOffset + GreyFoxContactManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationInvoiceLine: for (int i = 0; i <= RHInvoiceLineManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentRegistration_InvoiceLine."); query.Append(RHInvoiceLineManager.InnerJoinFields[i]); query.Append(","); } parentRegistrationInvoiceLineOffset = innerJoinOffset; innerJoinOffset = parentRegistrationInvoiceLineOffset + RHInvoiceLineManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationSalesOrderLine: for (int i = 0; i <= RHSalesOrderLineManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentRegistration_SalesOrderLine."); query.Append(RHSalesOrderLineManager.InnerJoinFields[i]); query.Append(","); } parentRegistrationSalesOrderLineOffset = innerJoinOffset; innerJoinOffset = parentRegistrationSalesOrderLineOffset + RHSalesOrderLineManager.InnerJoinFields.GetUpperBound(0) + 1; break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationCustomer: for (int i = 0; i <= RHCustomerManager.InnerJoinFields.GetUpperBound(0); i++) { query.Append("ParentRegistration_Customer."); query.Append(RHCustomerManager.InnerJoinFields[i]); query.Append(","); } parentRegistrationCustomerOffset = innerJoinOffset; innerJoinOffset = parentRegistrationCustomerOffset + RHCustomerManager.InnerJoinFields.GetUpperBound(0) + 1; break; } } } // // Remove trailing comma // query.Length--; if (optionFlags != null) { query.Append(" FROM "); // // Start INNER JOIN expressions // for (int x = 0; x < optionFlags.Length; x++) { query.Append("("); } query.Append("kitTessen_SeminarRegistrationOptions AS DojoSeminarRegistrationOption"); } else { query.Append(" FROM kitTessen_SeminarRegistrationOptions AS DojoSeminarRegistrationOption"); } // // Finish INNER JOIN expressions // if (optionFlags != null) { for (int x = 0; x < optionFlags.Length; x++) { switch (optionFlags[x]) { case DojoSeminarRegistrationOptionFlags.ParentOption: query.Append(" LEFT JOIN kitTessen_SeminarOptions AS ParentOption ON DojoSeminarRegistrationOption.ParentOptionID = ParentOption.DojoSeminarOptionID)"); break; case DojoSeminarRegistrationOptionFlags.ParentOptionItem: query.Append(" LEFT JOIN RH_Items AS ParentOption_Item ON ParentOption.ItemID = ParentOption_Item.RHItemID)"); break; case DojoSeminarRegistrationOptionFlags.ParentRegistration: query.Append(" LEFT JOIN kitTessen_SeminarRegistrations AS ParentRegistration ON DojoSeminarRegistrationOption.ParentRegistrationID = ParentRegistration.DojoSeminarRegistrationID)"); break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationParentSeminar: query.Append(" LEFT JOIN kitTessen_Seminars AS ParentRegistration_ParentSeminar ON ParentRegistration.ParentSeminarID = ParentRegistration_ParentSeminar.DojoSeminarID)"); break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationContact: query.Append(" LEFT JOIN kitTessen_SeminarRegistrations_Contacts AS ParentRegistration_Contact ON ParentRegistration.ContactID = ParentRegistration_Contact.GreyFoxContactID)"); break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationInvoiceLine: query.Append(" LEFT JOIN RH_InvoiceLines AS ParentRegistration_InvoiceLine ON ParentRegistration.InvoiceLineID = ParentRegistration_InvoiceLine.RHInvoiceLineID)"); break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationSalesOrderLine: query.Append(" LEFT JOIN RH_SalesOrderLines AS ParentRegistration_SalesOrderLine ON ParentRegistration.SalesOrderLineID = ParentRegistration_SalesOrderLine.RHSalesOrderLineID)"); break; case DojoSeminarRegistrationOptionFlags.ParentRegistrationCustomer: query.Append(" LEFT JOIN RH_Customers AS ParentRegistration_Customer ON ParentRegistration.CustomerID = ParentRegistration_Customer.RHCustomerID)"); break; } } } // // Render where clause // if (whereClause != string.Empty) { query.Append(" WHERE "); query.Append(whereClause); } // // Render sort clause // if (sortClause != string.Empty) { query.Append(" ORDER BY "); query.Append(sortClause); } // // Render final semicolon // query.Append(";"); database = DatabaseFactory.CreateDatabase(); dbCommand = database.GetSqlStringCommand(query.ToString()); #if DEBUG try { r = database.ExecuteReader(dbCommand); } catch (Exception e) { string msg = e.Message; throw(new Exception(msg + " --- Query: " + query.ToString())); } #else r = database.ExecuteReader(dbCommand); #endif dojoSeminarRegistrationOptionCollection = new DojoSeminarRegistrationOptionCollection(); while (r.Read()) { DojoSeminarRegistrationOption dojoSeminarRegistrationOption = ParseFromReader(r, 0, 1); // Fill ParentOption if (parentOptionOffset != -1 && !r.IsDBNull(parentOptionOffset)) { DojoSeminarOptionManager.FillFromReader(dojoSeminarRegistrationOption.parentOption, r, parentOptionOffset, parentOptionOffset + 1); // Fill if (parentOptionItemOffset != -1 && !r.IsDBNull(parentOptionItemOffset)) { RHItemManager.FillFromReader(dojoSeminarRegistrationOption.parentOption.Item, r, parentOptionItemOffset, parentOptionItemOffset + 1); } } // Fill ParentRegistration if (parentRegistrationOffset != -1 && !r.IsDBNull(parentRegistrationOffset)) { DojoSeminarRegistrationManager.FillFromReader(dojoSeminarRegistrationOption.parentRegistration, r, parentRegistrationOffset, parentRegistrationOffset + 1); // Fill if (parentRegistrationParentSeminarOffset != -1 && !r.IsDBNull(parentRegistrationParentSeminarOffset)) { DojoSeminarManager.FillFromReader(dojoSeminarRegistrationOption.parentRegistration.ParentSeminar, r, parentRegistrationParentSeminarOffset, parentRegistrationParentSeminarOffset + 1); } // Fill if (parentRegistrationContactOffset != -1 && !r.IsDBNull(parentRegistrationContactOffset)) { GreyFoxContactManager.FillFromReader(dojoSeminarRegistrationOption.parentRegistration.Contact, "kitTessen_SeminarRegistrations_Contacts", r, parentRegistrationContactOffset, parentRegistrationContactOffset + 1); } // Fill Invoice Line if (parentRegistrationInvoiceLineOffset != -1 && !r.IsDBNull(parentRegistrationInvoiceLineOffset)) { RHInvoiceLineManager.FillFromReader(dojoSeminarRegistrationOption.parentRegistration.InvoiceLine, r, parentRegistrationInvoiceLineOffset, parentRegistrationInvoiceLineOffset + 1); } // Fill Sales Order Line if (parentRegistrationSalesOrderLineOffset != -1 && !r.IsDBNull(parentRegistrationSalesOrderLineOffset)) { RHSalesOrderLineManager.FillFromReader(dojoSeminarRegistrationOption.parentRegistration.SalesOrderLine, r, parentRegistrationSalesOrderLineOffset, parentRegistrationSalesOrderLineOffset + 1); } // Fill Registrant if (parentRegistrationCustomerOffset != -1 && !r.IsDBNull(parentRegistrationCustomerOffset)) { RHCustomerManager.FillFromReader(dojoSeminarRegistrationOption.parentRegistration.Customer, r, parentRegistrationCustomerOffset, parentRegistrationCustomerOffset + 1); } } dojoSeminarRegistrationOptionCollection.Add(dojoSeminarRegistrationOption); } // Microsoft DAAB still needs to close readers. r.Close(); if (cacheEnabled) { cacheStoreCollection(hashcode, dojoSeminarRegistrationOptionCollection); } return(dojoSeminarRegistrationOptionCollection); }
private void bindDropDownLists() { #region Bind General Child Data msMemberType.Items.Add(new ListItem("Null", "Null")); DojoMemberTypeManager memberTypeManager = new DojoMemberTypeManager(); DojoMemberTypeCollection memberTypeCollection = memberTypeManager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMemberType memberType in memberTypeCollection) { ListItem i = new ListItem(memberType.ToString(), memberType.ID.ToString()); msMemberType.Items.Add(i); } msPublicContact.Items.Add(new ListItem("Null", "Null")); GreyFoxContactManager publicContactManager = new GreyFoxContactManager("kitTessen_Members_PublicContacts"); GreyFoxContactCollection publicContactCollection = publicContactManager.GetCollection(string.Empty, string.Empty); foreach (GreyFoxContact publicContact in publicContactCollection) { ListItem i = new ListItem(publicContact.ToString(), publicContact.ID.ToString()); msPublicContact.Items.Add(i); } msParentMember.Items.Add(new ListItem("Null", "Null")); DojoMemberManager parentMemberManager = new DojoMemberManager(); DojoMemberCollection parentMemberCollection = parentMemberManager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMember parentMember in parentMemberCollection) { ListItem i = new ListItem(parentMember.ToString(), parentMember.ID.ToString()); msParentMember.Items.Add(i); } #endregion #region Bind Membership Child Data msPrimaryOrgMembership.Items.Add(new ListItem("Null", "Null")); DojoMembershipManager primaryOrgMembershipManager = new DojoMembershipManager(); DojoMembershipCollection primaryOrgMembershipCollection = primaryOrgMembershipManager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMembership primaryOrgMembership in primaryOrgMembershipCollection) { ListItem i = new ListItem(primaryOrgMembership.ToString(), primaryOrgMembership.ID.ToString()); msPrimaryOrgMembership.Items.Add(i); } msParentOrgMembership.Items.Add(new ListItem("Null", "Null")); DojoMembershipManager parentOrgMembershipManager = new DojoMembershipManager(); DojoMembershipCollection parentOrgMembershipCollection = parentOrgMembershipManager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMembership parentOrgMembership in parentOrgMembershipCollection) { ListItem i = new ListItem(parentOrgMembership.ToString(), parentOrgMembership.ID.ToString()); msParentOrgMembership.Items.Add(i); } #endregion #region Bind Attendance Child Data msInstructor1.Items.Add(new ListItem("Null", "Null")); DojoMemberManager instructor1Manager = new DojoMemberManager(); DojoMemberCollection instructor1Collection = instructor1Manager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMember instructor1 in instructor1Collection) { ListItem i = new ListItem(instructor1.ToString(), instructor1.ID.ToString()); msInstructor1.Items.Add(i); } msInstructor2.Items.Add(new ListItem("Null", "Null")); DojoMemberManager instructor2Manager = new DojoMemberManager(); DojoMemberCollection instructor2Collection = instructor2Manager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMember instructor2 in instructor2Collection) { ListItem i = new ListItem(instructor2.ToString(), instructor2.ID.ToString()); msInstructor2.Items.Add(i); } msInstructor3.Items.Add(new ListItem("Null", "Null")); DojoMemberManager instructor3Manager = new DojoMemberManager(); DojoMemberCollection instructor3Collection = instructor3Manager.GetCollection(string.Empty, string.Empty, null); foreach (DojoMember instructor3 in instructor3Collection) { ListItem i = new ListItem(instructor3.ToString(), instructor3.ID.ToString()); msInstructor3.Items.Add(i); } #endregion #region Bind Activity Child Data msPromotionFlags.Items.Add(new ListItem("Null", "Null")); DojoPromotionFlagManager promotionFlagsManager = new DojoPromotionFlagManager(); DojoPromotionFlagCollection promotionFlagsCollection = promotionFlagsManager.GetCollection(string.Empty, string.Empty); foreach (DojoPromotionFlag promotionFlags in promotionFlagsCollection) { ListItem i = new ListItem(promotionFlags.ToString(), promotionFlags.ID.ToString()); msPromotionFlags.Items.Add(i); } msRank.Items.Add(new ListItem("Null", "Null")); DojoRankManager rankManager = new DojoRankManager(); DojoRankCollection rankCollection = rankManager.GetCollection(string.Empty, string.Empty, null); foreach (DojoRank rank in rankCollection) { ListItem i = new ListItem(rank.ToString(), rank.ID.ToString()); msRank.Items.Add(i); } #endregion #region Bind Security Child Data #endregion #region Bind Rappahanock Child Data msCustomer.Items.Add(new ListItem("Null", "Null")); RHCustomerManager customerManager = new RHCustomerManager(); RHCustomerCollection customerCollection = customerManager.GetCollection(string.Empty, string.Empty, null); foreach (RHCustomer customer in customerCollection) { ListItem i = new ListItem(customer.ToString(), customer.ID.ToString()); msCustomer.Items.Add(i); } #endregion }
/// <summary> /// Syncs the Members List to the Customer List. If a Member does not /// have an associated Customer, the Customer List is checked for an /// existing customer with the same name. If a matching customer is not /// found, a new customer is created. /// </summary> /// <param name="forceSync"></param> public void SyncCustomers() { DojoMemberCollection members; RHCustomerCollection customers; bool addCustomer; bool skipChildren; members = new DojoMemberManager().GetCollection(string.Empty, string.Empty, DojoMemberFlags.PrivateContact); customers = new RHCustomerManager().GetCollection(string.Empty, string.Empty, RHCustomerFlags.PrivateContact, RHCustomerFlags.BillingContact, RHCustomerFlags.ShippingContact); skipChildren = customerExportMode == RHCustomerExportMode.ExportParentsOnly; foreach (DojoMember member in members) { if (skipChildren && member.Parent != null) { continue; } // Reset addcustomer flag to keep track of customers // that need to be added. addCustomer = true; foreach (RHCustomer customer in customers) { if (member.Customer == null) { if (member.PrivateContact.FirstName == customer.PrivateContact.FirstName & member.PrivateContact.LastName == customer.PrivateContact.LastName & member.PrivateContact.MiddleName == customer.PrivateContact.MiddleName) { member.Customer = customer; } } if (member.Customer.ID == customer.ID) { SyncItem(member, customer); addCustomer = false; break; } } if (addCustomer) { RHCustomer newCustomer = new RHCustomer(); newCustomer.PrivateContact = new GreyFoxContact(RHCustomerManager.PrivateContactTable); newCustomer.BillingContact = new GreyFoxContact(RHCustomerManager.BillingContactTable); newCustomer.ShippingContact = new GreyFoxContact(RHCustomerManager.ShippingContactTable); member.PrivateContact.CopyValuesTo(newCustomer.PrivateContact, false); member.PrivateContact.CopyValuesTo(newCustomer.BillingContact, false); member.PrivateContact.CopyValuesTo(newCustomer.ShippingContact, false); newCustomer.PrivateContact.Save(); newCustomer.BillingContact.Save(); newCustomer.ShippingContact.Save(); newCustomer.Save(); } } }