Теперь рассмотрим, как воспользоваться модулем FileSearcher и задействовать Сервер Xafari в нашем приложении. Для этого необходимо выполнить следующее:

 

public class SearchFilesController : WindowController

{

    public SearchFilesController()

    {

        TargetWindowType = WindowType.Main;

 

        new SimpleAction(this, "FindFiles", PredefinedCategory.Unspecified)

        {

            Caption = "Find Files"

        }.Execute += FindFiles_Execute;

    }

 

    private void FindFiles_Execute(object sender, SimpleActionExecuteEventArgs e)

    {

        using (var objectSpace = Application.CreateObjectSpace())

        {

            var messageData = objectSpace.CreateObject<SearchFiles>();

            messageData.SearchPattern = "*.dll";

            messageData.Path = Environment.CurrentDirectory;

            objectSpace.CommitChanges();

            MQManager.Instance.InsertMessage(messageData, SearchFiles.Tag, "Find .dll files in current directory");

        }

 

        MessageObject.CreateMessageInfo(e.ShowViewParameters, Application, "Information", "Search files message is queued.");

    }

}

 

Перед вставкой Cообщения в очередь в БД создается экземпляр SearchFiles, служащий данными для Cообщения. В примере будет выполняться поиск файлов по маске "*.dll" в текущем каталоге приложения. Для вставки Cообщения в очередь служит метод MQManager.Instance.InsertMessage. Методу передается экземпляр объекта с дополнительными данными, указывается тип Cообщения (SearchFiles.Tag), а также краткое описание Cообщения.

Приложение готово для работы с Cервером Xafari в локальном режиме.

Можно запустить приложение, просмотреть Очередь Сообщений и найденные файлы. Пока списки пустые.

Теперь можно выполнить Find Files Action из панели инструментов. В Очереди Сообщений появится наше сообщение. После того, как его статус изменится на «Completed», можно открыть список SearchFiles и посмотреть результат работы обработчика SearcFilesHandler.