Изменения в RunService чтобы можно было в плагине вызвать коллбэк изменения аргументов запускаемого приложения
В TeacherControlPlugin.cs синхронные изменения - добавить в командную строку True или false в зависимости от авторизации В LightPT синхронные изменения - писать в базу только если авторизован. Если сеть работает плохо - просто деавторизоваться
This commit is contained in:
parent
ee69f424e8
commit
2f1458834d
|
|
@ -80,6 +80,8 @@ namespace VisualPascalABCPlugins
|
||||||
public delegate void RunnerManagerActionDelegate(string fileName);
|
public delegate void RunnerManagerActionDelegate(string fileName);
|
||||||
// SSM 02.07.22 - ïåðåä ñòàðòîì êîìïèëÿöèè äëÿ ïëàãèíîâ
|
// SSM 02.07.22 - ïåðåä ñòàðòîì êîìïèëÿöèè äëÿ ïëàãèíîâ
|
||||||
public delegate void BuildServiceActionDelegate(string fileName);
|
public delegate void BuildServiceActionDelegate(string fileName);
|
||||||
|
// SSM 02.07.22 - ïåðåä çàïóñêîì èçìåíèòü ïàðàìåòðû êîìàíäíîé ñòðîêè
|
||||||
|
public delegate void ChangeArgsBeforeRunDelegate(ref string args);
|
||||||
|
|
||||||
public enum SourceLocationAction
|
public enum SourceLocationAction
|
||||||
{
|
{
|
||||||
|
|
@ -311,6 +313,7 @@ namespace VisualPascalABCPlugins
|
||||||
{
|
{
|
||||||
event RunnerManagerActionDelegate Starting; // ìîæíî âûçûâàòü èç ïëàãèíà
|
event RunnerManagerActionDelegate Starting; // ìîæíî âûçûâàòü èç ïëàãèíà
|
||||||
event RunnerManagerActionDelegate Exited; // ìîæíî âûçûâàòü èç ïëàãèíà
|
event RunnerManagerActionDelegate Exited; // ìîæíî âûçûâàòü èç ïëàãèíà
|
||||||
|
event ChangeArgsBeforeRunDelegate ChangeArgsBeforeRun;
|
||||||
bool IsRun();
|
bool IsRun();
|
||||||
bool IsRun(string FileName);
|
bool IsRun(string FileName);
|
||||||
bool Run(bool RedirectConsoleIO);
|
bool Run(bool RedirectConsoleIO);
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,7 @@ namespace VisualPascalABC
|
||||||
|
|
||||||
public event RunnerManagerActionDelegate Exited;
|
public event RunnerManagerActionDelegate Exited;
|
||||||
public event RunnerManagerActionDelegate Starting;
|
public event RunnerManagerActionDelegate Starting;
|
||||||
|
public event ChangeArgsBeforeRunDelegate ChangeArgsBeforeRun;
|
||||||
|
|
||||||
public class StackTraceItem
|
public class StackTraceItem
|
||||||
{
|
{
|
||||||
|
|
@ -281,6 +282,8 @@ namespace VisualPascalABC
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (ChangeArgsBeforeRun != null)
|
||||||
|
ChangeArgsBeforeRun(ref args);
|
||||||
PRunner.Start(fileName, args, redirectIO, redirectErrors, RunWithPause, attachDebugger, fictive_attach);
|
PRunner.Start(fileName, args, redirectIO, redirectErrors, RunWithPause, attachDebugger, fictive_attach);
|
||||||
if (Starting != null)
|
if (Starting != null)
|
||||||
Starting(fileName);
|
Starting(fileName);
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,17 @@ namespace VisualPascalABC
|
||||||
private Dictionary<string, string> RunArgumentsTable = new Dictionary<string, string>();
|
private Dictionary<string, string> RunArgumentsTable = new Dictionary<string, string>();
|
||||||
bool RunActiveTabPage = false;
|
bool RunActiveTabPage = false;
|
||||||
|
|
||||||
|
public event ChangeArgsBeforeRunDelegate ChangeArgsBeforeRun
|
||||||
|
{
|
||||||
|
add
|
||||||
|
{
|
||||||
|
RunnerManager.ChangeArgsBeforeRun += value;
|
||||||
|
}
|
||||||
|
remove
|
||||||
|
{
|
||||||
|
RunnerManager.ChangeArgsBeforeRun -= value;
|
||||||
|
}
|
||||||
|
}
|
||||||
// SSM 16/05/22 - добавил чтобы иметь возможность добавлять обработчики во внешнем плагине
|
// SSM 16/05/22 - добавил чтобы иметь возможность добавлять обработчики во внешнем плагине
|
||||||
public event RunnerManagerActionDelegate Starting
|
public event RunnerManagerActionDelegate Starting
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace DBAccessPluginNamespace
|
||||||
{
|
{
|
||||||
public SiteAccessProvider SiteProvider = null;
|
public SiteAccessProvider SiteProvider = null;
|
||||||
public VisualPascalABCPlugin_TeacherControlPlugin Plugin = null;
|
public VisualPascalABCPlugin_TeacherControlPlugin Plugin = null;
|
||||||
public bool Authorized = false;
|
public bool Authorized { get; set; } = false;
|
||||||
|
|
||||||
public LoginForm(VisualPascalABCPlugin_TeacherControlPlugin Plugin)
|
public LoginForm(VisualPascalABCPlugin_TeacherControlPlugin Plugin)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ namespace VisualPascalABCPlugins
|
||||||
|
|
||||||
// Регистрация обработчика
|
// Регистрация обработчика
|
||||||
this.Workbench.ServiceContainer.RunService.Starting += RunStartingHandler;
|
this.Workbench.ServiceContainer.RunService.Starting += RunStartingHandler;
|
||||||
|
this.Workbench.ServiceContainer.RunService.ChangeArgsBeforeRun += ChangeArgsBeforeRunHandler;
|
||||||
//Workbench.ServiceContainer.BuildService.BeforeCompile += BeforeCompileHandler;
|
//Workbench.ServiceContainer.BuildService.BeforeCompile += BeforeCompileHandler;
|
||||||
}
|
}
|
||||||
public void Execute()
|
public void Execute()
|
||||||
|
|
@ -266,6 +267,11 @@ namespace VisualPascalABCPlugins
|
||||||
private void RunStartingHandler(string filename)
|
private void RunStartingHandler(string filename)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ChangeArgsBeforeRunHandler(ref string args)
|
||||||
|
{
|
||||||
|
args += " " + loginForm.Authorized.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1201,7 +1201,8 @@ begin
|
||||||
try
|
try
|
||||||
System.IO.File.AppendAllText('db.txt', $'{LessonName} {TaskName} {dateTime.Now.ToString(''u'')} {TaskResult.ToString} {AdditionalInfo}' + #10);
|
System.IO.File.AppendAllText('db.txt', $'{LessonName} {TaskName} {dateTime.Now.ToString(''u'')} {TaskResult.ToString} {AdditionalInfo}' + #10);
|
||||||
var auth := FindAuthDat();
|
var auth := FindAuthDat();
|
||||||
if auth<>'' then
|
var args := System.Environment.GetCommandLineArgs;
|
||||||
|
if (auth <> '') and (args.Length = 3) and (args[2].ToLower = 'true') then
|
||||||
// Есть проблема паузы при плохой сети
|
// Есть проблема паузы при плохой сети
|
||||||
WriteInfoToRemoteDatabase(auth,LessonName,TaskName,TaskResult.ToString, AdditionalInfo);
|
WriteInfoToRemoteDatabase(auth,LessonName,TaskName,TaskResult.ToString, AdditionalInfo);
|
||||||
except
|
except
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue