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

    +2

    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
    internal class DeviceState
    {
        internal string PrimaryState { get; private set; }
        private HashSet<string> _multiplieStates;
    
        // много кода...
    
        internal string[] GetStates()
        {
            string states = PrimaryState;
            if (_multiplieStates.Count > 0)
            {
                states += '|' + string.Join("|", _multiplieStates);
            };
            return states.Split('|');
        }
    }

    spectrezero, 11 Ноября 2018

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

    +1

    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
    public class TransactionRequestViewModel
    {
            public string X_login { get; set; }
    
            public double X_amount { get; set; }
    
            public int X_fp_sequence { get; set; }
    
            public int X_fp_timestamp { get; set; }
    
            public string X_fp_hash { get; set; }
    
            public string X_show_form { get; set; }
    
            public string X_receipt_link_method { get; set; }
    
            public string X_receipt_link_text { get; set; }
    
            public string X_receipt_link_url { get; set; }
    
            public string X_currency_code { get; set; }
    
            public string X_line_item { get; set; }
    }

    Этот "Х" добавляет +80 к читаемости.

    Moses, 19 Октября 2018

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

    0

    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
    public void r_mesg(Message msg, string text)
            {
                bot.SendTextMessageAsync(msg.Chat.Id, text, replyToMessageId: msg.MessageId);
            }
            public void mesg_md(ChatId chatId, string text)
            {
                try { bot.SendTextMessageAsync(chatId, text, ParseMode.Markdown); }
                catch { mesg(chatId, text); }
            }
            public void mesg_html(ChatId chatId, string text)
            {
                try { bot.SendTextMessageAsync(chatId, text, ParseMode.Html); }
                catch { mesg(chatId, text); }
            }
            public void r_mesg_md(Message msg, string text)
            {
                try { bot.SendTextMessageAsync(msg.Chat.Id, text, ParseMode.Markdown, replyToMessageId: msg.MessageId); }
                catch { r_mesg(msg, text); }
            }
            public void r_mesg_html(Message msg, string text)
            {
                try { bot.SendTextMessageAsync(msg.Chat.Id, text, ParseMode.Html, replyToMessageId: msg.MessageId); }
                catch { r_mesg(msg, text); }
            }
    
            public void pic(ChatId chatId, string file)
            {
                bot.SendPhotoAsync(chatId, file);
            }
            public void r_pic(Message msg, string file)
            {
                bot.SendPhotoAsync(msg.Chat.Id, file, replyToMessageId: msg.MessageId);
            }
            public void pic_t(ChatId chatId, string file, string text)
            {
                bot.SendPhotoAsync(chatId, file, caption: text);
            }
            public void pic_t_md(ChatId chatId, string file, string text)
            {
                try { bot.SendPhotoAsync(chatId, file, caption: text, parseMode: ParseMode.Markdown); }
                catch { pic_t(chatId, file, text); }
            }
            public void pic_t_html(ChatId chatId, string file, string text)
            {
                try { bot.SendPhotoAsync(chatId, file, caption: text, parseMode: ParseMode.Html); }
                catch { pic_t(chatId, file, text); }
            }
            public void r_pic_t(Message msg, string file, string text)
            {
                bot.SendPhotoAsync(msg.Chat.Id, file, 
                    caption: text, replyToMessageId: msg.MessageId);
            }
            public void r_pic_t_md(Message msg, string file, string text)
            {
                try {
                    bot.SendPhotoAsync(msg.Chat.Id, file, 
                        caption: text, parseMode: ParseMode.Markdown,
                        replyToMessageId: msg.MessageId);
                }
                catch { r_pic_t(msg, file, text); }
            }
            public void r_pic_t_html(Message msg, string file, string text)
            {
                try {
                    bot.SendPhotoAsync(msg.Chat.Id, file,
                        caption: text, parseMode: ParseMode.Html,
                        replyToMessageId: msg.MessageId);
                }
                catch { r_pic_t(msg, file, text); }
            }

    Jint и скриптовые команды для бота. Ну не удержался и скинул эту хуету

    UND85D, 12 Октября 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static readonly ConcurrentDictionary<Expression, object> CachedFunctions;
    
    public static Func<TEntity, bool> AsFunc<TEntity>(this object entity, Expression<Func<TEntity, bool>> expr)
        where TEntity : class, IEntity
    {
        //@see http://sergeyteplyakov.blogspot.ru/2015/06/lazy-trick-with-concurrentdictionary.html
        return (Func<TEntity, bool>)CachedFunctions.GetOrAdd(expr, id => new Lazy<object>(
            () => CachedFunctions.GetOrAdd(id, expr.Compile())));
    }

    Вот так хорошая идея ломается о кривую реализацию. Вместо того чтобы сохранить в кэш требуемый тип, сохраняем туда Lazy, возвращающий себя же :)

    leff, 11 Октября 2018

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public GlobalSetting ReadGlobalSettingById(string id)
    {
    	int totalItems;
    	var globalSettings = ReadGlobalSettings(PageSetting.All, out totalItems);
    
    	return globalSettings.FirstOrDefault(e => e.GlobalSettingID == id);
    }

    Инновационный алгоритм считывания сущности по ID:
    1) считываем ВСЕ записи из базы в память;
    2) в памяти находим сущность с нужным ID;
    3) все остальное пусть Garbage Collector подберет;
    4) удобно же, не правда ли?)

    Moses, 11 Октября 2018

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

    +2

    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
    private int SortWObyAD(WorkOrderShort wo1, WorkOrderShort wo2)
    {
    	if (wo1.AD == wo2.AD)
    	{
    		return 0;
    	}
    	else if (wo1.AD > wo2.AD)
    	{
    		return 1;
    	}
    	else
    	{
    		return -1;
    	}
    }

    Сразу 2 достоинства:
    1) абсолютно не понятно, что такое AD;
    2) ах да, все это можно было бы заменить одной строкой "return wo1.AD - wo2.AD", т.к. все это будет использоваться в одной из стандартных функций сортировки

    Moses, 11 Октября 2018

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

    +1

    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
    public int GetWorkOrder(...)
    {
    	var wait = 0;
    	const int stepWait = 30;
    	var marker1 = false;
    
    	do
    	{
    		if (marker1 == true) wait = wait + stepWait;
    		...
    		do
    		{
    			marker1 = false;
    			...
    			if (ChoosenWO.Count == 0)
    			{
    				if (counter == postalAreas.Count)
    				{
    					marker1 = true;
    					break;
    				}
    				...
    				counter = counter + 1;
    			}
    			else
    			{
    				...
    			}
    		} while (ChoosenWO.Count == 0);
    
    	} while (wait < ((endDayTime.Hour - DateTime.UtcNow.Hour) * 60 + (endDayTime.Minute - DateTime.UtcNow.Minute)));
    
    	return -1;
    }

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

    Moses, 11 Октября 2018

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // todo '+1' is temporary
    private string CorrectPhoneNumber(string phoneNumber, string countryCode = "+1")
    {
    	if (phoneNumber.Substring(0, 1) != "+")
    	{
    		return string.Format("{0}{1}", phoneNumber.Length == 10 ? countryCode : "+", phoneNumber);
    	}
    
    	return phoneNumber;
    }

    Genious!

    Moses, 11 Октября 2018

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

    +2

    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
    [HttpPost]
            public string PayFromCreditCard(CreditCardViewModel cardInfo, double depositValue)
            {
                try
                {
                    // todo: make real payment
                    return AjaxResult.CreateSuccess();
                }
                catch (Exception exc)
                {
                    return AjaxResult.CreateError(exc.Message);
                }
            }

    Этот код сейчас живет где-то на продакшене...

    Moses, 11 Октября 2018

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

    0

    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
    frm.ShowDialog(); 
    if (frm.DialogResult == DialogResult.OK) 
    { 
    string s = ""; 
    if (frm.chkResident.Checked == true) 
    s = "-ДА-"; 
    else 
    s = "-НЕТ-"; 
    s = "Резидент: " + s + ", страна рождения: " + frm.cmbCountryBirth.Text.Trim() + ", дата рождения: " + frm.dtpBirth.Value.ToShortDateString() + " г., место рождения: " + frm.txtPlaceBorn.Text.Trim() + (char)13 + (char)10; 
    s = s + "тип ДУЛ: " + frm.cmbDUL.Text.Trim() + ", дата выдачи ДУЛ: " + frm.dtpDUL.Value.ToShortDateString() + " г."; 
    if (frm.dtpEndDUL.Value.ToShortDateString() != "01.01.1900") 
    s = s + ", дата окончания ДУЛ: " + frm.dtpEndDUL.Value.ToShortDateString() + " г."; 
    s = s + (char)13 + (char)10; 
    s = s + "Серия и номер ДУЛ: " + frm.txtDUL.Text.Trim() + ", страна выдачи ДУЛ: " + frm.cmbLandDUL.Text.Trim() + ", орган выдачи ДУЛ: " + frm.txtIssue.Text.Trim() + (char)13 + (char)10; 
    
    if (frm.txtDUL2.Text.Trim() != "") 
    { 
    s = s + "тип ДУЛ2: " + frm.cmbDUL2.Text.Trim() + ", дата выдачи ДУЛ2:" + frm.dtpDUL2.Value.ToShortDateString() + " г."; 
    if (frm.dtpEndDUL2.Value.ToShortDateString() != "01.01.1900") 
    s = s + ", дата окончания ДУЛ2: " + frm.dtpEndDUL2.Value.ToShortDateString() + " г."; 
    s = s + (char)13 + (char)10; 
    s = s + "Серия и номер ДУЛ2: " + frm.txtDUL2.Text.Trim() + ", страна выдачи ДУЛ2: " + frm.cmbLandDUL2.Text.Trim() + ", орган выдачи ДУЛ2: " + frm.txtIssue2.Text.Trim() + (char)13 + (char)10; 
    } 
    
    s = s + "---------------------------------------------------------------" + (char)13 + (char)10; 
    s = s + "Адрес:" + (char)13 + (char)10; 
    s = s + "Строка 1:" + frm.txtAddress1.Text.Trim() + (char)13 + (char)10; 
    s = s + "Строка 2:" + frm.txtAddress2.Text.Trim() + (char)13 + (char)10; 
    s = s + "Штат: " + frm.txtState.Text.Trim() + ", нас. пункт: " + frm.txtPunkt.Text.Trim() + ", индекс: " + frm.txtPOSTINDEX.Text.Trim() + ", страна: " + frm.cmbLand.Text.Trim() + (char)13 + (char)10; 
    s = s + "Тел. код: " + frm.cmbPhoneCode.Text.Trim() + ", мобильный номер: " + frm.txtPhone.Text.Trim();

    У меня нет слов...

    awesome3000, 25 Сентября 2018

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