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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    protected Boolean GetStatus(VinRequestStatusId statusId, Int16 id)
    {
    	if(statusId == VinRequestStatusId.CarDataNeeded && id == 0)
    		return true;
    	if(statusId == VinRequestStatusId.WaitingClientAnswer && id == 1)
    		return true;
    	return false;
    }

    Разработчику гуя лень было лезть в DAL. Наложил прямо на форме.

    TauSigma, 01 Июля 2013

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

    +132

    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
    public static string[] GetLogicalDrives()
    {
    	// System.Environment.GetLogicalDrives()
    	new EnvironmentPermission(PermissionState.Unrestricted).Demand();
    	// System.IO.Directory.GetLogicalDrives()
    	new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
    
    	int logicalDrives = Win32Native.GetLogicalDrives();
    	if (logicalDrives == 0)
    	{
    		__Error.WinIOError();
    	}
    	uint num = (uint)logicalDrives;
    	int num2 = 0;
    	while (num != 0u)
    	{
    		if ((num & 1u) != 0u)
    		{
    			num2++;
    		}
    		num >>= 1;
    	}
    	string[] array = new string[num2];
    	char[] array2 = new char[]
    	{
    		'A',
    		':',
    		'\\'
    	};
    	num = (uint)logicalDrives;
    	num2 = 0;
    	while (num != 0u)
    	{
    		if ((num & 1u) != 0u)
    		{
    			array[num2++] = new string(array2);
    		}
    		num >>= 1;
    		char[] expr_6E_cp_0 = array2;
    		int expr_6E_cp_1 = 0;
    		expr_6E_cp_0[expr_6E_cp_1] += '\u0001';
    	}
    	return array;
    }

    Копался сегодня в дебрях .NET'а и нашёл 2 метода получения списка дисков:
    System.Environment.GetLogicalDrives() и System.IO.Directory.GetLogicalDrives()
    Различается код только первой срокой запроса разрешений.

    Если один метод устарел-бы, то можно было его форварднуть через атрибут TypeForwardedTo.
    Или хотя-бы объединить код вынеся запрос разрешений.

    Оба метода доступны ещё с .NET 1.1. Но вот класс DriveInfo, который появился только в .NET 2.0 использует метод Directory.GetLogicalDrives()

    Это такая "фича" с копипастом кода или тут есть какой-то сакральный смысл?

    TauSigma, 25 Июня 2013

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

    +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
    22. 22
    23. 23
    24. 24
    private bool IsSubscriptionFree()
    {
        try
        {
            if (AccountManager.CurrentManager.CurrentSubscription != null)
            {
                if (AccountManager.CurrentManager.CurrentSubscription.IsValid)
                {
                    if (AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("free") ||
                        AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("trial")
                    )
                    {
                        return true;
                    }
                }
                return false;
            }
            return false;
        }
        catch (Exception)
        {
            return false;
        }
    }

    Eugene, 25 Июня 2013

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

    +140

    1. 1
    2. 2
    3. 3
    innotracOrder.OrderShipTo = new PostOrderBatchRequestOrderBatchCustomerOrderOrderShipTo[] { innotracShipTo };
                var innotracPayment = new PostOrderBatchRequestOrderBatchCustomerOrderPayment();
                var innotracCreditCard = new PostOrderBatchRequestOrderBatchCustomerOrderPaymentCreditCard();

    Код древних ацтеков

    startrack, 21 Июня 2013

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

    +129

    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
    static string BuildPostData(IDictionary<string, string> d)
    {
            var s = "";
            for (var i = 0; i < d.Count; i++)
            {
                 var item = d.ElementAt(i);
                 var key = item.Key;
                 var val = item.Value;
    
                 s += String.Format("{0}={1}", key, HttpUtility.UrlEncode(val));
    
                 if (i != d.Count - 1)
                     s += "&";
            }
            return s;
    }

    Встретил вот такое.... переписал кодом ниже. Меньше мусора и работает намного быстрее.
    static string BuildPostData(IEnumerable<KeyValuePair<s tring, string>> d)
    {
    return string.Join("&", d.Select(i => string.Format(CultureProvider.Common, "{0}={1}", i.Key, HttpUtility.UrlEncode(i.Value))));
    }

    indigo_projects, 19 Июня 2013

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

    +134

    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
    while (true)
    {
     try
     {
      MapControlStatic.Remove(MapControlStatic.First(o => o.Value.thisControl == c).Key);
     }
     catch
     {
       break;
     }
    }
    
    while (true)
    {
     try
     {
      MapControlStatic.Remove(MapControlStatic.First(o => o.Value.Childs.Contains(c)).Key);
     }
     catch
     {
       break;
     }
    }

    taburetka, 17 Июня 2013

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

    +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
    int sum = 100;
                int sch = 0;
    
                for (int a50 = 0; a50 <= sum / 50; a50++)
                {
                    for (int a25 = 0; a25 <= (sum - a50 * 50) / 25; a25++)
                    {
                        for (int a10 = 0; a10 <= (sum - a50 * 50 - a25 * 25) / 10; a10++)
                        {
                            for (int a5 = 0; a5 <= (sum - a50 * 50 - a25 * 25 - a10 * 10) / 5; a5++)
                            {
                                sch++;
                            }
                        }
                    }
                }
     
    Console.WriteLine(Convert.ToString(sch));

    Задача: Подсчитайте сколькими способами можно разменять 1 доллар монетами достоинством 1, 5, 10, 25 и 50 центов. Решать можно как угодно - в лоб перебором, или в общем случае (для произвольной суммы размера и набора монет).

    У кого какие варианты еще будут?)

    ipro, 14 Июня 2013

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

    +128

    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
    Block oneBlock = null;
    for (int i = 0; i < this.ChildrenCount; i++)
    {
        Block block = this.GetChild(i);
        if (!(block is PlaceToAddBlock)) //это проверка имеет ли объект тип PlaceToAddBlock
        {
            if (oneBlock == null)
            {
                oneBlock = block;
            }
            else
            {
                oneBlock = null;
                break;
            }
        }
    }
    if (oneBlock != null)
    {
        return null;
    }

    Проверяем, нет ли, случаем, в коллекции двух объектов, не относящихся к классу PlaceToAddBlock

    dormendo, 14 Июня 2013

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

    +104

    1. 1
    2. 2
    || Request.UserAgent.ToLower().Contains("WindowsPhone")
                    || Request.UserAgent.ToLower().Contains("LG"))

    Пытаемся определить с мобильного ли устройства заходим на сайт. :)

    kore_sar, 14 Июня 2013

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

    +126

    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
    string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
    
        // This method finds the day or returns -1
        private int GetDay(string testDay)
        {
            int i = 0;
            foreach (string day in days)
            {
                if (day == testDay)
                {
                    return i;
                }
                i++;
            }
            return -1;
        }

    http://msdn.microsoft.com/en-us/library/2549tw02%28v=vs.80%29.aspx
    Я, мягко говоря, прифигел с этого. Одно дело, если бы это была какая-нибудь лаба, но это, блиать, целый велосипед вместо одного единственного Array.IndexOf, да ещё и в таком общедоступном месте...

    RaZeR, 13 Июня 2013

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