Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
public const string Message = "messagebox";
public const string Message_Error = "messagebox.error";
public const string Message_Question = "messagebox.question";
public void ProcessUrl(string url, object urlContext, EventHandler<ProcessUrlArgs> callback)
{
switch (url)
{
case Url.Message:
urlArgs.Result = XtraMessageBox.Show((string) urlContext, captionText, MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
callback(this, urlArgs);
return;
case Url.Message_Error:
urlArgs.Result = XtraMessageBox.Show((string) urlContext, captionText, MessageBoxButtons.OK,
MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
callback(this, urlArgs);
return;
case Url.Message_Question:
urlArgs.Result = XtraMessageBox.Show((string) urlContext, captionText, MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
callback(this, urlArgs);
return;
}
// дальше идет уже ручная разборка Url
Человек изобрел своего диспетчера контролов внутри формы. Вместо специфических методов вызывающий формирует строку вида
"command.subcommand.parameter1.parameter 2", передается диспетчеру а он уже парсит это обратно.
К примеру "prefix.persons.view.23.all" означает что нужно создать юзер контрол PersonDetail для персоны с id 23 и показать все опции. Но можно передать и "message" тогда покажется messagebox. Все это происходит внутри одного UI модуля, и все классы internal. более того, этих usercontrols всего 4 разных и все это говно можно заменить на 4 метода с парой параметров в каждом. Но там было бы слишком просто и легко отслеживать что откуда вызывается. А в случае единственного метода ProcessUrl (который не url :) ) все гораздо веселее.
Комментарии (5) RSS