Ejemplo n.º 1
0
        public void Sort(PhoneBookSortTypes[] order)
        {
            if (order != null)
            {
                string OrderBy       = "ORDER BY ";
                bool   useEntryTypes = false;
                foreach (PhoneBookSortTypes pbst in order)
                {
                    switch (pbst)
                    {
                    case PhoneBookSortTypes.FirstName:
                        OrderBy += "pb.Entries.FirstName, ";
                        break;

                    case PhoneBookSortTypes.LastName:
                        OrderBy += "pb.Entries.LastName, ";
                        break;

                    case PhoneBookSortTypes.EntryType:
                        useEntryTypes = true;
                        OrderBy      += "(";
                        foreach (PhoneBookEntryType pbet in Enum.GetValues(typeof(PhoneBookEntryType)))
                        {
                            OrderBy += "CASE WHEN pb.Entries.Type = @" + pbet.ToString() + " THEN " + ((int)pbet).ToString() + " ";
                        }
                        OrderBy += "END), ";
                        break;
                    }
                }
                OrderBy = OrderBy.Substring(0, OrderBy.Length - 2) + " ASC";
                ClassQuery cq = new ClassQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Phones.PhoneBooks",
                                               "SELECT pb.Entries.ID FROM PhoneBook pb WHERE pb.Name = @Name " + OrderBy);
                List <IDbDataParameter> pars = new List <IDbDataParameter>();
                pars.Add(cq.CreateParameter("@Name", Name));
                if (useEntryTypes)
                {
                    foreach (PhoneBookEntryType pbet in Enum.GetValues(typeof(PhoneBookEntryType)))
                    {
                        pars.Add(cq.CreateParameter("@" + pbet.ToString(), pbet));
                    }
                }
                cq.Execute(pars.ToArray());
                List <PhoneBookEntry> newEntries = new List <PhoneBookEntry>();
                while (cq.Read())
                {
                    newEntries.Add(PhoneBookEntry.Load(cq[0].ToString()));
                }
                cq.Close();
                Entries = newEntries.ToArray();
                this.Update();
            }
        }
Ejemplo n.º 2
0
        public static PhoneBookEntry Load(string id)
        {
            PhoneBookEntry ret  = null;
            Connection     conn = ConnectionPoolManager.GetConnection(typeof(PhoneBookEntry));
            List <Org.Reddragonit.Dbpro.Structure.Table> tmp = conn.Select(typeof(PhoneBookEntry),
                                                                           new SelectParameter[] {
                new EqualParameter("ID", id)
            });

            if (tmp.Count > 0)
            {
                ret = (PhoneBookEntry)tmp[0];
            }
            conn.CloseConnection();
            return(ret);
        }