LTools.SDK для Linux

В этом разделе вы узнаете, как разработать элемент для Primo RPA Studio на Linux. Чтобы создать элемент, вам понадобится интегрированная среда разработки Visual Studio (IDE).

Вам будет легче, если вы уже разрабатывали элементы для Primo RPA Studio на Windows, поскольку процесс отличается незначительно.

Начало работы

Создайте проект в Visual Studio:

  1. Запустите Visual Studio и выберите Создание проекта.

  2. Выберите шаблон проекта Библиотека классов (Class Library C#) и нажмите Далее.

  3. В названии проекта обязательно укажите префикс Primo. Пример: Primo.Test.

  4. Далее выберите платформу .NET 8.0 и нажмите Создать.

  5. В меню Visual Studio выберите Проект > Добавить ссылку на проект.

  6. В открывшемся окне нажмите кнопку Обзор..., откройте каталог установки Primo RPA Studio (Linux) версии 1.24.8 или выше. Добавьте из каталога установки в свой проект следующие файлы:

    • LTools.Common.dll

    • LTools.Dto.dll

    • LTools.Enums.dll

    • LTools.Scripting.dll

    • LTools.SDK.dll

    • Primo.UIControls.dll

  7. Перейдите в панель инструментов Обозреватель решений (Solution Explorer), вызовите контекстное меню проекта и выберите Управление пакетами NuGet. Установите следующие сборки:

    • Avalonia 11.0.10

    • Avalonia.Desktop 11.0.10

    • Avalonia.Diagnostics 11.0.10

    • Avalonia.Xaml.Behaviors 11.0.10.9

    • MessageBox.Avalonia 3.1.5.1

  8. Установите расширение Avalonia for Visual Studio. Для этого выберите раздел меню Расширения > Управление расширениями и введите в поисковой строке Avalonia для выдачи нужных результатов.

Структура проекта

Для удобства работы с проектом создайте в нем папки*:

  1. Elements — файлы с описанием логики элементов.

  2. Views — визуальные формы элементов.

  3. Images — иконки элементов. Формат png, размер 24x24.

  4. Localization — файлы ресурсов при необходимости.

Пример:

*Вы можете использовать другие папки и названия в своем проекте.

Создание элемента

Для создания элемента Primo вам понадобится:

  1. Упаковать библиотеку в NuGet-пакет и опубликовать на портале NuGet.

Впоследствии вы можете установить ваш NuGet-пакет в Primo RPA Studio на Linux, чтобы добавить элемент в среду RPA-разработки.

Шаг 1. Создаем визуальную часть элемента Primo

  1. Вызовите контекстное меню папки Views, выберите Добавить > Создать элемент > User Control (Avalonia).

  2. В поле Имя укажите его название. Пример: WriteInConsoleBase.axaml.

  3. Нажмите кнопку Добавить.

Готово — вы создали компонент, который является визуальной составляющей элемента Primo. Данные будущего элемента автоматически будут смаплены на DataContext данного контролла.

Работа с файлом *.axaml.cs

При создании файла *.axaml также автоматически добавится файл *.axaml.cs. Откройте в рабочей области файл *.axaml.cs, измените в нем класс с UserControl на PrimoUserControl из clrnamespace:LTools.Common.UIElements;assembly=LTools.Common.

Например, мы открыли файл WriteInConsoleBase.axaml.cs и изменили в нем класс:

using Avalonia.Interactivity;
using LTools.Common.UIElements;

namespace Primo.TestNuget.Views
{
    public partial class WriteInConsoleBase : PrimoUserControl
    {
        /// <summary>
        /// Constructor.
        /// </summary>
        public WriteInConsoleBase()
        {
            if (LTools.Common.Helpers.WFHelper.DoRender)
            {
                InitializeComponent();
            }
        }

        /// <summary>
        /// Event "OnClick" on element "Form_btn" handling method.
        /// </summary>
        /// <param name="sender">Sender value.</param>
        /// <param name="eventArguments">Event arguments value.</param>
        private void Form_btn_OnClick(object? sender, RoutedEventArgs eventArguments)
        {
            this.Form_txt.Text = @"""'Ваше имя', 'Ваша фамилия'""";
        }
    }
}

Работа с файлом *.axaml

Откройте в рабочей области ваш файл *.axaml. Смените в нем класс с UserControl на PrimoUserControl из clrnamespace:LTools.Common.UIElements;assembly=LTools.Common.

Например, мы открыли файл WriteInConsoleBase.axaml и изменили в нем класс:

uiElements:PrimoUserControl xmlns="https://github.com/avaloniaui"
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                     xmlns:uiElements="clr-namespace:LTools.Common.UIElements;assembly=LTools.Common"
                     xmlns:uiControls="clr-namespace:Primo.UIControls;assembly=Primo.UIControls"
                     mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
                     x:Class="Primo.TestNuget.Views.WriteInConsoleBase">

...

</ui:PrimoUserControl>

Теперь спроектируйте визуальный облик элемента Primo. Подумайте, какие вы хотите увидеть на панели элемента поля, кнопки и т.д.

В соответствии с вашим дизайном создайте сетку (Grid). Например, мы хотим создать простой элемент с полем для ввода данных и кнопкой «Установить шаблон»:

<uiElements:PrimoUserControl xmlns="https://github.com/avaloniaui"
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                     xmlns:uiElements="clr-namespace:LTools.Common.UIElements;assembly=LTools.Common"
                     xmlns:uiControls="clr-namespace:Primo.UIControls;assembly=Primo.UIControls"
                     mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
                     x:Class="Primo.TestNuget.Views.WriteInConsoleBase">
    <Grid RowDefinitions="*,*" ColumnDefinitions="*">