private void buttonAddCommander_Click(object sender, EventArgs e) { CommanderForm cf = new CommanderForm(); cf.Init(true); if (cf.ShowDialog(this) == DialogResult.OK) { if (cf.Valid && !EDCommander.IsCommanderPresent(cf.CommanderName)) { EDCommander cmdr = new EDCommander(); cf.Update(cmdr); EDCommander.Create(cmdr); UpdateCommandersListBox(); _discoveryForm.TravelControl.LoadCommandersListBox(); _discoveryForm.ExportControl.PopulateCommanders(); _discoveryForm.RefreshHistoryAsync(); // will do a new parse on commander list adding/removing scanners btnDeleteCommander.Enabled = EDCommander.NumberOfCommanders > 1; } else { Forms.MessageBoxTheme.Show(this, "Command name is not valid or duplicate", "Cannot create Commander", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } }
private void comboBoxCommander_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxCommander.SelectedIndex >= 0 && comboBoxCommander.Enabled) // DONT trigger during LoadCommandersListBox { var itm = (EDCommander)comboBoxCommander.SelectedItem; if (itm.Nr >= 0) { EDCommander.CurrentCmdrID = itm.Nr; } buttonSync.Enabled = EDCommander.Current.SyncToEdsm | EDCommander.Current.SyncFromEdsm; _discoveryForm.RefreshHistoryAsync(currentcmdr: itm.Nr); // which will cause DIsplay to be called as some point } }
private void SubmitToEDSM() { try { edsm.apiKey = EDCommander.Current.APIKey; edsm.commanderName = EDCommander.Current.EdsmName; var travelHistoryControl = _discoveryForm.TravelControl; if (string.IsNullOrEmpty(edsm.commanderName)) { string commanderName = EDCommander.Current.EdsmName; if (string.IsNullOrEmpty(commanderName)) { this.BeginInvoke(new MethodInvoker(() => { ExtendedControls.MessageBoxTheme.Show("Please enter commander name before submitting the system!"); UnfreezeTrilaterationUI(); })); return; } edsm.commanderName = commanderName; } var distances = new Dictionary <string, double>(); for (int i = 0, count = dataGridViewDistances.Rows.Count - 1; i < count; i++) { var systemCell = dataGridViewDistances[0, i]; var distanceCell = dataGridViewDistances[1, i]; if (systemCell.Value != null && distanceCell.Value != null) { var system = systemCell.Value.ToString(); var value = distanceCell.Value.ToString().Trim(); var parsedDistance = DistanceParser.ParseInterstellarDistance(value); if (parsedDistance.HasValue) { // can over-ride drop down now if it's a real system so you could add duplicates if you wanted (even once I've figured out issue #81 which makes it easy if not likely...) if (!distances.Keys.Contains(system)) { distances.Add(system, parsedDistance.Value); } } } } bool trilatOk = false; bool respOk = true; List <KeyValuePair <string, double> > distlist = distances.ToList(); for (int i = 0; i < distances.Count; i += 20) { var dists = new Dictionary <string, double>(); for (int j = i; j < i + 20 && j < distances.Count; j++) { dists[distlist[j].Key] = distlist[j].Value; } var responseM = edsm.SubmitDistances(edsm.commanderName, TargetSystem.name, dists); Console.WriteLine(responseM); string infoM; bool trilaterationOkM; var responseOkM = edsm.ShowDistanceResponse(responseM, out infoM, out trilaterationOkM); if (trilaterationOkM) { trilatOk = true; } if (!responseOkM) { respOk = false; } Console.WriteLine(infoM); } BeginInvoke((MethodInvoker) delegate { UnfreezeTrilaterationUI(); if (respOk && trilatOk) { LogTextSuccess("EDSM submission succeeded, trilateration successful." + Environment.NewLine); _discoveryForm.RefreshHistoryAsync(); checkForUnknownSystemsNowKnown(); } else if (respOk) { LogTextHighlight("EDSM submission succeeded, but trilateration failed. Try adding more distances." + Environment.NewLine); } else { LogTextHighlight("EDSM submission failed." + Environment.NewLine); } }); } catch (Exception ex) { this.BeginInvoke(new MethodInvoker(() => { LogTextHighlight("SubmitToEDSM Exception:" + ex.Message); LogText(ex.StackTrace); })); } }