1. C# / Говнокод #1903

    +94.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    /// Из aspx файла
    
    //<asp:Repeater ID="Repeater1" runat="server">
    //    <HeaderTemplate>
    //        <table width="100%" cellspacing="5">
    //    </HeaderTemplate>
    //    <ItemTemplate>
    //        <tr>
    //            <td>
    //                ...
    //            </td>
    //            <asp:Label runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "visibleCol2") %>'>
    //                <td>
    //                    ...
    //                </td>
    //            </asp:Label>
    //            <asp:Label ID="LCol3" runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "visibleCol3") %>'>
    //                <td>
    //                    ...
    //                </td>
    //            </asp:Label>
    //        </tr>
    //    </ItemTemplate>
    //    <FooterTemplate>
    //        </table>
    //    </FooterTemplate>
    //</asp:Repeater>
    
    // Из cs файла
    
    DataTable dtres = // получаем товары
    if (dtres != null && dtres.Rows.Count > 0)
    {
        DataTable dt = new DataTable();
    	/*...*/
        
        for (int i=0;i<dtres.Rows.Count;)
        {
            DataRow dr=dtres.Rows[i];
            /*...*/
    
            int col2Index = i + 1;
            if (col2Index < dtres.Rows.Count)
            {
                /*...*/
                i++;
                int col3Index = i + 1;
                if (col3Index < dtres.Rows.Count)
                {
                    /*...*/
                    i++;
                }
                else { /*...*/ }
            }
            else { /*...*/ }
    
            dt.Rows.Add(newRow);
            i++;
        }
    
        /*...*/
    }

    Человеку нужно было сделать товары в сетке 3x6.
    От того что он сделал у меня пропал дар речи. (Чтобы тут очень много кода не бы большую (не нужную для понимания) часть заменил на "...")
    Вобщем, в двух словах, он поместил вторую и третью ячейки таблицы в серверные контролы (причем в Label), а в коде берёт по три товара и засовывает в один RepeaterItem, ну а если количество товаров не делится нацело на три, то в последний RepeaterItem засовываются пустые данные, а Label делается невидимым.
    Как-то так.
    И самое главное, я не знаю, как человеку объяснить, что так нехорошо делать, т.к он главный программист...

    Ordos, 27 Сентября 2009

    Комментарии (9)
  2. C# / Говнокод #1901

    +130.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    if (!passFlag)
                    {
                        switch (GetTreeNodeName)
                        {
                            case "group":
                                {
                                    if (GetTreeNode.Parent.Parent.Parent.Parent.Name != "StudySchedule")
                                    {
                                        StudentCard studentCard = new StudentCard(ExploreTree.SelectedNode.Text,
                                                                                  ExploreTree.SelectedNode.Parent.Parent.
                                                                                      Text,
                                                                                  ExploreView.SelectedItems[0]);
                                        studentCard.MdiParent = this.MdiParent;
                                        studentCard.Show();
                                        break;
                                    }
                                    else
                                    {
                                        StudySchedule schedule=new StudySchedule(ExploreView.SelectedItems[0], ExploreTree.SelectedNode.Parent.Nodes);
                                        schedule.MdiParent = this.MdiParent;
                                        schedule.Show();
                                        break;
                                    }
                                }

    Это мой говнокод, не знаю как строчку if (GetTreeNode.Parent.Parent.Parent.Parent .Name != "StudySchedule")
    написать по-нормальному)))

    FofanovIS, 26 Сентября 2009

    Комментарии (14)
  3. C# / Говнокод #1895

    +95.6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    try
    {
        foreach (Control con in Parent.Parent.Parent.Parent.Parent.Parent.Controls)
        {
            if (con.Name == "numbersPanel")
            {
                ((NumbersPanel)con).sender = (TextBox)sender;
                break;
            }
        }
    }
    catch
    {
    }

    Отыскал в коде winforms приложения гениальнейший способ поиска контрола по имени.
    Теперь Parent.Parent.Parent.Parent придет за мной!

    tonic, 24 Сентября 2009

    Комментарии (7)
  4. C# / Говнокод #1881

    +128.3

    1. 1
    List<estExecPeriod> lst = TEDManager.getExecPeriodByIDExecWork(budget.IdBudget);

    iley, 22 Сентября 2009

    Комментарии (5)
  5. C# / Говнокод #1879

    +141.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    switch (Step)
    {
        case 6:
            {
                goto case 5;
            }
        case 5:
            {
                Step = 2;
                goto case 2;
            }
        case 4:
            {
                if (ReadOnly)
                {
                    Step = 2;
                    goto case 2;
                }
                pollingMatrix.Fill(Id, pollingRow.RiskObjectTypeId, languageId, connection);
                Scenario.Fill(Id, pollingRow.RiskObjectTypeId, languageId, connection);
                tbMain.SetCurrentTab(tcEnding);
                break;
            }
        case 3:
            {
                if (ReadOnly)
                {
                    btnPrevPg4.Visible = false;
                    btnNextPg4.Visible = false;
                }
                CleanScenarios();
                Scenario.Fill(Id, pollingRow.RiskObjectTypeId, languageId, connection);
                tbMain.SetCurrentTab(tcScenarios);
                break;
            }
        case 2:
            {
                if (ReadOnly)
                {
                    btnPrevPg3.Visible = false;
                    btnNextPg3.Visible = false;
                }
                pollingMatrix.Fill(Id, pollingRow.RiskObjectTypeId, languageId, connection);
                tbMain.SetCurrentTab(tcPollingMatrix);
                break;
            }
        case 1:
            {
                if (ReadOnly)
                {
                    btnPrevPg2.Visible = false;
                    btnNextPg2.Visible = false;
    				//tvRiskFactors.Enabled = false;
    				//tvRiskObjects.Enabled = false;							
    
    				//Раскрывает ноду если есть отмеченные дочерние элементы							
    				tvRiskObjects.ExpandAllNodes();
                }
                pollingMatrix.Fill(Id, pollingRow.RiskObjectTypeId, languageId, connection);
                doRiskFactorTree();
                doRiskObjectTree();
                hcpRiskObjects.PanelName = pollingRow.QSARiskObjectTypeNameDictionaryName;
                tbMain.SetCurrentTab(tcRiskFactors);
                break; //goto case 0;
            }
        case 0:
            {
                if (ReadOnly)
                {
                    Name.ReadOnly = true;
                    Comment.ReadOnly = true;
                    Hypothesis.ReadOnly = true;
                    calDateTo.Enabled = true;
                    RiskObjectTypeId.ReadOnly = true;
                    btnNextPg1.Visible = false;
                	Instructions.ReadOnly = true;
                }
                tbMain.SetCurrentTab(tcPolling);
                break;
            }
        default:
            {
    #if (DEBUG)
                exc_viewer.ViewException(@"Неверный Step, провалились в default");
    #endif
                Step = 0;
                goto case 0;
            }
    }

    Часть метода из 200 строк в кодбехайнде ASP.NET странички...
    Красота!!! =)

    naumenkopa, 21 Сентября 2009

    Комментарии (8)
  6. C# / Говнокод #1875

    +136.4

    1. 1
    2. 2
    3. 3
    4. 4
    // Работаю asp.net программистом.
    // Показал главному программисту, как с помощью System.Web.Routing можно легко делать человекопонятные урлы.
    // Итог: Теперь у сайта урлы вида http://domain/filterDisks/42/0/14/1.
    // Вот сижу и думаю, что значат все эти циферки :'о(

    Ordos, 21 Сентября 2009

    Комментарии (8)
  7. C# / Говнокод #1859

    +132.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    cboRole.DataSource = Controller.GetViewForRole();
    cboRole.DataBind();
    
    try {
       cboRole.SelectedValue = roleId.ToString();
    } catch (ArgumentOutOfRangeException) {
       cboRole.Items.Add(new ListItem(roleName, roleId.ToString()));
       cboRole.SelectedValue = roleId.ToString();
    }

    Нету значения - не проблема, создадим и присвоим. Не беда, что инициализация рядом...

    batonkolbas, 17 Сентября 2009

    Комментарии (1)
  8. C# / Говнокод #1849

    +129.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // IPrincipal Implementation
    public bool IsInRole(string role)
    {
      return Array.BinarySearch( _roles, role ) >=0 ? true : false;
    }
    public IIdentity Identity
    {
      get
      {
        return _identity;
      }
    }

    Взято из Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication (http://msdn.microsoft.com/en-us/library/aa302401.aspx)

    Step 4. Create a Class that Implements and Extends IPrincipal
    6. Implement the IsInRole method and Identity property defined by the IPrincipal interface as shown below.

    mikle.smirnov, 16 Сентября 2009

    Комментарии (15)
  9. C# / Говнокод #1845

    +103.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public Parameter()
                {
                    _name = new String((char[])null);
                    Value = new String((char[])null);
                }

    Вот такой забавный метод инициализации пустой строки обнаружил в чужом коде 0_о

    samuilovaa, 15 Сентября 2009

    Комментарии (5)
  10. C# / Говнокод #1834

    +102.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //Получаем путь к програме
    public static string getProgramPath()
    {
                  return Console.Title;
    }

    psina-from-ua, 12 Сентября 2009

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