/
Edwar
/
cam-api-examples
Обзор
Документация
Войти
/
Edwar
/
cam-api-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
UI/ExtensionUtilityNotifyNet/project/main/ExtensionUtilityNotify.cs
57 строк
1 KB
cepera
New examples
13 май 2025, 16:26
13 май 2025, 16:26
5baff8a
Код
Авторство
О чём код?
using System.Reflection.Emit; using System.Runtime.InteropServices; using System.Windows; using CAMAPI.Application; using CAMAPI.DotnetHelper; using CAMAPI.Extensions; using CAMAPI.Logger; using CAMAPI.ResultStatus; using CAMAPI.UIDialogs.DotnetHelper; namespace ExtensionUtilityNotifyNet; /// <summary> /// Utility to show dialog window /// </summary> public class ExtensionUtilityNotify: IExtension, IExtensionUtility { /// <inheritdoc /> public IExtensionInfo? Info { get; set; } private static string? AskUserForText() { string? result = null; var thread = new Thread(() => { var window = new TextInputWindow(); if (window.ShowDialog() == true) result = window.UserInput; }); thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); return result; } /// <inheritdoc /> public void Run(IExtensionUtilityContext context, out TResultStatus resultStatus) { resultStatus = default; try { var userText = AskUserForText(); if (userText == null) return; UIDialogs.Notify(TLogEventType.leInfo, "User input", userText); } catch (Exception e) { resultStatus.Code = TResultStatusCode.rsError; resultStatus.Description = e.Message; } } }