/// <summary>
 /// Indexes this instance.
 /// </summary>
 /// <returns>Index page</returns>
 public ActionResult Index()
 {
     OrganizationChartPresenter presenter = new OrganizationChartPresenter();
     this.AddBreadcrumbItem(Resources.Assignments, Url.AssignmentsAction());
     this.AddBreadcrumbItem(Resources.OrganizationChart, Url.OrganizationChartAction());
     this.LoadChart(presenter);
     return this.View(presenter);
 }
        /// <summary>
        /// Loads the chart.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        private void LoadChart(OrganizationChartPresenter presenter)
        {
            var developerList = this.developerService.RetrieveList(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID);
            var dic = developerList.ToDictionary(n => n.DeveloperID, n => n);
            developerList.AssignLevel(dic);

            this.developerIDList = developerList.Where(a => a.Level < 3).Select(a => a.DeveloperID).ToList();

            foreach (int developerID in this.developerIDList)
            {
                this.count = 0;
                this.count = developerList.Count(o => o.ManagerID == developerID);
                this.memberCount.Add(developerID, this.count);
            }

            foreach (var developerID in this.memberCount.Keys)
            {
                developerList.Where(a => a.DeveloperID == developerID).ToList().ForEach(b => b.ReportingPersonCount = this.memberCount[developerID]);
            }

            presenter.AssignDeveloperList(developerList);
        }