Си диез / Говнокод #6145 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
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 :) ) все гораздо веселее.

Запостил: eval_2009 eval_2009, (Updated )

Комментарии (5) RSS

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8