Exemple #1
0
        /// <summary>
        /// Method to create an extension. Try to find a unique extension within 600 tries, if an extension number is not supplied
        /// </summary>
        /// <param name="pe"></param>
        /// <returns></returns>
        private bool createExtension(string extensionNumber, out PhoneExtension pe)
        {
            pe = null;
            bool created = false;
            int extNum;

            try
            {
                // If extension number was not supplied, find a free extension and use it
                if (extensionNumber == null)
                {
                    Random rn = new Random(Environment.TickCount);
                    for (int numTries = 0; numTries < 600 && created == false; numTries++)
                    {
                        extNum = rn.Next(100, 799);
                        pe = new PhoneExtension("GatewayTestExtension_" + extNum, extNum.ToString());

                        if (!pe.ExistsOn(serverIP))
                        {
                            pe.ToServer(serverIP, Utilities.UpdateType.ADD, Utilities.ErrorHandling.HANDLE);
                            created = true;
                        }
                    }
                }
                else
                {
                    // If extension number was supplied, use that. If that extension already exists, fail and return
                    pe = new PhoneExtension("GatewayTextExtension_" + extensionNumber, extensionNumber);

                    if (pe.ExistsOn(serverIP))
                    {
                        Console.WriteLine("Error: Specified extension \"{0}\" already exists on the server.", extensionNumber);
                    }
                    else
                    {
                        pe.ToServer(serverIP, Utilities.UpdateType.ADD, Utilities.ErrorHandling.HANDLE);
                        created = true;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception in CDSWrapper.createExtension: " + e.Message + "\nStack Trace: " + e.StackTrace);
                created = false;
                pe = null;
            }

            if (created == false)
            {
                pe = null;
            }
            return created;
        }