public override void LoadInitialConfiguration() { lock(_lock){ Hashtable ht = new Hashtable(); ClassQuery cq = new ClassQuery("Org.Reddragonit.FreeSwitchConfig.Site.BaseComponents", "SELECT pr.RouteContext.Name,pr.Name,pr.DestinationCondition,pr.PinFile.Name FROM PinnedRoute pr ORDER BY pr.RouteContext.Name,pr.Index"); cq.Execute(); Hashtable routes = new Hashtable(); string curContext = ""; ArrayList prs = new ArrayList(); while (cq.Read()) { if (curContext != cq[0].ToString()) { if (prs.Count > 0) routes.Add(curContext, prs); prs = new ArrayList(); curContext = cq[0].ToString(); } Hashtable pr = new Hashtable(); pr.Add(_NAME_FIELD_ID, cq[1].ToString()); pr.Add(_NPA_FIELD_ID, cq[2].ToString()); pr.Add(_PIN_SET_NAME_FIELD_ID, cq[3].ToString()); prs.Add(pr); } if (prs.Count > 0) routes.Add(curContext, prs); cq.Close(); Hashtable pins = new Hashtable(); cq.NewQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Phones", "SELECT ps.Context.Name,ps.Advanced,ps.Name FROM PinSet ps"); cq.Execute(); curContext = ""; Hashtable pinSets = new Hashtable(); while (cq.Read()) { if (curContext!=cq[0].ToString()){ if (pinSets.Count>0) pins.Add(curContext,pinSets); pinSets = new Hashtable(); curContext = cq[0].ToString(); } bool adv = cq.GetBoolean(1); ClassQuery pinq = new ClassQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Phones", "SELECT pn.PinNumber" + (adv ? ",pn.Extension.Number,pn.Extension.Domain.Name" : "") + " Pin pn WHERE pn.OwningSet.Name = @name AND pn.OwningSet.Context.Name = @context"); pinq.Execute(new IDbDataParameter[]{ pinq.CreateParameter("@name",cq[1].ToString()), pinq.CreateParameter("@context",cq[0].ToString()) }); ArrayList pinValues = new ArrayList(); while (pinq.Read()) { if (adv) pinValues.Add(cq[1].ToString()+"@"+cq[2].ToString() + ":" + cq[0].ToString()); else pinValues.Add(cq[0].ToString()); } pinq.Close(); Hashtable pset = new Hashtable(); pset.Add(_PINSET_ADVANCED_FIELD_ID, adv); pset.Add(_PINSET_PINS_FIELD_ID, pinValues); pinSets.Add(cq[2].ToString(), pset); } cq.Close(); if (pinSets.Count>0) pins.Add(curContext,pinSets); ht.Add(_SCONFIG_ROUTES_NAME, routes); ht.Add(_SCONFIG_PINS_NAME, pins); StoredConfiguration = ht; } }
public sDeployedDomain(Domain domain) { _name = domain.Name; _variables = new List<NameValuePair>(); ClassQuery cq = new ClassQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Core", "SELECT dv.Name,dv.Value FROM DomainVariable dv WHERE dv.Domain.Name = @domainName"); IDbDataParameter[] pars = new IDbDataParameter[] { cq.CreateParameter("@domainName", domain.Name) }; cq.Execute(pars); while (cq.Read()) _variables.Add(new NameValuePair(cq[0].ToString(), cq[1].ToString())); cq.Close(); _params = new List<NameValuePair>(); cq.NewQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Core", "SELECT dp.Name,dp.Value FROM DomainParameter dp WHERE dp.Domain.Name = @domainName"); cq.Execute(pars); while (cq.Read()) _params.Add(new NameValuePair(cq[0].ToString(), cq[1].ToString())); cq.Close(); _groups = new List<sDeployedDomainGroup>(); cq.NewQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Phones", "SELECT egrp.Name FROM ExtensionGroup egrp WHERE egrp.Domain.Name = @domainName"); cq.Execute(pars); while (cq.Read()) _groups.Add(new sDeployedDomainGroup(cq[0].ToString(),_name)); cq.Close(); _internalProfile = domain.InternalProfile.Name; _externalProfile = domain.ExternalProfile.Name; }