public static void SetToDefaultRingGroups(int extension, long employeeNum) { //First, figure out what the defaults are for this employee AsteriskRingGroups ringGroups = PhoneEmpDefaults.GetRingGroup(employeeNum); /*if(ringGroup==AsteriskRingGroups.All) { * SetToAllRingGroups(extension,employeeNum); * } * if(ringGroup==AsteriskRingGroups.None) { * RemoveFromRingGroups(extension,employeeNum); * } * if(ringGroup==AsteriskRingGroups.Backup) { * SetToBackupRingGroupOnly(extension,employeeNum); * }*/ SetRingGroups(extension, ringGroups); }
public static void SetRingGroups(int extension,AsteriskRingGroups ringGroups) { DataConnection dcon=new DataConnection(ipAddressAsterisk,"asterisk","opendental","secret",DatabaseType.MySql); string command="SELECT grpnum,grplist FROM ringgroups WHERE grpnum = '601' OR grpnum = '609'"; DataTable table=null; try { table=dcon.GetTable(command); } catch {//if remotely connecting from home return; } string rawExtensions601=""; string rawExtensions609=""; string[] arrayExtensions601=new string[0]; string[] arrayExtensions609=new string[0]; for(int i=0;i<table.Rows.Count;i++) { if(table.Rows[i]["grpnum"].ToString()=="601") {//there should always be exactly one rawExtensions601=table.Rows[i]["grplist"].ToString(); arrayExtensions601=rawExtensions601.Split(new char[] { '-' },StringSplitOptions.RemoveEmptyEntries); } if(table.Rows[i]["grpnum"].ToString()=="609") {//there should always be exactly one rawExtensions609=table.Rows[i]["grplist"].ToString(); arrayExtensions609=rawExtensions609.Split(new char[] { '-' },StringSplitOptions.RemoveEmptyEntries); } } List<string> listExtension601=new List<string>(); bool isIn601=false; for(int i=0;i<arrayExtensions601.Length;i++){ //we won't test to make sure each item is a pure number. listExtension601.Add(arrayExtensions601[i]); if(arrayExtensions601[i]==extension.ToString()) { isIn601=true; } } List<string> listExtension609=new List<string>(); bool isIn609=false; for(int i=0;i<arrayExtensions609.Length;i++) { //we won't test to make sure each item is a pure number. listExtension609.Add(arrayExtensions609[i]); if(arrayExtensions609[i]==extension.ToString()) { isIn609=true; } } if(ringGroups==AsteriskRingGroups.All) { if(!isIn601) { AddToRingGroup("601",extension.ToString(),rawExtensions601); } if(!isIn609) { AddToRingGroup("609",extension.ToString(),rawExtensions609); } } if(ringGroups==AsteriskRingGroups.None) { if(isIn601) { RemoveFromRingGroup("601",extension.ToString(),listExtension601,rawExtensions601); } if(isIn609) { RemoveFromRingGroup("609",extension.ToString(),listExtension609,rawExtensions609); } } if(ringGroups==AsteriskRingGroups.Backup) { if(isIn601) { RemoveFromRingGroup("601",extension.ToString(),listExtension601,rawExtensions601); } if(!isIn609) { AddToRingGroup("609",extension.ToString(),rawExtensions609); } } Signalods.SetInvalid(InvalidType.PhoneAsteriskReload); }
public static void SetRingGroups(int extension, AsteriskRingGroups ringGroups) { DataConnection dcon = new DataConnection("192.168.0.197", "asterisk", "opendental", "secret", DatabaseType.MySql); string command = "SELECT grpnum,grplist FROM ringgroups WHERE grpnum = '601' OR grpnum = '609'"; DataTable table = null; try { table = dcon.GetTable(command); } catch { //if remotely connecting from home return; } string rawExtensions601 = ""; string rawExtensions609 = ""; string[] arrayExtensions601 = new string[0]; string[] arrayExtensions609 = new string[0]; for (int i = 0; i < table.Rows.Count; i++) { if (table.Rows[i]["grpnum"].ToString() == "601") //there should always be exactly one { rawExtensions601 = table.Rows[i]["grplist"].ToString(); arrayExtensions601 = rawExtensions601.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); } if (table.Rows[i]["grpnum"].ToString() == "609") //there should always be exactly one { rawExtensions609 = table.Rows[i]["grplist"].ToString(); arrayExtensions609 = rawExtensions609.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); } } List <string> listExtension601 = new List <string>(); bool isIn601 = false; for (int i = 0; i < arrayExtensions601.Length; i++) { //we won't test to make sure each item is a pure number. listExtension601.Add(arrayExtensions601[i]); if (arrayExtensions601[i] == extension.ToString()) { isIn601 = true; } } List <string> listExtension609 = new List <string>(); bool isIn609 = false; for (int i = 0; i < arrayExtensions609.Length; i++) { //we won't test to make sure each item is a pure number. listExtension609.Add(arrayExtensions609[i]); if (arrayExtensions609[i] == extension.ToString()) { isIn609 = true; } } if (ringGroups == AsteriskRingGroups.All) { if (!isIn601) { AddToRingGroup("601", extension.ToString(), rawExtensions601); } if (!isIn609) { AddToRingGroup("609", extension.ToString(), rawExtensions609); } } if (ringGroups == AsteriskRingGroups.None) { if (isIn601) { RemoveFromRingGroup("601", extension.ToString(), listExtension601, rawExtensions601); } if (isIn609) { RemoveFromRingGroup("609", extension.ToString(), listExtension609, rawExtensions609); } } if (ringGroups == AsteriskRingGroups.Backup) { if (isIn601) { RemoveFromRingGroup("601", extension.ToString(), listExtension601, rawExtensions601); } if (!isIn609) { AddToRingGroup("609", extension.ToString(), rawExtensions609); } } Signalods.SetInvalid(InvalidType.PhoneAsteriskReload); }