/// <summary> /// Render the story. /// </summary> /// <param name="story">The story.</param> /// <param name="allTasks">All tasks.</param> /// <returns></returns> private string RenderStory(Story story, ICollection<Task> allTasks) { StringBuilder sb = new StringBuilder(); SprintStory ss = sprint.GetSprintStoryFor(story); string priority = "<img src='/content/images/moscow_unknown.png' title='Unknown'/>"; string prioritycss = "sunknown"; sb.AppendLine("<li class='storyli'>"); sb.AppendLine("<div class='sheader'>"); if (ss != null) { switch (ss.SprintBacklogPriority) { case Priority.Must: priority = "<img src='/content/images/moscow_must.png' title='Must'/>"; prioritycss = "smust"; break; case Priority.Should: priority = "<img src='/content/images/moscow_should.png' title='Should'/>"; prioritycss = "sshould"; break; case Priority.Could: priority = "<img src='/content/images/moscow_could.png' title='Could'/>"; prioritycss = "scould"; break; case Priority.Would: priority = "<img src='/content/images/moscow_wont.png' title='Won't'/>"; prioritycss = "swont"; break; case Priority.Unknown: break; default: throw new ArgumentOutOfRangeException(); } } sb.AppendFormat("<span class='moscow'>{0}</span>{1}", priority, story.Title); sb.AppendFormat("<span class='time'>{0}</span>", OpmaakHelper.UrenStatus(story.Estimation, story.TotalTimeSpent())); sb.AppendLine("</div>"); sb.AppendFormat("<div class='stext'>{0}</div>", RenderMarkdown(story.Description)); sb.AppendFormat("<div class='stasks {0}'>", prioritycss); sb.AppendLine("<ul class='tasklist'>"); foreach (Task task in story.Tasks) { if (allTasks.Contains(task)) { sb.AppendLine(RenderTask(task)); } } sb.AppendLine("</ul>"); sb.AppendLine("</div>"); sb.AppendLine("</li>"); return sb.ToString(); }