public void RenderQualifications(HtmlTextWriter writer, int selectedRankID) { // Get the data var goalsService = new RankQualificationGoalsService(); var goals = goalsService.GetRankQualificationGoals(Identity.Current.CustomerID, ViewingRankID); // Render the name of the rank we are viewing writer.Write("<h1 class='color2'>{0}</h1>", ViewingRankDescription); // Render the percent complete var percentComplete = goals.TotalPercentComplete; if(percentComplete == 100) { writer.Write(string.Format("<span class='label label-success'>Qualified</span>")); } else { writer.Write(string.Format("<span class='label label-important'>{0:N0}% Complete</span>", percentComplete)); } // Start with the decimal qualifications writer.Write("<div class='row-fluid'>"); writer.Write("<span class='span8'>"); writer.Write("<h3>My Goals</h3>"); var falseDecimalGoals = goals.RankQualifications.Where(c => !c.IsBoolean && c.IsQualified == false); foreach(var goal in falseDecimalGoals) { writer.Write(string.Format(@" <div class='goal'> <div class='row-fluid'> <span class='span10'> <span class='description'>{0}</span> <div class='progress {1}'> <div class='bar' style='width: {2:0}%;'></div> </div> <span class='totals'>{3:N0} / {4:N0}</span> </span> <span class='span2'> <span class='percent'>{2:N0}%</span> </span> </div> </div> ", goal.Label, goal.GetProgressBarColorClass(), goal.RequiredToActualAsPercent, goal.ActualValueAsDecimal, goal.RequiredValueAsDecimal)); } writer.Write("</span>"); // Now, render all the non-qualified description var falseGoals = goals.RankQualifications.Where(c => c.IsQualified == false); writer.Write("<span class='span4'>"); writer.Write("<h3>What's Left?</h3>"); writer.Write("<ul class='tips'>"); foreach(var goal in falseGoals) { writer.Write(string.Format(@" <li>{0}</li> ", goal.NotQualifiedDescription)); } writer.Write("</ul>"); writer.Write("</span>"); writer.Write("</div>"); }
private void RenderBusinessSnapshot(HtmlTextWriter writer, int customerID) { var html = new StringBuilder(); var service = new RankQualificationGoalsService(); // Get the data try { var rankID = 1; var rank = ExigoApiContext.CreateODataContext().Customers .Where(c => c.CustomerID == customerID) .Select(c => new { c.RankID }) .FirstOrDefault(); if (rank != null) rankID = rank.RankID; // Compile the Html var response = service.GetRankQualificationGoals(customerID, rankID); var qualifications = response.RankQualifications; var decimalQualifications = qualifications.Where(c => c.IsBoolean == false).ToList(); var totalPercentComplete = response.TotalPercentComplete; html.AppendFormat("<div class='progress-upperlabel progress-upperlabel-large'>{0}</div>", response.RankDescription); html.AppendFormat("<div class='progress progress-info progress-striped active'>"); html.AppendFormat("<div class='bar' style='width: {0:0}%'></div>", totalPercentComplete); html.AppendFormat("</div>"); html.AppendFormat("<div class='progress-lowerlabel'>{0:0}% Complete</div>", totalPercentComplete); html.AppendFormat("<hr />"); foreach (var qual in decimalQualifications) { html.AppendFormat("<div class='progressbarwrapper'>"); html.AppendFormat("<div class='progress-upperlabel'>{0}</div>", qual.Label); html.AppendFormat("<div class='progress progress-thin progress-warning'>"); html.AppendFormat("<div class='bar' style='width: {0:0}%'></div>", qual.RequiredToActualAsPercent); html.AppendFormat("</div>"); html.AppendFormat("<div class='progress-lowerlabel pull-left'>{0:N0} / {1:N0}</div>", qual.ActualValueAsDecimal, qual.RequiredValueAsDecimal); html.AppendFormat("<div class='progress-lowerlabel pull-right'>{0:0}% Complete</div>", qual.RequiredToActualAsPercent); html.AppendFormat("<div class='clearfix'></div>"); html.AppendFormat("</div>"); } } catch (Exception exception) { writer.Write(exception.Message); } writer.Write(html.ToString()); }
public string GetRankAdvancementWidgetHTML(int rankID) { var html = new StringBuilder(); // Get the data var goalsService = new RankQualificationGoalsService(); var goals = goalsService.GetRankQualificationGoals(Identity.Current.CustomerID, rankID); html.AppendFormat("<a href='javascript:loadRankAdvancement({0});' class='previous'><img src='Assets/Images/btnArrowLeftWhite.png' /></a>", goals.PreviousRankID); html.AppendFormat("<a href='javascript:loadRankAdvancement({0});' class='next'><img src='Assets/Images/btnArrowRightWhite.png' /></a>", goals.NextRankID); html.AppendFormat("<div class='content'>"); html.AppendFormat("<h3>{0}</h3>", goals.RankDescription); // Progress Bar html.AppendFormat("<div class='progress progress-danger'>"); html.AppendFormat("<div class='bar' style='width: 60%'></div>"); html.AppendFormat("</div>"); // Render the percent complete html.AppendFormat("<div class='row-fluid'>"); html.AppendFormat("<span class='span4 percent'>"); html.AppendFormat("<h4>{0:0}%</h4>", goals.TotalPercentComplete); html.AppendFormat("</span>"); // Render the remaining decimal goal qualifications html.AppendFormat("<span class='span8 goals'>"); foreach(var goal in goals.RankQualifications.Where(c => !c.IsBoolean).Where(c => !c.IsQualified)) { html.AppendFormat("<div class='goal'>"); html.AppendFormat("<div class='description'>{0}</div>", goal.Label); html.AppendFormat("<div class='progress progress-warning'>"); html.AppendFormat("<div class='bar' style='width: {0:0}%'></div>", goal.RequiredToActualAsPercent); html.AppendFormat("</div>"); html.AppendFormat("<div class='stats'>{0:N0} / {1:N0}</div>", goal.ActualValue, goal.RequiredValue); html.AppendFormat("<div class='clearfix'></div>"); html.AppendFormat("</div>"); } // Render the remaining boolean goal qualifications html.AppendFormat("<ul>"); foreach(var goal in goals.RankQualifications.Where(c => c.IsBoolean).Where(c => !c.IsQualified)) { html.AppendFormat("<li>{0}</li>", goal.NotQualifiedDescription); } html.AppendFormat("</ul>"); html.AppendFormat("</span>"); html.AppendFormat("</div>"); html.AppendFormat("</div>"); return html.ToString(); }