private static void SaveInternal(XConfiguration configuration, string configFile)
 {
     using (MemoryStream memoryStream = new MemoryStream())
     {
         EllieMae.Encompass.BusinessObjects.DataObject data = new EllieMae.Encompass.BusinessObjects.DataObject();
         configuration.Save((Stream)memoryStream);
         memoryStream.Flush();
         data.Load(memoryStream.ToArray());
         if (data.Size == 0)
         {
             throw new Exception("Failed to save configuration.");
         }
         try
         {
             GlobalConfiguration.CurrentSession.DataExchange.SaveCustomDataObject(configFile, data);
         }
         catch (Exception ex)
         {
         }
     }
 }
        public static void Save(object session, bool ignoreLog)
        {
            Assembly       assembly              = GlobalConfiguration.GetAssembly();
            XConfiguration configuration         = GlobalConfiguration.Configuration;
            string         configurationFileName = GlobalConfiguration.GetConfigurationFileName(GlobalConfiguration.Mode, assembly);

            switch (GlobalConfiguration.Mode)
            {
            case RunMode.EncompassServer:
                if (session == null)
                {
                    session = (object)GlobalConfiguration.getRuntimeSession();
                }
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    EllieMae.Encompass.BusinessObjects.DataObject data = new EllieMae.Encompass.BusinessObjects.DataObject();
                    configuration.Save((Stream)memoryStream);
                    memoryStream.Flush();
                    if (!ignoreLog)
                    {
                        try
                        {
                            //GlobalTracer.TraceVerboseFormat("The length of configuration file stream is:{0}.", (object)memoryStream.Length);
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                    data.Load(memoryStream.ToArray());
                    if (!ignoreLog)
                    {
                        try
                        {
                            //GlobalTracer.TraceVerboseFormat("The size of data object is:{0}.", (object)data.Size);
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                    if (data.Size == 0)
                    {
                        if (!ignoreLog)
                        {
                            try
                            {
                                //GlobalTracer.TraceError("Failed to save configuration.");
                            }
                            catch (Exception ex)
                            {
                            }
                        }
                        throw new Exception("Failed to save configuration.");
                    }
                    try
                    {
                        (session as Session).DataExchange.SaveCustomDataObject(configurationFileName, data);
                        break;
                    }
                    catch (Exception ex1)
                    {
                        if (ignoreLog)
                        {
                            break;
                        }
                        try
                        {
                            //GlobalTracer.TraceErrorFormat("Failed to save changes to configuration file, details:{0}", (object)ex1.Message);
                            break;
                        }
                        catch (Exception ex2)
                        {
                            break;
                        }
                    }
                }

            case RunMode.WebServer:
            case RunMode.Client:
                configuration.Save(configurationFileName);
                break;
            }
        }