Множественный "выход" из экшена

Регистрация
10.07.2014
Сообщения
108
Благодарностей
6
Баллы
18
Всем привет!) Есть такое предложение. В общем думаю, что у многих было такое, что нужно чтоб один и тот же набор действий (в зависимости от того, откуда перешло управление) должен быть скопирован, под определенный выход из каждого экшена. (К примеру, есть динамическое появление ввод капчи на разных страницах одного сайта, и дабы не плодить много наборов экшенов, можно было бы сделать, что то типа "go to"(знаю, что плохо звучит, но всё же), к примеру пришло с такого экшена, то отдается такому, пришло с такого, отдается такому и тд., а переходы указывать по id).
 
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
Всем привет!) Есть такое предложение. В общем думаю, что у многих было такое, что нужно чтоб один и тот же набор действий (в зависимости от того, откуда перешло управление) должен быть скопирован, под определенный выход из каждого экшена. (К примеру, есть динамическое появление ввод капчи на разных страницах одного сайта, и дабы не плодить много наборов экшенов, можно было бы сделать, что то типа "go to"(знаю, что плохо звучит, но всё же), к примеру пришло с такого экшена, то отдается такому, пришло с такого, отдается такому и тд., а переходы указывать по id).
плюсую..
сам о таком мечтал много раз..
что то типа подпрограммы..
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
вложенные проекты скоро будут реализованы
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
можна использовать переменную-состояние, которая будет хранить в себе определенный код текущего процесса. Шаб постоянно будет ходить через проверку на капчу а там в зависимости от состояния перенаправляться с помощью свича или набора ифов. Если писать смысловые названия состояний то все может быть очень даже читабельно.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
можна использовать переменную-состояние, которая будет хранить в себе определенный код текущего процесса. Шаб постоянно будет ходить через проверку на капчу а там в зависимости от состояния перенаправляться с помощью свича или набора ифов. Если писать смысловые названия состояний то все может быть очень даже читабельно.
да, вот как раз таким способом и выходил из ситуации..
перед тем как идти в под-шаблон, присваивал спец. переменной определенное значение, а при выходе проверял это значение на соответствие и выходил из под-шаблона в предыдущее место..
хочется того что обещал rostonix в предыдущем сообщении.. :-)
 
Регистрация
10.07.2014
Сообщения
108
Благодарностей
6
Баллы
18
можна использовать переменную-состояние, которая будет хранить в себе определенный код текущего процесса. Шаб постоянно будет ходить через проверку на капчу а там в зависимости от состояния перенаправляться с помощью свича или набора ифов. Если писать смысловые названия состояний то все может быть очень даже читабельно.
Это да. Но согласитесь, что количество экшенов будет расти очень быстро. А тут будет всего лишь один экшн отвечающий за перенаправление управления.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
я бы предложил сделать блочек событий, который бы отрабатывал с гуд ендом (который бы автоматом возвращал в основнй код) и бед ендом.
 
  • Спасибо
Реакции: Quadrollionaire

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
например событие это сишарпный код который возращает тру или фолс
тру - значит событие произошло
конечно в таком случае код должен быть полностью безопасным и простым.

Когда событие произошло (например, показалась капчта), наше собитие обрабатывается тоже шарпным методом во втором поле, которое тоже выдает тру-фолс.
тру ведет в продолжение ветки например, а фолс ведет к обработке ошибки или что там хозяин шаблона предусмотрел.

Ыще нада добавить блочек "включить событие" - "выключить событие"
чтобы события не произходили там где не нужно их искать.
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Переходы указывать по id возможна потом путаница будет. У нас всё таки в PM кубики как говориться и простота визуализации. Если ввести ещё один элемент в логику "go-to / go-with"
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
Переходы указывать по id возможна потом путаница будет. У нас всё таки в PM кубики как говориться и простота визуализации. Если ввести ещё один элемент в логику "go-to / go-with"
ID можно сделать, чтобы автоматом подставлялся..
в принципе под это даже не надо наверное настройку делать..

т.е. вышли в подшаблон, отработали его и автоматом возвратились на экшен, который следом идет за тем, в которм вызов подшаблона был..
собственно, в языках программирования возвраты из подпрограмм не прописываются, это все автоматом отрабатывается по команде return например..
тут надо также сделать..
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
ID можно сделать, чтобы автоматом подставлялся..
в принципе под это даже не надо наверное настройку делать..
Тогда возьмём шаблон 80 lvl. В этом шаблоне мы поставили go-to ID, а что мы увидим на том экшене на который мы переход делали. Нужна визуализация там куда переходим, а иначе забудем, потеряем или в чужом шаблоне будем в трёх экшенах плутать.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
я это так вижу..
нужны два спец-экшена:

1. спец-экшен с именем подшаблона (устанавливается в начало подшаблона)
2. спец-экшен перехода на подшаблон (устанавливается в место из которого надо подшаблон вызвать)

в спец-экшене перехода будет поле для указания куда нужно перейти, но не по id, а по текстовой метке (имени), например: "Подшаблон-1", "Подшаблон-2" и прочее..
при отрабатывании этого экшена, выполняется требуемый подшаблон и управление автоматически возвращается в экшен, который идет после спец-экшена..
не думаю, что путаница будет.. на спец-экшенах будет прописан комментарий: имя подшаблона и имя подшаблона куда переход назначен..
 
Последнее редактирование:

izubr

Client
Регистрация
11.05.2011
Сообщения
556
Благодарностей
246
Баллы
43
Регистрация
10.07.2014
Сообщения
108
Благодарностей
6
Баллы
18
я это так вижу..
нужны два спец-экшена:

1. спец-экшен с именем подшаблона (устанавливается в начало подшаблона)
2. спец-экшен перехода на подшаблон (устанавливается в место из которого надо подшаблон вызвать)

в спец-экшене перехода будет поле для указания куда нужно перейти, но не по id, а по текстовой метке (имени), например: "Подшаблон-1", "Подшаблон-2" и прочее..
при отрабатывании этого экшена, выполняется требуемый подшаблон и управление автоматически возвращается в экшен, который идет после спец-экшена..
не думаю, что путаница будет.. на спец-экшенах будет прописан комментарий: имя подшаблона и имя подшаблона куда переход назначен..
Мы можем много вариантов придумать реализации, но решать всё равно разрабы будут:-)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Реализация будет уже очень скоро :-) Уже почти готово)
 
  • Спасибо
Реакции: APXOHT и Quadrollionaire
Регистрация
10.07.2014
Сообщения
108
Благодарностей
6
Баллы
18

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Скоро
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
кстати можна обойтись без всяких там подпроектов
если подпрограмма несложна, то можна переписать ее под шарп и закнуть в таком виде
C#:
//делегат test, пример маленькой подпрограмки
Action test = () => {
instance.ActiveTab.Navigate("google.com");
instance.ActiveTab.WaitDownloading();
};
//сохраняем делегат в контекст
project.Context["test"] = test;
дальше в любом месте можем выполнить тест, пример:
C#:
var test = project.Context["test"];
test();
таким способом можно обьявить в начале проекта все функции которые понадобятся, запхать их в контекст и юзать-юзать...
 
  • Спасибо
Реакции: Quadrollionaire

Кто просматривает тему: (Всего: 4, Пользователи: 0, Гости: 4)