/// <summary>
 /// Converts a PSDK Place object to its CTI equivalent.
 /// </summary>
 /// <param name="place">The Place object to convert.</param>
 /// <returns>A <see cref="Place"/> object equivalent to the provided PSDK object.</returns>
 public static Place ToPlace(this CfgPlace place)
 => new Place
 {
     Dbid       = place.DBID,
     DnDbids    = place.GetDNDBIDs().ToList() ?? Enumerable.Empty <int>(),
     Enabled    = place.State.IsEnabled(),
     Name       = place.Name,
     TenantDbid = place.GetTenantDBID()
 };
        public OutputValues ReadPlaceObject()
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                Settings.GetInstance().ACDPosition = string.Empty;
                Settings.GetInstance().ExtensionDN = string.Empty;
                CfgPlace      application          = new CfgPlace(_configContainer.ConfServiceObject);
                CfgPlaceQuery queryApp             = new CfgPlaceQuery();
                queryApp.TenantDbid = _configContainer.TenantDbId;
                queryApp.Name       = Settings.GetInstance().PlaceName;
                application         = _configContainer.ConfServiceObject.RetrieveObject <CfgPlace>(queryApp);

                IList <CfgDN> DNCollection = (IList <CfgDN>)application.DNs;

                if (DNCollection != null && DNCollection.Count > 0)
                {
                    foreach (CfgDN DN in DNCollection)
                    {
                        if (!String.IsNullOrEmpty(DN.Number))
                        {
                            //Code changed to get both DN's by checking its string empty value
                            if (DN.Type == CfgDNType.CFGACDPosition && Settings.GetInstance().SwitchTypeName == "nortel")
                            {
                                Settings.GetInstance().ACDPosition = DN.Number;
                            }
                            if (DN.Type == CfgDNType.CFGExtension)
                            {
                                Settings.GetInstance().ExtensionDN = DN.Number;
                                if (Settings.GetInstance().ACDPosition.Equals(string.Empty))
                                {
                                    Settings.GetInstance().ACDPosition = DN.Number;
                                }
                            }
                            //End
                        }
                    }
                }
                else
                {
                    output.MessageCode = "2001";
                    output.Message     = Settings.GetInstance().ErrorMessages["place.config"];
                }

                output.MessageCode = "200";
                output.Message     = "Login Successful";
            }
            catch (Exception commonException)
            {
                logger.Error("Error occurred while reading " + Settings.GetInstance().PlaceName + "  =  " + commonException.ToString());

                output.MessageCode = "2001";
                output.Message     = Settings.GetInstance().ErrorMessages["place.config"];
            }
            return(output);
        }