/// <summary>
        /// Saves messages to disk
        /// </summary>
        /// <param name="messages">message</param>
        /// <param name="destinationName">destination name</param>
        /// <returns>list of saved files</returns>
        private static List<string> SaveMessages(List<STOMPMessage> messages, string destinationName, StorageConfiguration storageConfiguration)
        {
            TraceLogger.Log(NonLocalizableResource.SavingMessageFromDestiantion, messages.Count, destinationName);

            List<string> files = new List<string>();

            Parallel.ForEach(messages, message =>
            {
                string filePath = DiskIOHelper.GetTempFileFullName(storageConfiguration.StorageLocation, storageConfiguration.BaseFileName, destinationName, message.Metadata.MessageType);
                DiskIO.Write(filePath, message.Data);

                files.Add(filePath);
            });

            return files;
        }
        public static async void ProcessAsync(List<STOMPMessage> messageList, string destinationName, StorageConfiguration storageConfiguration, string dbConnectionString)
        {
            try
            {
                if (!string.IsNullOrEmpty(dbConnectionString))
                    await Task.Factory.StartNew(() => InsertToDatabase(messageList, dbConnectionString));

                if (storageConfiguration.SaveOnDisk)                
                    await SaveMessagesAsynchronously(messageList, destinationName, storageConfiguration);                    
                
                //Task.Factory.StartNew(() => SaveMessages(messageList, destinationName, storageConfiguration));
            }
            catch (Exception e)
            {
                TraceLogger.Log(e);
            }
        }
 private static Task SaveMessagesAsynchronously(List<STOMPMessage> messages, string destinationName, StorageConfiguration storageConfiguration)
 {
     var task = Task.Factory.StartNew(() => SaveMessages(messages, destinationName, storageConfiguration));
     return task;
 }
 public GlassfishSubscriberConfiguration(StorageConfiguration storageConfiguartion)
 {
     _config.StorageConfiguration = storageConfiguartion;
 }