public ImportResponse ImportMessages(string messageSourceDirectory)
        {
            var importedMessagesCount = 0;
            IEnumerable <Message> unimportedMessages = null;
            List <Message>        messagesToImport   = null;

            try
            {
                messagesToImport =
                    _fileService.GetFilesFromDirectory(messageSourceDirectory);

                if (messagesToImport.Count > 0)
                {
                    foreach (var messageToImport in messagesToImport.OrderBy(m => m.MessageRecordingDate))
                    {
                        ImportMessage(messageToImport);
                    }

                    importedMessagesCount = messagesToImport.Count(m => m.Imported);
                    unimportedMessages    = messagesToImport.Where(m => m.Imported == false);
                }

                return(new ImportResponse()
                {
                    SuccessMessage = GetSuccessMessage(importedMessagesCount),
                    ErrorMessage = GetErrorMessage(unimportedMessages),
                    IsError = IsError(unimportedMessages),
                    MessagesUnableToImport = GetMessagesUnableToImport(unimportedMessages)
                });
            }
            catch (Exception ex)
            {
                return(new ImportResponse()
                {
                    IsError = true,
                    ErrorMessage =
                        string.Format("There was a problem importing the {1}:  {0}",
                                      ex.Message,
                                      _languageHelper.NumberizeText("message", messagesToImport.Count))
                });
            }
        }