/// <summary>
        /// Updates the header.
        /// </summary>
        private void UpdateHeader()
        {
            if (m_charFacWarStats == null)
            {
                return;
            }

            List <int> factionsAgainstEnlisted =
                EveFactionalWarfareStats.GetAgainstFactionIDs(m_charFacWarStats.FactionID).ToList();

            FactionPictureBox.Visible     = !Settings.UI.SafeForWork;
            CorporationPictureBox.Visible = !Settings.UI.SafeForWork;
            FightingPartiesPanel.Visible  = !Settings.UI.SafeForWork || !factionsAgainstEnlisted.Any();

            // Update the images
            ImageService.GetAllianceImageAsync(FactionPictureBox, m_charFacWarStats.FactionID);
            ImageService.GetCorporationImageAsync(CorporationPictureBox, Character.CorporationID);
            ImageService.GetAllianceImageAsync(EnlistedFactionPictureBox, m_charFacWarStats.FactionID);

            if (factionsAgainstEnlisted.Any())
            {
                ImageService.GetAllianceImageAsync(PrimeAgainstFactionPictureBox, factionsAgainstEnlisted[0]);
                ImageService.GetAllianceImageAsync(AllyAgainstFactionPictureBox, factionsAgainstEnlisted[1]);
            }

            // Update the labels
            string highestRankText = m_charFacWarStats.HighestRank > m_charFacWarStats.CurrentRank
                ? $"({GetMilitiaRank(m_charFacWarStats.HighestRank)})"
                : String.Empty;

            TimeSpan timeServed     = DateTime.UtcNow.Subtract(m_charFacWarStats.EnlistedDate);
            string   timeServedText = timeServed < TimeSpan.FromDays(1)
                                        ? "Less than one day."
                                        : $"{timeServed.Days} day{(timeServed.Days > 1 ? "s" : String.Empty)}";

            FactionLabel.Text     = $"Faction: {m_charFacWarStats.FactionName}";
            CorporationLabel.Text = $"Corporation: {Character.CorporationName}";
            RankLabel.Text        = $"Rank: {GetMilitiaRank(m_charFacWarStats.CurrentRank)} {highestRankText}";
            TimeServedLabel.Text  = $"Time served: {timeServedText}";
        }
        /// <summary>
        /// Creates the militia list view sub items.
        /// </summary>
        /// <param name="item">The item.</param>
        private void CreateMilitiaListViewSubItems(ListViewItem item)
        {
            // Exit if EVE factional warfare stats have not yet been updated
            if (!EveFactionalWarfareStats.FactionalWarfareStats.Any())
            {
                return;
            }

            EveFactionWarfareStats amarrFacWarStats =
                EveFactionalWarfareStats.GetFactionalWarfareStatsForFaction(DBConstants.AmarrFactionID);
            EveFactionWarfareStats caldariFacWarStats =
                EveFactionalWarfareStats.GetFactionalWarfareStatsForFaction(DBConstants.CaldariFactionID);
            EveFactionWarfareStats gallenteFacWarStats =
                EveFactionalWarfareStats.GetFactionalWarfareStatsForFaction(DBConstants.GallenteFactionID);
            EveFactionWarfareStats minmatarFacWarStats =
                EveFactionalWarfareStats.GetFactionalWarfareStatsForFaction(DBConstants.MinmatarFactionID);

            // Clear the subitems except the item itself
            for (int i = 1; i < lvMilitia.Columns.Count; i++)
            {
                item.SubItems.RemoveAt(1);
            }

            switch (item.Index)
            {
            case 0:
                item.SubItems.Add(amarrFacWarStats.Pilots.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.Pilots.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.Pilots.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.Pilots.ToNumericString(0));
                break;

            case 1:
                item.SubItems.Add(amarrFacWarStats.SystemsControlled.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.SystemsControlled.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.SystemsControlled.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.SystemsControlled.ToNumericString(0));
                break;

            case 2:
                item.SubItems.Add(amarrFacWarStats.KillsYesterday.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.KillsYesterday.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.KillsYesterday.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.KillsYesterday.ToNumericString(0));
                break;

            case 3:
                item.SubItems.Add(amarrFacWarStats.KillsLastWeek.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.KillsLastWeek.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.KillsLastWeek.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.KillsLastWeek.ToNumericString(0));
                break;

            case 4:
                item.SubItems.Add(amarrFacWarStats.KillsTotal.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.KillsTotal.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.KillsTotal.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.KillsTotal.ToNumericString(0));
                break;

            case 5:
                item.SubItems.Add(amarrFacWarStats.VictoryPointsYesterday.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.VictoryPointsYesterday.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.VictoryPointsYesterday.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.VictoryPointsYesterday.ToNumericString(0));
                break;

            case 6:
                item.SubItems.Add(amarrFacWarStats.VictoryPointsLastWeek.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.VictoryPointsLastWeek.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.VictoryPointsLastWeek.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.VictoryPointsLastWeek.ToNumericString(0));
                break;

            case 7:
                item.SubItems.Add(amarrFacWarStats.VictoryPointsTotal.ToNumericString(0));
                item.SubItems.Add(caldariFacWarStats.VictoryPointsTotal.ToNumericString(0));
                item.SubItems.Add(gallenteFacWarStats.VictoryPointsTotal.ToNumericString(0));
                item.SubItems.Add(minmatarFacWarStats.VictoryPointsTotal.ToNumericString(0));
                break;

            default:
                throw new NotImplementedException();
            }
        }