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

    +107

    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
    private PostsPageViewModel GetUserPosts(Guid userId, int? pageIndex)
    {
    	var posts = entitiesDB.Posts
    		.Where(post => post.UserId == userId)
    		.OrderByDescending(p => p.DateCreated)
    		.Select(post => new PostViewModel()
    		{ 
    			Contents = post.Contents, 
    			DateCreated = post.DateCreated, 
    			PostId = post.PostId, 
    			AuthorId = userId,
    			AssociatedTags = post.Tags.Select(t => new TagViewModel() { TagId = t.TagId, Contents = t.Contents }).ToList()
    		})
    		.ToPagedList(pageIndex ?? 1, 10);
    
    	PostsPageViewModel viewModel = new PostsPageViewModel()
    	{
    		Posts = posts,
    		RouteValues = new { controller = "Posts", action = "UserPosts" }
    	};
    
    	return viewModel;
    }

    Проект под ASP.NET MVC. Метод должен вернуть в вид заданную страницу постов из базы для заданного юзверя, посортить и прицепить ассоциированные с сообщением теги. Мало того, что это всё в одном операторе, так оно ещё и крашится.

    eigenein, 06 Июля 2010

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

    +116

    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
    public void Parse(string sqlScript)
    {
    	batches = new List<string>();
    	State state = State.WaitingGO;
    	StartNewBatch();
    	for(position = 0; position < sqlScript.Length; position++)
    	{
    		char c = sqlScript[position];
    		if(state == State.WaitingGO)
    		{
    			PutToBuffer(c);
    			if(IsWhiteSpace(c) || IsEndOfLineCharacter(c)) continue;
    			else if(c == 'g' || c == 'G') state = State.ReadingGO;
    			else
    			{
    				state = State.ReadingBatch;
    				FlushBuffer();
    			}
    		}
    		else if(state == State.ReadingGO)
    		{
    			PutToBuffer(c);
    			if(c == 'o' || c == 'O') state = State.ReadedGO;
    			else if(IsEndOfLineCharacter(c))
    			{
    				state = State.WaitingGO;
    				FlushBuffer();
    			}
    			else
    			{
    				state = State.ReadingBatch;
    				FlushBuffer();
    			}
    		}
    		else if(state == State.ReadedGO)
    		{
    			if(IsWhiteSpace(c) || IsEndOfLineCharacter(c))
    			{
    				state = State.WaitingGO;
    				FinishBatch();
    				StartNewBatch();
    			}
    			else
    			{
    				state = State.ReadingBatch;
    				PutToBuffer(c);
    				FlushBuffer();
    			}
    		}
    		else if(state == State.ReadingBatch)
    		{
    			PutToBatch(c);
    			if(IsEndOfLineCharacter(c)) state = State.WaitingGO;
    		}
    	}
    	if(state != State.ReadedGO) FlushBuffer();
    	FinishBatch();
    }
    
    private enum State
    {
    	WaitingGO,
    	ReadingGO,
    	ReadedGO,
    	ReadingBatch
    }

    Требовалось распарсить string с sql-текстом на отдельные транзакции (т.е. просто разбить текст по go).
    Функции для работы с Batch-ем не привожу и так уйма говнокода

    FedorFo, 02 Июля 2010

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

    +102

    1. 1
    2. 2
    3. 3
    long First = 2* ... ;
    long Second = 2* ... ;
    long Average = (First + Second) / 2

    1.як не треба рахувати середнє арифметичне.
    2.БАЯН.

    O_O, 02 Июля 2010

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

    +124

    1. 1
    long toPageEmail = --emailToEmailFrom + 1;

    //Писалось сквозь закрытые глаза, в 6 утра.

    BlincAttack, 01 Июля 2010

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

    +141

    1. 1
    2. 2
    3. 3
    if(i.ToString()==j.ToString())
    {
    //...

    Из моей детсадовской лабы. С тех пор я профессионально вырос.

    Wеbkill, 28 Июня 2010

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

    +136

    1. 1
    if (this.Visible || this.Invisible)

    обнаружено в коде коммерческой CMS

    mozg_raka, 25 Июня 2010

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

    +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
    private int? ID {
    	set {
    		if (ViewState["ID"] != null)
    			ViewState["ID"] = value;
    		else
    			ViewState.Add("ID", value);
    	}
    	get {
    		if (ViewState["ID"] != null)
    			return Convert.ToInt32(ViewState["ID"]);
    		else
    			return null;
    	}
    }

    Back, 24 Июня 2010

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

    +120

    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
    protected void GridView1_PreRender(object sender, EventArgs e)
        {         
             System.Drawing.Color OddGridColor = new System.Drawing.Color();
             OddGridColor = System.Drawing.Color.FromArgb(0xD3, 0xDE, 0xEF);
             System.Drawing.Color EvenGridColor = new System.Drawing.Color();
             EvenGridColor = System.Drawing.Color.FromArgb(0xEC, 0xE9, 0xD8);
    
                for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                      if (i % 2 == 1)
                      {
                          GridView1.Rows[i].BackColor = OddGridColor;
                      }
                      else
                      {
                          GridView1.Rows[i].BackColor = EvenGridColor;
                      }
                 }
        }

    the way of change GridView color through one ...
    Why do not use <AlternatingRowStyle> ?!!

    O_O, 23 Июня 2010

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

    +125

    1. 1
    2. 2
    3. 3
    int platform = (int) Environment.OSVersion.Platform;
    if (platform != 4 && platform != 128)
          return;

    Из gbrainy (входит в поставку Ubuntu 10.04), причём это рекомендованный самим Мигелем де Иказой подход.
    Экскурс: в кроссплатформенном™ фреймворке MS .NET 1.0/1.1® в энумерации PlatformID не было ничего кроме Windows'ов (Linux в паре мест официально числился Invalid). Ребята из моно кустарно добавили PlatformID.Unix == 128. Затем в MS. NET 2.0 всё-таки открыли для себя Mac OS X и Unix, но проставили PlatformID.Unix == 4. Благими намерениями вымощена дорога в к говнокоду :)

    cfdev, 22 Июня 2010

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

    +118

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static IEnumerable<Tuple<A1, A2, A3, A4>> 
    			CrossProduct<A1, A2, A3, A4>
    			(IEnumerable<A1> arg1, IEnumerable<A2> arg2,
    			IEnumerable<A3> arg3, IEnumerable<A4> arg4)
    		{
    			foreach (var a1 in arg1)
    				foreach (var a2 in arg2)
    					foreach (var a3 in arg3)
    						foreach (var a4 in arg4)
    							yield return Make.Tuple(a1, a2, a3, a4);
    		}

    Интересно, а что этот человек будет делать, когда нужно будет n ступенек? :-)

    tinynick, 21 Июня 2010

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