示例#1
0
        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
        }
示例#2
0
        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);
        }
示例#3
0
        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
        }
示例#4
0
        /// <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();
                }
            }
        }