public void Add(MissionState ms, bool previousmissions, string search) { bool show = true; if (panelButtons.Visible) { DateTime startdateutc = customDateTimePickerStart.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(customDateTimePickerStart.Value) : new DateTime(1980, 1, 1); DateTime enddateutc = customDateTimePickerEnd.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(customDateTimePickerEnd.Value) : new DateTime(8999, 1, 1); show = DateTime.Compare(ms.Mission.EventTimeUTC, startdateutc) >= 0 && DateTime.Compare(ms.Mission.EventTimeUTC, enddateutc) <= 0; } if (show) { string[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.LocalisedName), EDDConfig.Instance.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC).ToString(), EDDConfig.Instance.ConvertTimeToSelectedFromUTC(ms.Mission.Expiry).ToString(), ms.OriginatingSystem + ": " + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, previousmissions ? ms.StateText : ms.Mission.Reward.GetValueOrDefault().ToString("N0"), ms.MissionInfoColumn() }; if (search.HasChars()) { if (Array.Find(rowobj, x => x.Contains(search, StringComparison.InvariantCultureIgnoreCase)) == null) { return; } } if (ms.State == MissionState.StateTypes.Abandoned) { abandonded++; } else if (ms.State == MissionState.StateTypes.Completed) { completed++; } else if (ms.State == MissionState.StateTypes.Failed) { failed++; } if (previousmissions) { totalreward += ms.Value; } else if (ms.Mission.Reward.HasValue) { totalreward += ms.Mission.Reward.Value; } var row = dataGridView.RowTemplate.Clone() as DataGridViewRow; row.CreateCells(dataGridView, rowobj); row.Tag = ms; dataGridView.Rows.Add(row); } }
private JArray MissionInfo(MissionState ms, bool previousmissions) { JArray e = new JArray { JournalFieldNaming.ShortenMissionName(ms.Mission.LocalisedName), EDDConfig.Instance.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC).ToString(), EDDConfig.Instance.ConvertTimeToSelectedFromUTC(ms.Mission.Expiry).ToString(), ms.OriginatingSystem + ": " + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, previousmissions ? ms.StateText : ms.Mission.Reward.GetValueOrDefault().ToString("N0"), ms.MissionInfoColumn() }; return(e); }
private void Display(HistoryEntry he, HistoryList hl, bool selectedEntry) { //System.Diagnostics.Debug.WriteLine("SI:Display "); if (neverdisplayed) { UpdateViewOnSelection(); // then turn the right ones on neverdisplayed = false; } last_he = he; if (last_he != null) { SetControlText(he.System.Name); HistoryEntry lastfsd = hl.GetLastHistoryEntry(x => x.journalEntry is EliteDangerousCore.JournalEvents.JournalFSDJump, he); textBoxSystem.Text = he.System.Name; panelFD.BackgroundImage = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover) ? EDDiscovery.Icons.Controls.firstdiscover : EDDiscovery.Icons.Controls.notfirstdiscover; discoveryform.history.FillEDSM(he); // Fill in any EDSM info we have //textBoxBody.Text = he.WhereAmI + ((he.IsInHyperSpace) ? " (HS)": ""); textBoxBody.Text = he.WhereAmI + " (" + he.BodyType + ")"; if (he.System.HasCoordinate) // cursystem has them? { string SingleCoordinateFormat = "0.##"; string separ = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator + " "; textBoxPosition.Text = he.System.X.ToString(SingleCoordinateFormat) + separ + he.System.Y.ToString(SingleCoordinateFormat) + separ + he.System.Z.ToString(SingleCoordinateFormat); ISystem homesys = EDCommander.Current.HomeSystemIOrSol; textBoxHomeDist.Text = he.System.Distance(homesys).ToString(SingleCoordinateFormat); textBoxSolDist.Text = he.System.Distance(0, 0, 0).ToString(SingleCoordinateFormat); } else { textBoxPosition.Text = "?"; textBoxHomeDist.Text = ""; textBoxSolDist.Text = ""; } int count = discoveryform.history.GetVisitsCount(he.System.Name); textBoxVisits.Text = count.ToString(); bool enableedddross = (he.System.EDDBID > 0); // Only enable eddb/ross for system that it knows about buttonRoss.Enabled = buttonEDDB.Enabled = enableedddross; string allegiance, economy, gov, faction, factionstate, security; hl.ReturnSystemInfo(he, out allegiance, out economy, out gov, out faction, out factionstate, out security); textBoxAllegiance.Text = allegiance; textBoxEconomy.Text = economy; textBoxGovernment.Text = gov; textBoxState.Text = factionstate; List <MissionState> mcurrent = (from MissionState ms in he.MissionList.Missions.Values where ms.InProgressDateTime(last_he.EventTimeUTC) orderby ms.Mission.EventTimeUTC descending select ms).ToList(); if (mcurrent == null || mcurrent.Count == 0) { richTextBoxScrollMissions.Text = "No Missions".T(EDTx.UserControlSysInfo_NoMissions); } else { string t = ""; foreach (MissionState ms in mcurrent) { t = ObjectExtensionsStrings.AppendPrePad(t, JournalFieldNaming.ShortenMissionName(ms.Mission.Name) + " Exp:" + (EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.Expiry : ms.Mission.Expiry.ToLocalTime()) + " @ " + ms.DestinationSystemStation(), Environment.NewLine); } richTextBoxScrollMissions.Text = t; } SetNote(he.snc != null ? he.snc.Note : ""); textBoxGameMode.Text = he.GameModeGroup; if (he.isTravelling) { textBoxTravelDist.Text = he.TravelledDistance.ToStringInvariant("0.0") + "ly"; textBoxTravelTime.Text = he.TravelledSeconds.ToString(); textBoxTravelJumps.Text = he.TravelledJumpsAndMisses; } else { textBoxTravelDist.Text = textBoxTravelTime.Text = textBoxTravelJumps.Text = ""; } int cc = (he.ShipInformation) != null?he.ShipInformation.CargoCapacity() : 0; if (cc > 0) { textBoxCargo.Text = he.MaterialCommodity.CargoCount.ToStringInvariant() + "/" + cc.ToStringInvariant(); } else { textBoxCargo.Text = he.MaterialCommodity.CargoCount.ToStringInvariant(); } textBoxMaterials.Text = he.MaterialCommodity.MaterialsCount.ToStringInvariant(); textBoxData.Text = he.MaterialCommodity.DataCount.ToStringInvariant(); textBoxCredits.Text = he.Credits.ToString("N0"); textBoxJumpRange.Text = ""; if (he.ShipInformation != null) { ShipInformation si = he.ShipInformation; textBoxShip.Text = si.ShipFullInfo(cargo: false, fuel: false); if (si.FuelCapacity > 0 && si.FuelLevel > 0) { textBoxFuel.Text = si.FuelLevel.ToStringInvariant("0.#") + "/" + si.FuelCapacity.ToStringInvariant("0.#"); } else if (si.FuelCapacity > 0) { textBoxFuel.Text = si.FuelCapacity.ToStringInvariant("0.#"); } else { textBoxFuel.Text = "N/A".T(EDTx.UserControlSysInfo_NA); } EliteDangerousCalculations.FSDSpec fsd = si.GetFSDSpec(); if (fsd != null) { EliteDangerousCalculations.FSDSpec.JumpInfo ji = fsd.GetJumpInfo(he.MaterialCommodity.CargoCount, si.ModuleMass() + si.HullMass(), si.FuelLevel, si.FuelCapacity / 2); //System.Diagnostics.Debug.WriteLine("Jump range " + si.FuelLevel + " " + si.FuelCapacity + " " + ji.cursinglejump); textBoxJumpRange.Text = ji.cursinglejump.ToString("N2") + "ly"; } } else { textBoxShip.Text = textBoxFuel.Text = ""; } RefreshTargetDisplay(this); } else { SetControlText(""); textBoxSystem.Text = textBoxBody.Text = textBoxPosition.Text = textBoxAllegiance.Text = textBoxEconomy.Text = textBoxGovernment.Text = textBoxVisits.Text = textBoxState.Text = textBoxHomeDist.Text = textBoxSolDist.Text = textBoxGameMode.Text = textBoxTravelDist.Text = textBoxTravelTime.Text = textBoxTravelJumps.Text = textBoxCargo.Text = textBoxMaterials.Text = textBoxData.Text = textBoxShip.Text = textBoxFuel.Text = ""; buttonRoss.Enabled = buttonEDDB.Enabled = false; SetNote(""); } }
private void Display() { MissionList ml = last_he?.MissionList; dataGridViewCurrent.Rows.Clear(); dataGridViewPrevious.Rows.Clear(); if (ml != null) { DateTime hetime = last_he.EventTimeUTC; List <MissionState> mcurrent = (from MissionState ms in ml.Missions.Values where ms.InProgressDateTime(hetime) orderby ms.Mission.EventTimeUTC descending select ms).ToList(); var totalReward = 0; foreach (MissionState ms in mcurrent) { object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name), EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal, EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.Expiry : ms.Mission.Expiry.ToLocalTime(), ms.OriginatingSystem + ":" + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, ms.Mission.Reward.GetValueOrDefault().ToString("N0"), ms.Info() }; if (ms.Mission.Reward.HasValue) { totalReward += ms.Mission.Reward.Value; } int rowno = dataGridViewCurrent.Rows.Add(rowobj); dataGridViewCurrent.Rows[rowno].Tag = ms; } int count = mcurrent.Count(); cColName.HeaderText = (count > 0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission")) : "Name"; cColValue.HeaderText = (totalReward != 0) ? $"Value (cr):\n{totalReward:N0}" : "Value (cr)"; // cColValue.HeaderText = (count>0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission") + (totalReward>0 ? $", {totalReward:N0}" : "")) : "Value"; List <MissionState> mprev = (from MissionState ms in ml.Missions.Values where !ms.InProgressDateTime(hetime) orderby ms.Mission.EventTimeUTC descending select ms).ToList(); DateTime startdate = customDateTimePickerStart.Checked ? customDateTimePickerStart.Value : new DateTime(1980, 1, 1); DateTime enddate = customDateTimePickerEnd.Checked ? customDateTimePickerEnd.Value : new DateTime(2999, 1, 1); long value = 0; int completed = 0, abandonded = 0, failed = 0; foreach (MissionState ms in mprev) { int cmps = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, startdate) : DateTime.Compare(ms.Mission.EventTimeLocal, startdate); //System.Diagnostics.Debug.WriteLine(ms.Mission.EventTimeUTC.ToString() + " " + startdate.ToString() + " " + cmps); if (cmps >= 0) { int cmpe = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, enddate) : DateTime.Compare(ms.Mission.EventTimeLocal, enddate); if (cmpe <= 0) { if (ms.State == MissionState.StateTypes.Abandoned) { abandonded++; } else if (ms.State == MissionState.StateTypes.Completed) { completed++; } else if (ms.State == MissionState.StateTypes.Failed) { failed++; } object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name), EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal, EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.MissionEndTime : ms.MissionEndTime.ToLocalTime(), ms.OriginatingSystem + ":" + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, ms.StateText, ms.Info() }; int rowno = dataGridViewPrevious.Rows.Add(rowobj); dataGridViewPrevious.Rows[rowno].Tag = ms; value += ms.Value; } } } labelValue.Visible = (value != 0); labelValue.Text = "Value: " + value.ToStringInvariant() + " C:" + completed.ToStringInvariant() + " A:" + abandonded.ToStringInvariant() + " F:" + failed.ToStringInvariant(); } }
private void Display(HistoryEntry he) { currentHE = he; MissionList ml = currentHE?.MissionList; pictureBox.ClearImageList(); if (ml != null) { Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? Color.Transparent : this.BackColor; DateTime hetime = currentHE.EventTimeUTC; List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime); int vpos = 4; Font displayfont = discoveryform.theme.GetFont; foreach (MissionState ms in mcurrent) { string text = ""; if (missionNameToolStripMenuItem.Checked) { text += JournalFieldNaming.ShortenMissionName(ms.Mission.Name); } if (missionDescriptionToolStripMenuItem.Checked && ms.Mission.LocalisedName.HasChars()) { text = text.AppendPrePad(ms.Mission.LocalisedName, ", "); } if (startDateToolStripMenuItem.Checked) { text = text.AppendPrePad(EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC).ToString(), ", "); } if (endDateToolStripMenuItem.Checked) { text = text.AppendPrePad(EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.Expiry).ToString(), startDateToolStripMenuItem.Checked ? "-" : ", "); } string mainpart = BaseUtils.FieldBuilder.Build( "< ", ms.DestinationSystemStation(), " ", factionInformationToolStripMenuItem.Checked ? ms.Mission.TargetFaction : null, "< ", ms.Mission.TargetLocalised, "< ", ms.Mission.KillCount?.ToString("N") ?? null, " ", ms.Mission.CommodityLocalised, "< ", ms.Mission.Count, " Left ".T(EDTx.UserControlMissionOverlay_IL), ms.CargoDepot?.ItemsToGo ); text = text.AppendPrePad(mainpart, ", "); if (rewardToolStripMenuItem.Checked && ms.Mission.Reward.HasValue && ms.Mission.Reward > 0) { text = text.AppendPrePad(BaseUtils.FieldBuilder.Build(" ;cr", ms.Mission.Reward.GetValueOrDefault().ToString("N0")), ", "); } StringFormat frmt = new StringFormat(); var ie = pictureBox.AddTextAutoSize(new Point(10, vpos), new Size(this.Width - 20, this.Height), text, displayfont, textcolour, backcolour, 1.0F, frmt: frmt); vpos = ie.pos.Bottom + displayfont.ScalePixels(4); } } pictureBox.Render(); }
private void Display() { MissionList ml = last_he?.MissionList; DataGridViewColumn sortcolprev = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortedColumn : dataGridViewPrevious.Columns[1]; SortOrder sortorderprev = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortOrder : SortOrder.Descending; DataGridViewColumn sortcolcur = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortedColumn : dataGridViewCurrent.Columns[1]; SortOrder sortordercur = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortOrder : SortOrder.Descending; dataGridViewCurrent.Rows.Clear(); dataGridViewPrevious.Rows.Clear(); if (ml != null) { DateTime hetime = last_he.EventTimeUTC; List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime); var totalReward = 0; foreach (MissionState ms in mcurrent) { object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name), EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal, EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.Expiry : ms.Mission.Expiry.ToLocalTime(), ms.OriginatingSystem + ":" + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, ms.Mission.Reward.GetValueOrDefault().ToString("N0"), ms.Info() }; if (ms.Mission.Reward.HasValue) { totalReward += ms.Mission.Reward.Value; } int rowno = dataGridViewCurrent.Rows.Add(rowobj); dataGridViewCurrent.Rows[rowno].Tag = ms; } int count = mcurrent.Count(); cColName.HeaderText = (count > 0) ? (count.ToStringInvariant() + (count > 1 ? " Missions".Tx(this, "MPlural") : " Mission".Tx(this, "MSingular"))) : "Name".Tx(this, "Name"); cColValue.HeaderText = (totalReward != 0) ? string.Format("Value (cr):\n{0:N0}".Tx(this, "Value"), totalReward) : "Value (cr)".Tx(this, "ValueN"); // cColValue.HeaderText = (count>0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission") + (totalReward>0 ? $", {totalReward:N0}" : "")) : "Value"; List <MissionState> mprev = ml.GetAllExpiredMissions(hetime); DateTime startdate = customDateTimePickerStart.Checked ? customDateTimePickerStart.Value : new DateTime(1980, 1, 1); DateTime enddate = customDateTimePickerEnd.Checked ? customDateTimePickerEnd.Value : new DateTime(2999, 1, 1); long value = 0; int completed = 0, abandonded = 0, failed = 0; foreach (MissionState ms in mprev) { int cmps = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, startdate) : DateTime.Compare(ms.Mission.EventTimeLocal, startdate); //System.Diagnostics.Debug.WriteLine(ms.Mission.EventTimeUTC.ToString() + " " + startdate.ToString() + " " + cmps); if (cmps >= 0) { int cmpe = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, enddate) : DateTime.Compare(ms.Mission.EventTimeLocal, enddate); if (cmpe <= 0) { if (ms.State == MissionState.StateTypes.Abandoned) { abandonded++; } else if (ms.State == MissionState.StateTypes.Completed) { completed++; } else if (ms.State == MissionState.StateTypes.Failed) { failed++; } object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name), EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal, EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.MissionEndTime : ms.MissionEndTime.ToLocalTime(), ms.OriginatingSystem + ":" + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, ms.StateText, ms.Info() }; int rowno = dataGridViewPrevious.Rows.Add(rowobj); dataGridViewPrevious.Rows[rowno].Tag = ms; value += ms.Value; } } } labelValue.Visible = (value != 0); labelValue.Text = "Value: ".Tx(this, "ValueC") + value.ToStringInvariant() + " C:" + completed.ToStringInvariant() + " A:" + abandonded.ToStringInvariant() + " F:" + failed.ToStringInvariant(); //System.Diagnostics.Debug.WriteLine("Prev " + sortorderprev + " " + sortcolprev.Index); dataGridViewPrevious.Sort(sortcolprev, (sortorderprev == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewPrevious.Columns[sortcolprev.Index].HeaderCell.SortGlyphDirection = sortorderprev; dataGridViewCurrent.Sort(sortcolcur, (sortordercur == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewCurrent.Columns[sortcolcur.Index].HeaderCell.SortGlyphDirection = sortordercur; } }
private void Display() { MissionList ml = last_he?.MissionList; DataGridViewColumn sortcolprev = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortedColumn : dataGridViewPrevious.Columns[1]; SortOrder sortorderprev = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortOrder : SortOrder.Descending; DataGridViewColumn sortcolcur = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortedColumn : dataGridViewCurrent.Columns[1]; SortOrder sortordercur = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortOrder : SortOrder.Descending; dataGridViewCurrent.Rows.Clear(); dataGridViewPrevious.Rows.Clear(); if (ml != null) { DateTime hetime = last_he.EventTimeUTC; List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime); var totalReward = 0; var currentRows = new List <DataGridViewRow>(mcurrent.Count); foreach (MissionState ms in mcurrent) { object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.LocalisedName), EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC), EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.Expiry), ms.OriginatingSystem + ": " + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, ms.Mission.Reward.GetValueOrDefault().ToString("N0"), ms.MissionInfoColumn() }; if (ms.Mission.Reward.HasValue) { totalReward += ms.Mission.Reward.Value; } var row = dataGridViewCurrent.RowTemplate.Clone() as DataGridViewRow; row.CreateCells(dataGridViewCurrent, rowobj); row.Tag = ms; currentRows.Add(row); } dataGridViewCurrent.Rows.AddRange(currentRows.ToArray()); int count = mcurrent.Count(); cColName.HeaderText = (count > 0) ? (count.ToString() + (count > 1 ? " Missions".T(EDTx.UserControlMissions_MPlural) : " Mission".T(EDTx.UserControlMissions_MSingular))) : "Name".T(EDTx.UserControlMissions_Name); cColValue.HeaderText = (totalReward != 0) ? string.Format("Value (cr):\n{0:N0}".T(EDTx.UserControlMissions_Value), totalReward) : "Value (cr)".T(EDTx.UserControlMissions_ValueN); // cColValue.HeaderText = (count>0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission") + (totalReward>0 ? $", {totalReward:N0}" : "")) : "Value"; List <MissionState> mprev = ml.GetAllExpiredMissions(hetime); DateTime startdateutc = customDateTimePickerStart.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(customDateTimePickerStart.Value) : new DateTime(1980, 1, 1); DateTime enddateutc = customDateTimePickerEnd.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(customDateTimePickerEnd.Value) : new DateTime(8999, 1, 1); long value = 0; int completed = 0, abandonded = 0, failed = 0; var previousRows = new List <DataGridViewRow>(mprev.Count); foreach (MissionState ms in mprev) { int cmps = DateTime.Compare(ms.Mission.EventTimeUTC, startdateutc); //System.Diagnostics.Debug.WriteLine(ms.Mission.EventTimeUTC.ToString() + " " + startdate.ToString() + " " + cmps); if (cmps >= 0) { int cmpe = DateTime.Compare(ms.Mission.EventTimeUTC, enddateutc); if (cmpe <= 0) { if (ms.State == MissionState.StateTypes.Abandoned) { abandonded++; } else if (ms.State == MissionState.StateTypes.Completed) { completed++; } else if (ms.State == MissionState.StateTypes.Failed) { failed++; } object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.LocalisedName), EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC), EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.MissionEndTime), ms.OriginatingSystem + ": " + ms.OriginatingStation, ms.Mission.Faction, ms.DestinationSystemStation(), ms.Mission.TargetFaction, ms.StateText, ms.MissionInfoColumn() }; var row = dataGridViewPrevious.RowTemplate.Clone() as DataGridViewRow; row.CreateCells(dataGridViewPrevious, rowobj); row.Tag = ms; previousRows.Add(row); value += ms.Value; } } } dataGridViewPrevious.Rows.AddRange(previousRows.ToArray()); labelValue.Visible = (value != 0); labelValue.Text = "Value: ".T(EDTx.UserControlMissions_ValueC) + value.ToString("N0") + " C:" + completed.ToString("N0") + " A:" + abandonded.ToString("N0") + " F:" + failed.ToString("N0"); //System.Diagnostics.Debug.WriteLine("Prev " + sortorderprev + " " + sortcolprev.Index); dataGridViewPrevious.Sort(sortcolprev, (sortorderprev == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewPrevious.Columns[sortcolprev.Index].HeaderCell.SortGlyphDirection = sortorderprev; dataGridViewCurrent.Sort(sortcolcur, (sortordercur == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewCurrent.Columns[sortcolcur.Index].HeaderCell.SortGlyphDirection = sortordercur; } }