1. Список говнокодов пользователя walash

    Всего: 5

  2. C# / Говнокод #9717

    +109

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private IEnumerable<CharacteristicValue> GetCharacteristicValues(IQueryable<CharacteristicValue> allCharacteristicValues, int characteristicId)
    {
          var characteristicValues = new CharacteristicValue[userIds.Length];
    
           for (var i = 0; i < userIds.Length; i++)
           {
               characteristicValues[i] = allCharacteristicValues.FirstOrDefault(cv => cv.UserId == userIds[i] && cv.CharacteristicId == characteristicId); // Todo: Try to replace with a single query.
           }
    
           return characteristicValues;
    }

    Драсьте, нашёл в коде такую вот какашку. Как видите параметр allCharacteristicsValues реализует интерфейс IQuarable из EF. То бишь каждый раз, когда будет вызываться метод FirstOrDefault будет делаться запрос к базе. В идеале это должно было бы выглядеть так:

    var characteristicValues = allCharacteristicValues.Where(cv => cv.CharacteristicId == characteristicId && userIds.Contains(cv.UserId));

    Но при такой реализации размер масива пользователей и значение может разниться:

    Values:
    val1
    val2
    val3

    Users:
    1
    2
    3
    4
    5

    Для первого же варианта результат будет выглядеть так:
    Values:
    val1
    val2
    val3
    null
    null

    Users:
    1
    2
    3
    4
    5


    Собственно всё )))) Надеюсь подсоветуете чего-нибудь хорошего ;)

    walash, 20 Марта 2012

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

    +115

    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
    ----Something.cs
    public partial class Something
    {
      // some implementation.
    }
    ----Something.Bla.cs
    partial class Something
    {
      private class Bla
      {
      }
    }
    ----Something.Foo.cs
    partial class Something
    {
      private class Foo
      {
      }
    }
    ----Something.Bar.cs
    partial class Something
    {
      private class Bar
      {
      }
    }

    Нормально ли использовать partial классы исключительно для хранения private nested классов? К примеру если количество таковых доходит до 5-15?

    walash, 11 Мая 2011

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

    +117

    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
    public static class EventExtensions
        {
            public static void Fire(this EventHandler eventHandler, object sender)
            {
                eventHandler.Fire(sender, EventArgs.Empty);
            }
    
            public static void Fire(this EventHandler eventHandler, object sender, EventArgs args)
            {
                eventHandler.FireDelegate(sender, args);
            }
    
            public static void Fire<TEA>(this EventHandler<TEA> eventHandler, object sender, TEA args)
                where TEA : EventArgs
            {
                eventHandler .FireDelegate(sender, args);
            }
    
            public static void FireDelegate(this Delegate eventHandler, params object[] parameters)
            {
                if (eventHandler != null)
                {
                    Delegate[] delegates = eventHandler.GetInvocationList();
                    foreach (var del in delegates)
                    {
                        try
                        {
                            del.Method.Invoke(del.Target, parameters);
                        }
                        catch (Exception e)
                        {
                            // use logger here
                            throw;
                        }
                    }
                }
            }
        }

    Надоело писать инвокаторы для ивентов? Как тебе это?

    walash, 21 Февраля 2011

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

    +108

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if (m_Level != value)
                    {
                        if (m_Level != null)
                        {
                            Logger.Unsubscribe(m_Level.Value, Logger_LogEvent);
                        }
                        m_Level = value;
                        if (m_Level != null)
                        {
                            Logger.Subscribe(m_Level.Value, Logger_LogEvent);
                        }
                    }

    Бывает и так. . .

    walash, 03 Декабря 2010

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

    +135.4

    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
    public static BitmapImage ConvertBitmapToBitmapImage(Bitmap bitmap)
            {
                var bitMapImage = new BitmapImage();
                var ms = new MemoryStream();
    
                try
                {
                    bitmap.Save(ms, ImageFormat.Bmp);
                    bitMapImage.BeginInit();
                    bitMapImage.StreamSource = ms;
                    bitMapImage.EndInit();
                }
                catch (NotSupportedException e)
                {
                    try
                    {
                        bitMapImage = new BitmapImage();
                        bitmap.Save(ms, ImageFormat.Png);
                        bitMapImage.BeginInit();
                        bitMapImage.StreamSource = ms;
                        bitMapImage.EndInit();
                    }
                    catch (NotSupportedException e2)
                    {
                        bitMapImage = new BitmapImage();
                        bitmap.Save(ms, ImageFormat.Bmp);
                        ms.Write(ms.ToArray(), 78, (int)(ms.Length - 78));
                        bitMapImage.BeginInit();
                        bitMapImage.StreamSource = ms;
                        bitMapImage.EndInit();
                    }
                }
    
                return bitMapImage;
            }

    wpf + System.Drawing + sql и хз что со всем этим делать )))))

    walash, 28 Декабря 2009

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