コード例 #1
0
        private void buttonSync_Click(object sender, EventArgs e)
        {
            if (EDDiscoveryForm.EDDConfig.CurrentCommander.Name.Equals(""))
            {
                MessageBox.Show("Please enter commander name before sending distances/ travel history to EDSM!");
                return;
            }
            var db = new SQLiteDBClass();

            var dists = db.GetDistancesByStatus((int)DistancsEnum.EDDiscovery);
            //var dists = from p in SQLiteDBClass.dictDistances where p.Value.Status == DistancsEnum.EDDiscovery  orderby p.Value.CreateTime  select p.Value;

            EDSMClass edsm = new EDSMClass();

            foreach (var dist in dists)
            {
                string json;

                if (dist.Dist > 0)
                {
                    LogText("Add distance: " + dist.NameA + " => " + dist.NameB + " :" + dist.Dist.ToString("0.00") + "ly" + Environment.NewLine);
                    json = edsm.SubmitDistances(EDDiscoveryForm.EDDConfig.CurrentCommander.Name, dist.NameA, dist.NameB, dist.Dist);
                }
                else
                {
                    if (dist.Dist < 0)  // Can removedistance by adding negative value
                    {
                        dist.Delete();
                    }
                    else
                    {
                        dist.Status = DistancsEnum.EDDiscoverySubmitted;
                        dist.Update();
                    }
                    json = null;
                }
                if (json != null)
                {
                    string str = "";
                    bool   trilok;
                    if (edsm.ShowDistanceResponse(json, out str, out trilok))
                    {
                        LogText(str);
                        dist.Status = DistancsEnum.EDDiscoverySubmitted;
                        dist.Update();
                    }
                    else
                    {
                        LogText(str);
                    }
                }
            }

            if (EDDiscoveryForm.EDDConfig.CurrentCommander.APIKey.Equals(""))
            {
                MessageBox.Show("Please enter EDSM api key (In settings) before sending travel history to EDSM!");
                return;
            }
            sync.StartSync(EDSMSyncTo, EDSMSyncFrom, defaultMapColour);
        }
コード例 #2
0
        private void buttonSync_Click(object sender, EventArgs e)
        {
            if (textBoxCmdrName.Text.Equals(""))
            {
                MessageBox.Show("Please enter commander name before sending distances!");
                return;
            }


            var dists = from p in SQLiteDBClass.dictDistances where p.Value.Status == DistancsEnum.EDDiscovery orderby p.Value.CreateTime select p.Value;

            EDSMClass edsm = new EDSMClass();

            foreach (var dist in dists)
            {
                string json, json2;

                if (dist.Dist > 0)
                {
                    LogText("Add distance: " + dist.NameA + " => " + dist.NameB + " :" + dist.Dist.ToString("0.00") + "ly" + Environment.NewLine);
                    json  = edsm.SubmitDistances(textBoxCmdrName.Text, dist.NameA, dist.NameB, dist.Dist);
                    json2 = edsc.SubmitDistances(textBoxCmdrName.Text, dist.NameA, dist.NameB, dist.Dist);
                }
                else
                {
                    dist.Delete();
                    return;
                }
                if (json != null)
                {
                    string str = "";
                    bool   trilok;
                    if (edsm.ShowDistanceResponse(json, out str, out trilok))
                    {
                        LogText(str);
                        dist.Status = DistancsEnum.EDDiscoverySubmitted;
                        dist.Update();
                    }
                    else
                    {
                        LogText(str);
                    }
                }
            }
        }
コード例 #3
0
        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);
                }));
            }
        }
コード例 #4
0
        private void SubmitToEDSM()
        {
            try
            {
                EDSMClass edsm = new EDSMClass();       // current commander credentials

                if (!edsm.ValidCredentials)
                {
                    this.BeginInvoke(new MethodInvoker(() =>
                    {
                        ExtendedControls.MessageBoxTheme.Show(FindForm(), "Please enter commander name before submitting the system!".T(EDTx.UserControlTrilateration_Cmdr));
                        UnfreezeTrilaterationUI();
                    }));
                    return;
                }

                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 = BaseUtils.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(targetsystem.Name, dists);

                    System.Diagnostics.Trace.WriteLine(responseM);

                    string infoM;
                    bool   trilaterationOkM;
                    var    responseOkM = edsm.ShowDistanceResponse(responseM, out infoM, out trilaterationOkM);

                    if (trilaterationOkM)
                    {
                        trilatOk = true;
                    }

                    if (!responseOkM)
                    {
                        respOk = false;
                    }

                    System.Diagnostics.Trace.WriteLine(infoM);
                }

                BeginInvoke((MethodInvoker) delegate
                {
                    UnfreezeTrilaterationUI();

                    if (respOk && trilatOk)
                    {
                        LogTextSuccess("EDSM submission succeeded, trilateration successful.".T(EDTx.UserControlTrilateration_Horray) + Environment.NewLine);
                        discoveryform.RefreshHistoryAsync();
                        checkForUnknownSystemsNowKnown();
                    }
                    else if (respOk)
                    {
                        LogTextHighlight("EDSM submission succeeded, but trilateration failed. Try adding more distances.".T(EDTx.UserControlTrilateration_Failed) + Environment.NewLine);
                    }
                    else
                    {
                        LogTextHighlight("EDSM submission failed.".T(EDTx.UserControlTrilateration_Dead) + Environment.NewLine);
                    }
                });
            }
            catch (Exception ex)
            {
                this.BeginInvoke(new MethodInvoker(() =>
                {
                    LogTextHighlight("SubmitToEDSM Exception:" + ex.Message);
                    LogText(ex.StackTrace);
                }));
            }
        }
コード例 #5
0
        private void SubmitToEDSC()
        {
            var    travelHistoryControl = _discoveryForm.TravelControl;
            string commanderName        = travelHistoryControl.GetCommanderName();

            if (string.IsNullOrEmpty(commanderName))
            {
                MessageBox.Show("Please enter commander name before submitting the system!");
                UnfreezeTrilaterationUI();
                return;
            }

            var distances = new Dictionary <string, double>();

            foreach (var item in lastTrilatelationEntries)
            {
                var system = item.Key;
                var entry  = item.Value;
                distances.Add(system.name, entry.Distance);
            }

            var edsc = new EDSCClass();
            var edsm = new EDSMClass();
            //if (!EDSCClass.UseTest)
            //{
            //    Invoke((MethodInvoker) delegate
            //    {
            //        // TODO temporarily mess with EDSC in test mode only
            //        LogText("Forcibly switching to EDSC UseTest mode." + Environment.NewLine, Color.OrangeRed);
            //    });
            //    EDSCClass.UseTest = true;
            //}

            var responseC = edsc.SubmitDistances(commanderName, TargetSystem.name, distances);
            var responseM = edsm.SubmitDistances(commanderName, TargetSystem.name, distances);

            Console.WriteLine(responseC);
            Console.WriteLine(responseM);

            string infoC, infoM;
            bool   trilaterationOkC;
            bool   trilaterationOkM;
            var    responseOkC = edsc.ShowDistanceResponse(responseC, out infoC);
            var    responseOkM = edsm.ShowDistanceResponse(responseM, out infoM, out trilaterationOkM);

            trilaterationOkC = infoC.IndexOf("Trilateration succesful") != -1; // FIXME this is ugly
            Console.WriteLine(infoC);

            Invoke((MethodInvoker) delegate
            {
                if (responseOkC && trilaterationOkC)
                {
                    LogText("EDSC submission succeeded, trilateration successful." + Environment.NewLine, Color.Green);
                }
                else if (responseOkC)
                {
                    LogText("EDSC submission succeeded, but trilateration failed. Try adding more distances." + Environment.NewLine, Color.Orange);
                }
                else
                {
                    LogText("EDSC submission failed." + Environment.NewLine, Color.Red);
                }

                if (responseOkM && trilaterationOkM)
                {
                    LogText("EDSM submission succeeded, trilateration successful." + Environment.NewLine, Color.Green);
                }
                else if (responseOkM)
                {
                    LogText("EDSM submission succeeded, but trilateration failed. Try adding more distances." + Environment.NewLine, Color.Orange);
                }
                else
                {
                    LogText("EDSM submission failed." + Environment.NewLine, Color.Red);
                }
            });

            if (responseOkC && trilaterationOkC)
            {
                Invoke((MethodInvoker) delegate
                {
                    //Visible = false;
                    travelHistoryControl.TriggerEDSCRefresh(); // TODO we might eventually avoid this by further parsing EDSC response
                    travelHistoryControl.RefreshHistory();
                });
            }
            else
            {
                Invoke((MethodInvoker)UnfreezeTrilaterationUI);
                lastTrilatelationResult  = null;
                lastTrilatelationEntries = null;
            }
        }
コード例 #6
0
        private void SubmitToEDSM()
        {
            edsm.apiKey        = EDDiscoveryForm.EDDConfig.CurrentCommander.APIKey;
            edsm.commanderName = EDDiscoveryForm.EDDConfig.CurrentCommander.Name;

            var travelHistoryControl = _discoveryForm.TravelControl;

            if (string.IsNullOrEmpty(edsm.commanderName))
            {
                string commanderName = travelHistoryControl.GetCommanderName();

                if (string.IsNullOrEmpty(commanderName))
                {
                    MessageBox.Show("Please enter commander name before submitting the system!");
                    UnfreezeTrilaterationUI();
                    return;
                }
                edsm.commanderName = commanderName;
            }
            var distances = new Dictionary <string, double>();
            var culture   = new CultureInfo("en-US");

            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 distance = double.Parse(distanceCell.Value.ToString().Replace(",", "."), culture);
                    // 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, distance);
                    }
                }
            }

            var responseM = edsm.SubmitDistances(edsm.commanderName, TargetSystem.name, distances);

            Console.WriteLine(responseM);

            string infoM;
            bool   trilaterationOkM;
            var    responseOkM = edsm.ShowDistanceResponse(responseM, out infoM, out trilaterationOkM);

            Console.WriteLine(infoM);

            Invoke((MethodInvoker) delegate
            {
                if (responseOkM && trilaterationOkM)
                {
                    LogText("EDSM submission succeeded, trilateration successful." + Environment.NewLine, Color.Green);
                }
                else if (responseOkM)
                {
                    LogText("EDSM submission succeeded, but trilateration failed. Try adding more distances." + Environment.NewLine, Color.Orange);
                }
                else
                {
                    LogText("EDSM submission failed." + Environment.NewLine, Color.Red);
                }
            });

            if (responseOkM && trilaterationOkM)
            {
                Invoke((MethodInvoker) delegate
                {
                    //Visible = false;
                    UnfreezeTrilaterationUI();
                    travelHistoryControl.TriggerEDSMRefresh(); // TODO we might eventually avoid this by further parsing EDSC response
                    travelHistoryControl.RefreshHistory();
                    checkForUnknownSystemsNowKnown();
                });
            }
            else
            {
                Invoke((MethodInvoker)UnfreezeTrilaterationUI);
                lastTrilatelationResult  = null;
                lastTrilatelationEntries = null;
            }
        }