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

    +147

    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
    public static void Unsubscribe
    <
    	T1,		T2,		T3,		T4,
    	T5,		T6,		T7,		T8,
    	T9,		T10,		T11,		T12,
    	T13,		T14,		T15,		T16
    >
    (
    	TKey eventKey,
    	Action
    	<
    		T1,		T2,		T3,		T4,
    		T5,		T6,		T7,		T8,
    		T9,		T10,		T11,		T12,
    		T13,		T14,		T15,		T16
    	> handler
    )
    { handlers[eventKey] -= handler; }

    Боль.

    pushistayapodmyshka, 30 Апреля 2015

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

    +142

    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
    public List<MainTZInfoVO> GetMyJobs(bool flag1, bool flag2, bool flag3, bool flag4, string date1, string date2)
    {
        List<MainTZInfoVO> ulist = new List<MainTZInfoVO>();  // список заданий пользователя
        string sIdUser = usr.GetUserOrAssistansID().ToString();   // ID пользователя
        
        //выданы мне задания
        string sql1 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '1' as NOT_RECEIVED from tz_all_jobs where (trim(id_ispol) like '%,'||'" + sIdUser + "'||',%' or trim(id_ispol) like '" + sIdUser + "'||',%') and (status='Выдано' or status = 'Отклонено частично') and nvl(id_prin,' ') not like  '%,'||'" + sIdUser + "'||',%' and  nvl(id_prin,' ') not like '" + sIdUser + "'||',%' and nvl(id_otkl,' ') not like  '%,'||'" + sIdUser + "'||',%' and  nvl(id_otkl,' ') not like '" + sIdUser + "'||',%'";
        //принятые мной, не рассмотренные другими
        string sql2 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '0' as NOT_RECEIVED from tz_all_jobs where (status='Выдано' or status = 'Отклонено частично') and (nvl(id_prin,' ')  like  '%,'||'" + sIdUser + "'||',%' or  nvl(id_prin,' ')  like '" + sIdUser + "'||',%' or nvl(id_otkl,' ')  like  '%,'||'" + sIdUser + "'||',%' or  nvl(id_otkl,' ')  like '" + sIdUser + "'||',%')";
        //выданные мне в статусе отклонено
        string sql3 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '2' as NOT_RECEIVED from tz_all_jobs where  (id_ispol like '%,'||'" + sIdUser + "'||',%' or id_ispol like '" + sIdUser + "'||',%') and (status='Отклонено' or status='Аннулировано')";
        //ограничение по дате
        string sql4 = "date_vyd between to_date('" + date1 + "','DD.MM.YYYY') and to_date('" + date2 + "','DD.MM.YYYY')";
        string sql = " ";
        //формируем sql-ку по флажкам, которые передаем в функцию
        if (flag1 == true)
        {
            sql = sql1;
        }
        if (flag2 == true)
        {
            if (sql.Length > 1)
            {
                sql = sql + " union " + sql2;
            }
            else
            {
                sql = sql2;
            }
        }
        if (flag3 == true)
        {
            if (sql.Length > 1)
            {
                sql = sql + " union " + sql3;
            }
            else
            {
                sql = sql3;
            }
        }
        if ((flag4 == true) & (sql.Length > 1))
        {
            sql = "select * from (" + sql + ") tabl where " + sql4;
        }
        sql = sql + " order by date_vyd desc";
    
        OracleCommand cmd = new OracleCommand(sql, connection);
        OracleDataReader reader = cmd.ExecuteReader();
        //ТУТ ПЕРЕДЕЛАТЬ ВСЕ
        /*заполнение полей из ридера*/
        while (reader.Read())
        {
            //...
        }
        return ulist; 
    }

    в этом коде прекрасно все (имена и типы переменных, жестокое обращение с датами, чуть менее жестокое обращения с "флажками", соединение с Ораклом, которое открывается где-то за пределами вселенной и не закрывается нигде, и еще много всего)...
    дочитав этот шедевр до строчки //ТУТ ПЕРЕДЕЛАТЬ ВСЕ, просто невозможно не прослезиться...

    svetkeen, 29 Апреля 2015

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

    +943

    1. 1
    таблица.ячейки.Where(ячейка => ячейка.выбрана).ToList().ForEach(ячейчка => ячейчка.ОчиститьЗначение());

    Похоже, у автора сама цель усложнить понимание кода и использовать LINQ. Я бы написал так:
    foreach (var ячейка in таблица)
    if (ячейка.выбрана)
    ячейчка.ОчиститьЗначение();

    Dimarius, 22 Апреля 2015

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

    +937

    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
    public DataTable GetAllVideoDevice()
           {
               DataTable dt = DbUtil.GetData("SELECT VideoUrlId,VideoUrlName FROM VideoUrl");
               return dt;
           }
    
           public int GetVideoDeviceCount()
           {
               int i = 0;
               DataTable dt = GetAllVideoDevice();
               if (dt.Rows.Count > 0) return dt.Rows.Count;
               else return i;
           }

    У меня будут свои нули с блекджеком и шлюхами

    visviva, 20 Апреля 2015

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

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public int[] GetIntVideoAll(int videoCount)
          {
              List<int> listOfIntsVideo = new List<int>();
              for (int i = 0; i < videoCount; i++)
              {
                  listOfIntsVideo.Add(i);
              }
    
              return listOfIntsVideo.ToArray();
          }
    foreach (int item in mediaServ.GetIntVideoAll(videoCount))
               { ........}

    Вот так вот. Такие жемчужины встречаются с частотой примерно раз в 10 минут в коде одного проекта который я переписываю.

    visviva, 20 Апреля 2015

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

    +145

    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
    {
        if (!InitConnectionString())
            throw new Exception("Не инициализирована строка подключения");
        oraConnection.Open();
        // еще какой-то код, в котором тоже может быть исключение
    }
    catch
    {
        // запись в лог сообщения об ошибке
        oraConnection.Close();
        oraConnection.Open();
        OracleConnection.ClearPool(oraConnection);
    }

    так с OracleConnection еще никто не обращался((

    svetkeen, 15 Апреля 2015

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

    +890

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Int64 iObjectId;
    
    public Int64 ObjectId
    {
        get { return iObjectId; }
        set {
             if (iObjectId == null) { value = 0; } else value = iObjectId;
        }
    }

    Помимо того, что условие (iObjectId == null) никогда не выполняется, сеттер еще и делает свойство ObjectId фактически readonly.
    (Авторское форматирование кода сохранено.)

    svetkeen, 15 Апреля 2015

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

    +130

    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
    // Заполняем датагрид
    var q = from i in currentData select new { i.IDRFData, i.IDRowData, i.Description, i.SumVal };
    dgMain.DataContext = q.ToList();
    
    // Получаем оттуда выделенный элемент
    object DR = dgMain.SelectedValue;
    
    var TypedData = Cast(DR, new
    {
    	IDRFData = default(Guid),
    	IDRowData = default(Guid),
    	Description = default(string),
    	SumVal = default(double),
    });
    
    // Кстати, функция Cast делает следующее:
    public static T Cast<T>(object obj, T type)
    {
    	return (T)obj;
    }

    Это извращение сделано вместо того, чтобы просто создать отдельный класс для записи датагрида.
    Я даже не представляю, в каком состоянии надо быть, чтобы такое написать.

    yamamoto, 13 Апреля 2015

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private void tbMain_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
    	TextBox thisTextBox = (sender as TextBox);
    	e.Handled = (!(Char.IsDigit(e.Text, 0) && !((thisTextBox.Text.IndexOf("-") == 0) && thisTextBox.SelectionStart == 0))) &&
    		((e.Text.Substring(0, 1) != "-") || (thisTextBox.Text.IndexOf("-") == 0) || thisTextBox.SelectionStart != 0) &&
    		((e.Text.Substring(0, 1) != ".") || (thisTextBox.Text.IndexOf(".") != -1) || (thisTextBox.SelectionStart == 0) || (!Char.IsDigit(thisTextBox.Text.Substring(thisTextBox.SelectionStart - 1, 1), 0)) || ((thisTextBox.Text.IndexOf(",") != -1))) &&
    		((e.Text.Substring(0, 1) != ",") || (thisTextBox.Text.IndexOf(",") != -1) || (thisTextBox.SelectionStart == 0) || (!Char.IsDigit(thisTextBox.Text.Substring(thisTextBox.SelectionStart - 1, 1), 0)) || ((thisTextBox.Text.IndexOf(".") != -1)));
    	
    }

    yamamoto, 13 Апреля 2015

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

    +133

    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
    private void SetTime(DateTime DateAndTime)
            {
                if (SelectedTimeFormat == TimeFormat.Twelve)
                {
                    Hour = Convert.ToInt32(DateAndTime.ToString("hh", DateTimeFormatInfo.InvariantInfo));
                    AmPm = (DateAndTime.ToString("tt", DateTimeFormatInfo.InvariantInfo) == "AM")
                               ? AmPmSpec.AM
                               : AmPmSpec.PM;
                }
                else
                {
                    Hour = Convert.ToInt32(DateAndTime.ToString("HH", DateTimeFormatInfo.InvariantInfo));
                }
                Minute = Convert.ToInt32(DateAndTime.ToString("mm", DateTimeFormatInfo.InvariantInfo));
                Second = AllowSecondEditing
                             ? Convert.ToInt32(DateAndTime.ToString("ss", DateTimeFormatInfo.InvariantInfo))
                             : 0;
                string str = (Minute.ToString().Length == 1) ? ("0" + Minute) : Minute.ToString();
                ViewState["Date"] = Convert.ToDateTime(ViewState["Date"]).ToShortDateString() + " " + Hour + ":" + str +
                                    ":00 " + AmPm;
            }

    Записываем текущие дату и время в вьюстейт...

    Psilon, 09 Апреля 2015

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