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());
    }
Example #3
0
    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();
    }