Пример #1
0
        private void favmgrbtnEdit_Click(object sender, EventArgs e)
        {
            Double dlon, dlat;

            _daddy.GetInitialCoordinates(out dlat, out dlon);

            if (ParameterObject.SplitLongitudeLatitude(favmgrtextBox2.Text, ref dlon, ref dlat))
            {
                // Ok tout va bien
            }
            else
            {
                dlon = _daddy.HomeLon;
                dlat = _daddy.HomeLat;
            }

            List <ParameterObject> lst = new List <ParameterObject>();

            lst.Add(new ParameterObject(ParameterObject.ParameterType.String, favmgrtextBox1.Text, "nme", label1.Text));
            lst.Add(new ParameterObject(ParameterObject.ParameterType.Coordinates /*good*/,
                                        dlat.ToString() + " " + dlon.ToString(),
                                        "latlon",
                                        label2.Text,
                                        _daddy.GetTranslator().GetString("TooltipParamLatLon").Replace("#", "\r\n")));
            ParametersChanger changer = new ParametersChanger();

            changer.HandlerDisplayCoord = _daddy.HandlerToDisplayCoordinates;
            changer.DisplayCoordImage   = _daddy.GetImageSized("Earth");
            changer.Title         = _daddy.GetTranslator().GetString("DlgFavManager");
            changer.BtnCancel     = _daddy.GetTranslator().GetString("BtnCancel");
            changer.BtnOK         = _daddy.GetTranslator().GetString("BtnOk");
            changer.ErrorFormater = _daddy.GetTranslator().GetString("ErrWrongParameter");
            changer.ErrorTitle    = _daddy.GetTranslator().GetString("Error");
            changer.Parameters    = lst;
            changer.Font          = this.Font;
            changer.Icon          = this.Icon;

            if (changer.ShowDialog() == DialogResult.OK)
            {
                dlon = Double.MaxValue;
                dlat = Double.MaxValue;
                if (ParameterObject.SplitLongitudeLatitude(lst[1].Value, ref dlon, ref dlat))
                {
                    this.favmgrtextBox1.Text = lst[0].Value;
                    this.favmgrtextBox2.Text = dlat.ToString().Replace(",", ".") + " " + dlon.ToString().Replace(",", ".");
                    performValidityCheckAndUpdateHMI();
                }
            }
        }
Пример #2
0
        public bool DoItWild()
        {
            if (_Daddy != null)
            {
                List <ParameterObject> lst = new List <ParameterObject>();
                lst.Add(new ParameterObject(ParameterObject.ParameterType.String, "", "expression", "Filtre de recherche"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, false, "titre", "Rechercher dans le titre"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, false, "desc", "Rechercher dans la description"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "logs", "Rechercher dans les logs"));

                ParametersChanger changer = new ParametersChanger();
                changer.Title         = "Entrez le filtre de recherche (wildcards)";
                changer.BtnCancel     = "Annuler";
                changer.BtnOK         = "Valider";
                changer.ErrorFormater = "Mauvais format de paramètre";
                changer.ErrorTitle    = "Erreur";
                changer.Parameters    = lst;
                changer.Font          = _Daddy.Font;
                changer.Icon          = _Daddy.Icon;

                if (changer.ShowDialog() == DialogResult.OK)
                {
                    bool title             = (changer.Parameters[1].Value == "True");
                    bool desc              = (changer.Parameters[2].Value == "True");
                    bool logs              = (changer.Parameters[3].Value == "True");
                    CustomFilterRegex fltr = new CustomFilterRegex(FilterRegex.WildcardToRegex(lst[0].Value), title, desc, logs, false);
                    try
                    {
                        _Daddy._ThreadProgressBarTitle = "";
                        _Daddy.CreateThreadProgressBar();
                        _Daddy.ExecuteCustomFilter(fltr);
                        _Daddy.KillThreadProgressBar();
                    }
                    catch (Exception ex)
                    {
                        _Daddy.KillThreadProgressBar();
                        _Daddy.ShowException("Boom", "Ca a planté...", ex);
                    }
                }
                return(true);
            }
            else
            {
                MessageBox.Show("Daddy is missing :-(");
                return(false);
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="daddy"></param>
        /// <returns></returns>
        static public bool EnterSpecialFeaturesKey(MainWindow daddy)
        {
            String owner = ConfigurationManager.AppSettings["owner"];
            String key   = ConfigurationManager.AppSettings["key"];

            List <ParameterObject> lst = new List <ParameterObject>();

            lst.Add(new ParameterObject(ParameterObject.ParameterType.Label, "", "owner", daddy.GetTranslator().GetString("LblSpecialFeaturesUser") + " " + owner));
            lst.Add(new ParameterObject(ParameterObject.ParameterType.TextBox, key, "key", daddy.GetTranslator().GetString("LblSpecialFeaturesKey")));

            ParametersChanger changer = new ParametersChanger();

            changer.Title         = daddy.GetTranslator().GetString("enableAdvancedMGM");
            changer.BtnCancel     = daddy.GetTranslator().GetString("BtnCancel");
            changer.BtnOK         = daddy.GetTranslator().GetString("BtnOk");
            changer.ErrorFormater = daddy.GetTranslator().GetString("ErrWrongParameter");
            changer.ErrorTitle    = daddy.GetTranslator().GetString("Error");
            changer.Parameters    = lst;
            changer.Font          = daddy.Font;
            changer.Icon          = daddy.Icon;

            bool bOK = AreSpecialFeaturesEnabled();

            if (changer.ShowDialog() == DialogResult.OK)
            {
                daddy.UpdateConfFile("key", lst[1].Value);

                bOK = AreSpecialFeaturesEnabled();
                if (bOK)
                {
                    daddy.MsgActionOk(daddy, daddy.GetTranslator().GetString("LblGoodKey"));
                }
                else
                {
                    daddy.MsgActionWarning(daddy, daddy.GetTranslator().GetString("LblBadKeyCheater"));
                }
            }

            return(bOK);
        }
Пример #4
0
        /// <summary>
        /// Display an HMI requesting parameters need for this form
        /// </summary>
        /// <param name="daddy">Reference to main window (MainWindow instance), used for callback purposes</param>
        /// <param name="bComputeSpeed">out, If true, speed will be computed from time and positions</param>
        /// <param name="speedColorType">out, Color type that will be used on road to display speed (only useful if bComputeSpeed is true)</param>
        /// <param name="singlecolor">out, Color value that will be used on road (only useful if bComputeSpeed is true and speedColorType is SingleValue or if bComputeSpeed is false)</param>
        /// <returns>True if parameters successfuly filled</returns>
        static public bool RequestParameters(MainWindow daddy, out bool bComputeSpeed, out TrackSelector.ColorType speedColorType, out Color singlecolor)
        {
            List <ParameterObject> lst        = new List <ParameterObject>();
            List <String>          lstcompare = new List <string>();

            lst.Add(new ParameterObject(ParameterObject.ParameterType.Color, Color.Red, "color1", daddy.GetTranslator().GetString("LblRouteColorDefault")));
            lstcompare.Add(daddy.GetTranslator().GetString("LblSpeedGreenRed"));
            lstcompare.Add(daddy.GetTranslator().GetString("LblSpeedHSL"));
            lstcompare.Add(daddy.GetTranslator().GetString("LblSpeedUnicolor"));
            lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "usespeed", daddy.GetTranslator().GetString("LblDisplaySpeed")));
            lst.Add(new ParameterObject(ParameterObject.ParameterType.List, lstcompare, "speedcolor", daddy.GetTranslator().GetString("LblSpeedColorType")));

            ParametersChanger changer = new ParametersChanger();

            changer.Title         = daddy.GetTranslator().GetString("FMenuDisplayGPXTrack");
            changer.BtnCancel     = daddy.GetTranslator().GetString("BtnCancel");
            changer.BtnOK         = daddy.GetTranslator().GetString("BtnOk");
            changer.ErrorFormater = daddy.GetTranslator().GetString("ErrWrongParameter");
            changer.ErrorTitle    = daddy.GetTranslator().GetString("Error");
            changer.Parameters    = lst;
            changer.Font          = daddy.Font;
            changer.Icon          = daddy.Icon;
            changer.TopMost       = true;

            if (changer.ShowDialog() == DialogResult.OK)
            {
                bComputeSpeed  = bool.Parse(changer.Parameters[1].Value);
                speedColorType = (TrackSelector.ColorType)(changer.Parameters[2].ValueIndex);
                singlecolor    = (Color)(changer.Parameters[0].ValueO);
                return(true);
            }
            else
            {
                bComputeSpeed  = false;
                speedColorType = ColorType.SingleColor;
                singlecolor    = Color.Red;
                return(false);
            }
        }
Пример #5
0
 private void txtCoord_TextChanged(object sender, EventArgs e)
 {
     tbGCNAllCoords.Text = ParametersChanger.ConvertCoordinates(tbGCNCenter.Text);
 }
Пример #6
0
        public bool DoIt()
        {
            if (_Daddy != null)
            {
                // Create a random directory (and delete existing one)
                String exePath      = Path.GetDirectoryName(Application.ExecutablePath);
                string tmpDirectory = exePath + Path.DirectorySeparatorChar + "Data\\_EmptyOV2ForFrance";
                if (Directory.Exists(tmpDirectory))
                {
                    try
                    {
                        Directory.Delete(tmpDirectory, true);
                    }
                    catch (Exception)
                    {
                    }
                }
                Directory.CreateDirectory(tmpDirectory);

                // Create SuperPP directory (and delete existing one)
                string superPPDirectory = exePath + Path.DirectorySeparatorChar + "Data\\_EmptyGPXForFrance";
                if (Directory.Exists(superPPDirectory))
                {
                    try
                    {
                        Directory.Delete(superPPDirectory, true);
                    }
                    catch (Exception)
                    {
                    }
                }
                Directory.CreateDirectory(superPPDirectory);


                List <ParameterObject> lst = new List <ParameterObject>();
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "cachecache", "Créer CacheCache.db"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "gpx", "Créer un GPX par type"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "ggz", "Créer un GGZ global"));


                ParametersChanger changer = new ParametersChanger();
                changer.Title         = "Choix des opérations à effectuer";
                changer.BtnCancel     = _Daddy.GetTranslator().GetString("BtnCancel");
                changer.BtnOK         = _Daddy.GetTranslator().GetString("BtnOk");
                changer.ErrorFormater = _Daddy.GetTranslator().GetString("ErrWrongParameter");
                changer.ErrorTitle    = _Daddy.GetTranslator().GetString("Error");
                changer.Parameters    = lst;
                changer.Font          = _Daddy.Font;
                changer.Icon          = _Daddy.Icon;

                if (changer.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        bool bcache = (lst[0].Value == "True");
                        bool bgpx   = (lst[1].Value == "True");
                        bool bggz   = (lst[2].Value == "True");

                        // Download SuperPP zip (in tmpdirectory
                        String         url        = "http://sd-2.archive-host.com/membres/up/81061952863402030/GeoCaches.zip";
                        string         f          = tmpDirectory + Path.DirectorySeparatorChar + "GeoCaches.zip";
                        HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
                        objRequest.Proxy = _Daddy.GetProxy();                         // Là encore, on peut virer le proxy si non utilisé (NULL)
                        HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
                        using (Stream output = File.OpenWrite(f))
                            using (Stream input = objResponse.GetResponseStream())
                            {
                                byte[] buffer = new byte[8192];
                                int    bytesRead;
                                while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
                                {
                                    output.Write(buffer, 0, bytesRead);
                                }
                                output.Close();
                                input.Close();
                            }

                        // Unzip zip file
                        ZipFile.ExtractToDirectory(f, tmpDirectory);

                        // Initialise DB if not existing
                        String fln = "";
                        String cachecacheprefix = "CacheCache";
                        int    totalcachecache  = 0;
                        fln = superPPDirectory + Path.DirectorySeparatorChar + cachecacheprefix;
                        Directory.CreateDirectory(fln);
                        fln = Path.DirectorySeparatorChar + cachecacheprefix + Path.DirectorySeparatorChar + cachecacheprefix + ".db";
                        string cs = "URI=file:" + superPPDirectory + fln;
                        using (SQLiteConnection con = new SQLiteConnection(cs))
                        {
                            con.Open();
                            using (SQLiteCommand cmd = new SQLiteCommand(con))
                            {
                                // Drop table
                                if (bcache)
                                {
                                    cmd.CommandText = "DROP TABLE IF EXISTS GeocacheLite";
                                    cmd.ExecuteNonQuery();

                                    // Create table
                                    cmd.CommandText = @"CREATE TABLE IF NOT EXISTS GeocacheLite(
											Code TEXT PRIMARY KEY, Name TEXT, Type TEXT,
											Latitude DOUBLE, Longitude DOUBLE,
											Difficulty TEXT, Terrain TEXT)"                                            ;
                                    cmd.ExecuteNonQuery();
                                }

                                // Convert OV2
                                _Daddy._ThreadProgressBarTitle = "";
                                _Daddy.CreateThreadProgressBar();
                                OV2Reader       ov2   = new OV2Reader();
                                List <Geocache> c     = new List <Geocache>();
                                List <Geocache> cfull = new List <Geocache>();

                                fln = Path.DirectorySeparatorChar + "GC CitoEvent.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Cache In Trash Out Event");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Cache In Trash Out Event", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Earthcache.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Earthcache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Earthcache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC LetterBox.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Letterbox Hybrid");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Letterbox Hybrid", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Multi.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Multi-cache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Multi-cache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Mystery.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Unknown Cache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Unknown Cache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Traditional.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Traditional Cache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Traditional Cache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Virtual.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Virtual Cache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Virtual Cache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Webcam.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Webcam Cache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Webcam Cache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                fln = Path.DirectorySeparatorChar + "GC Wherigo.ov2";
                                if (bcache)
                                {
                                    totalcachecache += ov2.ProcessFileSuperPP(con, cmd, tmpDirectory + fln, "Wherigo Cache");
                                }
                                if (bgpx || bggz)
                                {
                                    c = ov2.ProcessFile(_Daddy, tmpDirectory + fln, "Wherigo Cache", true);
                                }
                                if (bgpx)
                                {
                                    _Daddy.ExportGPXStreamed(superPPDirectory + fln.Replace(".ov2", ".gpx"), c, null, new DateTime(2000, 1, 1, 0, 0, 1));
                                }
                                cfull.AddRange(c);

                                // Save GGZ
                                fln = Path.DirectorySeparatorChar + "GC France.ggz";
                                if (bggz)
                                {
                                    _Daddy.ExportGGZ(superPPDirectory + fln, cfull, new DateTime(2000, 1, 1, 0, 0, 1));
                                }

                                // Delete temporary directory
                                //Directory.Delete(tmpDirectory, true);
                            }
                            con.Close();
                        }

                        if (bcache)
                        {
                            fln = superPPDirectory + Path.DirectorySeparatorChar + cachecacheprefix + Path.DirectorySeparatorChar + cachecacheprefix;

                            // Le fichier id
                            System.IO.StreamWriter file = new System.IO.StreamWriter(fln + ".id", false, Encoding.Default);
                            String sdate = DateTime.Now.ToString("yyyy-MM-ddTHH:mmZ");
                            file.WriteLine(sdate);
                            file.WriteLine(totalcachecache.ToString());
                            file.WriteLine("1.0");
                            file.Close();

                            // On zippe la cache et on crée le fichier CacheCache.id
                            ZipFile.CreateFromDirectory(
                                superPPDirectory + Path.DirectorySeparatorChar + cachecacheprefix,
                                superPPDirectory + Path.DirectorySeparatorChar + cachecacheprefix + ".zip",
                                CompressionLevel.Optimal, false);
                        }

                        System.Diagnostics.Process.Start(superPPDirectory);

                        _Daddy.KillThreadProgressBar();
                    }
                    catch (Exception)
                    {
                        _Daddy.KillThreadProgressBar();
                        throw;
                    }
                }
                return(true);
            }
            else
            {
                MessageBox.Show("Daddy is missing :-(");
                return(false);
            }
        }
Пример #7
0
        public bool DoIt()
        {
            if (_Daddy != null)
            {
                try
                {
                    string[] fichiers_monkeys = new string[] {
                        "https://www.dropbox.com/sh/vbm2svx98swen20/AAC4gad3RA5e6Fko8eXf2LNVa/7646619.zip?dl=1", "Bruno.fr",
                        "https://www.dropbox.com/sh/vbm2svx98swen20/AADfaTi0WiPMYsDvfdTK0hpZa/MyFindsFab.zip?dl=1", "ElFIQue",
                        "https://www.dropbox.com/sh/vbm2svx98swen20/AAAg7lraTEa01pEs6R45eFnZa/MyFinds_RGX78.zip?dl=1", "RGX78",
                        "", "Kirdec",
                        "", "CamCasimir"
                    };

                    List <ParameterObject> lst = new List <ParameterObject>();
                    for (int i = 1; i < fichiers_monkeys.Length; i += 2)
                    {
                        if (fichiers_monkeys[i - 1] != "")
                        {
                            lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "foo", fichiers_monkeys[i]));
                        }
                    }

                    ParametersChanger changer = new ParametersChanger();
                    changer.Title         = "Choix des PQs à traiter";
                    changer.BtnCancel     = _Daddy.GetTranslator().GetString("BtnCancel");
                    changer.BtnOK         = _Daddy.GetTranslator().GetString("BtnOk");
                    changer.ErrorFormater = _Daddy.GetTranslator().GetString("ErrWrongParameter");
                    changer.ErrorTitle    = _Daddy.GetTranslator().GetString("Error");
                    changer.Parameters    = lst;
                    changer.Font          = _Daddy.Font;
                    changer.Icon          = _Daddy.Icon;

                    int nb_monkeys = 5;
                    if (changer.ShowDialog() == DialogResult.OK)
                    {
                        for (int i = 0; i < lst.Count; i++)
                        {
                            if (lst[i].Value == "False")
                            {
                                fichiers_monkeys[2 * i] = "";
                            }
                        }
                    }

                    _Daddy._ThreadProgressBarTitle = "Traitement des PQs MyFinds des Monkeys";
                    _Daddy.CreateThreadProgressBar();

                    List <String> files = new List <string>();
                    for (int i = 0; i < fichiers_monkeys.Length / 2; i++)
                    {
                        String file = fichiers_monkeys[2 * i];
                        if (file == "")
                        {
                            continue;
                        }

                        string localfilegpx = "";
                        if (file.Contains(".zip"))
                        {
                            string localfilezip = Guid.NewGuid().ToString() + ".zip";
                            MyTools.DownloadFile(file, _Daddy.GetProxy(), null, localfilezip);

                            // On dezippe
                            try
                            {
                                ZipFile.ExtractToDirectory(localfilezip, ".");
                                using (ZipArchive archive = ZipFile.OpenRead(localfilezip))
                                {
                                    localfilegpx = archive.Entries[0].Name;
                                }
                            }
                            catch (Exception exc2)
                            {
                                File.Delete(localfilezip);
                                throw exc2;
                            }
                            File.Delete(localfilezip);
                        }
                        else
                        {
                            localfilegpx = Guid.NewGuid().ToString() + ".gpx";
                            MyTools.DownloadFile(file, _Daddy.GetProxy(), null, localfilegpx);
                        }
                        files.Add(localfilegpx);
                    }

                    Dictionary <String, Geocache> caches_trouvees_ensemble = null;
                    Dictionary <String, Geocache> caches_communes          = new Dictionary <string, Geocache>();
                    foreach (String file in files)
                    {
                        _Daddy.Log("Loading " + file);
                        // On lit les caches
                        Dictionary <String, Geocache> aBatch = new Dictionary <String, Geocache>();
                        List <Waypoint> wpts = new List <Waypoint>();
                        _Daddy.LoadGCFile(file, ref aBatch, ref wpts);
                        File.Delete(file);
                        _Daddy.Log("Loaded " + aBatch.Count.ToString() + " caches");

                        // On ne garde que les logs "Found it", "Attended", "Webcam Photo Taken" dans les caches!
                        foreach (KeyValuePair <String, Geocache> pair in aBatch)
                        {
                            Geocache geo       = pair.Value;
                            CacheLog found_log = null;
                            foreach (CacheLog log in geo._Logs)
                            {
                                if ((log._Type == "Found it") ||
                                    (log._Type == "Attended") ||
                                    (log._Type == "Webcam Photo Taken"))
                                {
                                    found_log = log;
                                    break;
                                }
                            }
                            geo._Logs.Clear();
                            geo._Logs.Add(found_log);
                            _Daddy.Log(geo._Code + ": " + found_log._Type + " " + found_log._Date);
                        }

                        // On fusionne avec uniquement les caches trouvées le même jour !
                        if (caches_trouvees_ensemble == null)
                        {
                            // Les caches trouvées ensemble
                            caches_trouvees_ensemble = aBatch;

                            // Et les caches potentiellement communes
                            foreach (KeyValuePair <String, Geocache> pair in aBatch)
                            {
                                caches_communes.Add(pair.Key, pair.Value);
                            }
                        }
                        else
                        {
                            Dictionary <String, Geocache> newcaches = new Dictionary <string, Geocache>();
                            // On va stocker les caches qui ont été trouvées le même jour
                            foreach (KeyValuePair <String, Geocache> pair in aBatch)
                            {
                                Geocache geo = pair.Value;
                                // Est-ce que cette cache est déjà dans la liste commune ?
                                // Si non, même pas la peine de se creuser la tête
                                Geocache cache_merged = null;
                                if (caches_trouvees_ensemble.ContainsKey(pair.Key))
                                {
                                    _Daddy.Log("Found a match: " + pair.Key);
                                    cache_merged = caches_trouvees_ensemble[pair.Key];
                                    // Est-ce que ça a été trouvé à la même date ?
                                    String date_log_batch = MyTools.CleanDate(geo._Logs[0]._Date);
                                    String date_log_merge = MyTools.CleanDate(cache_merged._Logs[0]._Date);
                                    if (date_log_batch == date_log_merge)
                                    {
                                        _Daddy.Log("Found a common date: " + date_log_batch);
                                        // Ok on a un truc commun !!!
                                        newcaches.Add(pair.Key, cache_merged);
                                    }
                                    else
                                    {
                                        cache_merged = null;
                                        _Daddy.Log("Didn't find a common date: " + date_log_batch + " vs " + date_log_merge);
                                    }
                                }
                                // Else poubelle

                                // On regarde si on n'a pas eu un match sur la même date
                                if (cache_merged == null)
                                {
                                    _Daddy.Log("Check if it is a common cache");
                                    // Alors on met à jour caches_communes si besoin
                                    if (caches_communes.ContainsKey(pair.Key))
                                    {
                                        _Daddy.Log("Common cache!");
                                        // On met à jour les fichiers et les logs
                                        Geocache cache_common = caches_communes[pair.Key];
                                        cache_common._origin.AddRange(pair.Value._origin);
                                        cache_common._Logs.Add(pair.Value._Logs[0]);
                                        _Daddy.Log("Updated!");
                                    }
                                    else
                                    {
                                        _Daddy.Log("Not common (so far)");
                                        // On ajoute juste la cache
                                        caches_communes.Add(pair.Key, pair.Value);
                                    }
                                }
                            }

                            // On remplace la liste mergée
                            caches_trouvees_ensemble.Clear();
                            aBatch.Clear();
                            caches_trouvees_ensemble = newcaches;
                        }
                    }

                    _Daddy.KillThreadProgressBar();

                    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                    saveFileDialog1.Filter           = "CSV (*.csv)|*.csv";
                    saveFileDialog1.RestoreDirectory = true;
                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        String   fichier_csv = saveFileDialog1.FileName;
                        FileInfo fi          = new FileInfo(fichier_csv);
                        Directory.SetCurrentDirectory(fi.Directory.ToString());
                        String fileRadix = fi.Name.ToString();

                        int nb_max = 3 + 2 * nb_monkeys;

                        System.IO.StreamWriter file = new System.IO.StreamWriter(fileRadix, false, Encoding.Default);

                        _Daddy.Log("Create common found msg");
                        EcritLigne(file, new object[] { "LISTE DES CACHES COMMUNES TROUVEES LE MEME JOUR", caches_trouvees_ensemble.Count }, nb_max);
                        foreach (KeyValuePair <String, Geocache> pair in caches_trouvees_ensemble)
                        {
                            // Longueur max arguments : 3
                            Geocache geo = pair.Value;
                            EcritLigne(file, new object[] { geo._Code, geo._Name.Replace(";", ","), geo._Logs[0]._Date }, nb_max);
                        }

                        _Daddy.Log("Create common msg");
                        EcritLigne(file, new object[] { "LISTE DES CACHES COMMUNES MAIS NON TROUVEES LE MEME JOUR" }, nb_max);
                        foreach (KeyValuePair <String, Geocache> pair in caches_communes)
                        {
                            Geocache geo = pair.Value;
                            if (geo._Logs.Count >= 2)
                            {
                                // Longueur max arguments : 3 + 2*nb_monkeys
                                List <object> os = new List <object>();
                                os.Add(geo._Code);
                                os.Add(geo._Name.Replace(";", ","));

                                List <String> dates = new List <String>();

                                // On va parcourir les monkeys dans l'ordre et voir s'ils sont présents
                                for (int i = 0; i < fichiers_monkeys.Length / 2; i++)
                                {
                                    String monkey = fichiers_monkeys[2 * i + 1];
                                    String date   = "";
                                    foreach (CacheLog log in geo._Logs)
                                    {
                                        if (log._User.ToLower() == monkey.ToLower())
                                        {
                                            date = MyTools.CleanDate(log._Date);
                                            dates.Add(date);
                                        }
                                    }
                                    if (date != "")
                                    {
                                        os.Add(monkey);
                                        os.Add(date);
                                    }
                                    else
                                    {
                                        os.Add(monkey);
                                        os.Add(" ");
                                    }
                                }
                                // On recherche les doublons
                                var duplicates = dates.GroupBy(a => a).SelectMany(ab => ab.Skip(1).Take(1)).ToList();
                                if (duplicates.Count() != 0)
                                {
                                    os.Add("MonkeyFind");
                                }
                                else
                                {
                                    os.Add("NotMonkey");
                                }

                                EcritLigne(file, os.ToArray(), nb_max);
                            }
                        }
                        file.Close();
                    }

                    // Exclure des caches affichées les caches de caches_communes ET caches_trouvees_ensemble
                    // En gros toute cache qui a été trouvée par au moins un membre doit être exclue
                    HashSet <String> hs = new HashSet <String>();
                    foreach (KeyValuePair <String, Geocache> pair in caches_communes)
                    {
                        hs.Add(pair.Key);
                    }
                    foreach (KeyValuePair <String, Geocache> pair in caches_trouvees_ensemble)
                    {
                        hs.Add(pair.Key);
                    }

                    CustomFilterExcludeSelection fltr = new CustomFilterExcludeSelection(hs);
                    _Daddy.ExecuteCustomFilter(fltr);

                    return(true);
                }
                catch (Exception exc)
                {
                    _Daddy.KillThreadProgressBar();
                    String msg = _Daddy.GetTranslator().GetString("ErrFilter") + ": " + exc.Message;
                    MyMessageBox.Show(msg, _Daddy.GetTranslator().GetString("ErrTitle"), MessageBoxIcon.Exclamation, _Daddy.GetTranslator());
                    return(false);
                }
            }
            else
            {
                MessageBox.Show("Daddy is missing :-(");
                return(false);
            }
        }
Пример #8
0
        void BtnGCNGUpdateClick(object sender, EventArgs e)
        {
            String fct = "updatepublishnotifications";

            try
            {
                if (!SpecialFeatures.SpecialFeaturesMgt.AreSpecialFeaturesEnabled())
                {
                    return;
                }
                CookieContainer cookieJar = _daddy.CheckGCAccount(true, false);
                if (cookieJar == null)
                {
                    return;
                }

                List <GCNotification> associatedGCN;
                List <String>         ids = GetSelectedIds(out associatedGCN);
                if (ids.Count == 0)
                {
                    _daddy.MsgActionWarning(this, _daddy.GetTranslator().GetString("LblErrorNoSelectionElt"));
                    return;
                }

                List <ParameterObject> lst = new List <ParameterObject>();
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Coordinates /*good*/, _daddy.GetInitialCoordinates(), "latlon", _daddy.GetTranslator().GetString("ParamCenterLatLon"), _daddy.GetTranslator().GetStringM("TooltipParamLatLon")));

                ParametersChanger changer = new ParametersChanger();
                changer.HandlerDisplayCoord = _daddy.HandlerToDisplayCoordinates;
                changer.DisplayCoordImage   = _daddy.GetImageSized("Earth");
                changer.Title         = _daddy.GetTranslator().GetString("updatepublishnotifications");
                changer.BtnCancel     = _daddy.GetTranslator().GetString("BtnCancel");
                changer.BtnOK         = _daddy.GetTranslator().GetString("BtnOk");
                changer.ErrorFormater = _daddy.GetTranslator().GetString("ErrWrongParameter");
                changer.ErrorTitle    = _daddy.GetTranslator().GetString("Error");
                changer.Parameters    = lst;
                changer.Font          = _daddy.Font;
                changer.Icon          = _daddy.Icon;

                // Force creation du get handler on control
                changer.CreateControls();
                _daddy._cacheDetail._gmap.ControlTextLatLon = changer.CtrlCallbackCoordinates;

                if (changer.ShowDialog() == DialogResult.OK)
                {
                    _daddy._cacheDetail._gmap.ControlTextLatLon = null;
                    Double dlon = Double.MaxValue;
                    Double dlat = Double.MaxValue;
                    if (ParameterObject.SplitLongitudeLatitude(lst[0].Value, ref dlon, ref dlat))
                    {
                        foreach (String id in ids)
                        {
                            NotificationsManager.UpdateNotificationsImpl(_daddy, id, cookieJar, dlat, dlon);
                        }

                        _daddy.MsgActionDone(this);
                    }
                }
                else
                {
                    _daddy._cacheDetail._gmap.ControlTextLatLon = null;
                }
            }
            catch (Exception ex)
            {
                _daddy.ShowException("", _daddy.GetTranslator().GetString(fct), ex);
            }
        }
Пример #9
0
        public bool GenerateFieldNotes(bool bGetSelOnly, bool bAutoFile, ref String field_notes, DateTime deb, DateTime fin)
        {
            // Liste de commentaires par défaut
            List <String> l = new List <string>();

            l.Add("Jolie cache, merci pour la découverte du lieu ! Merci pour la cache !");
            l.Add("Trouvée, mais c'était pas évident. Merci pour la cache !");
            l.Add("Merci pour cette cache et la promenade. Merci pour la cache !");
            l.Add("Une belle journée de géocaching qui m'a permis de trouver de nouvelles caches, merci. Merci pour la cache !");
            l.Add("Cache trouvée rapidement, sympa comme endroit. Merci pour la cache !");
            l.Add("Une de plus au compteur, je crois que je suis devenu accro. Merci pour la cache !");
            l.Add("Merci pour la cache !");
            l.Add("En promenade dans le coin j'en profite pour faire des caches. Merci pour la cache !");
            l.Add("J'ai un peu cherché pour celle-ci je ne devais pas être trop inspiré. Merci pour la cache !");
            l.Add("Très bon emplacement pour la cache. Merci pour la cache !");
            l.Add("Merci pour m'avoir montré cet endroit. Merci pour la cache !");
            l.Add("Jolie découverte, c'est sympa. Merci pour la cache !");
            l.Add("Un coin cool, j'aime beaucoup. Merci pour la cache !");
            l.Add("Etrangement très calme, pas de problème. Merci pour la cache !");
            l.Add("Je sens que je suis sur une bonne série, pas de problème. Merci pour la cache !");
            l.Add("Relativement facile à trouver, cool. Merci pour la cache !");
            l.Add("Rapidement délogée. Merci pour la cache !");
            l.Add("Et voilà, encore une cache, cool. Merci pour la cache !");
            l.Add("Je sens que j'ai un bon fluide aujourd'hui. Merci pour la cache !");
            l.Add("Trouvée sans trop de difficulté. Merci pour la cache !");
            l.Add("Des gens au loin, sûrement des moldus. Merci pour la cache !");
            l.Add("Je devais dormir j'ai mis du temps à la voir celle-là. Merci pour la cache !");
            l.Add("Bonne coordonnées, super. Merci pour la cache !");
            l.Add("J'ai un peu tourné en rond à cause de mon GPS capricieux. Merci pour la cache !");
            l.Add("Et une boite de plus, cool. Merci pour la cache !");
            l.Add("Et hop main mise sur la boite et le logbook. Merci pour la cache !");
            l.Add("endroit sympa qui mérite le détour. Merci pour la cache !");
            l.Add("Merci au poseur pour cette cache. Merci pour la cache !");
            l.Add("En route vers la suivante, sympa. Merci pour la cache !");
            l.Add("Et on continue la promenade. Merci pour la cache !");

            // On le fait pour les caches affichées
            List <Geocache> caches = null;

            if (bGetSelOnly)
            {
                caches = _Daddy.GetSelectedCaches();
            }
            else
            {
                caches = _Daddy.GetDisplayedCaches();
            }
            if (caches.Count == 0)
            {
                return(false);
            }

            // On demande la date de début et de fin du run
            List <ParameterObject> lst = new List <ParameterObject>();

            lst.Add(new ParameterObject(ParameterObject.ParameterType.Label, "", "nb", caches.Count.ToString() + " caches vont être traitées !"));
            lst.Add(new ParameterObject(ParameterObject.ParameterType.Date, DateTime.Now, "date", "Date de début"));
            lst.Add(new ParameterObject(ParameterObject.ParameterType.Date, DateTime.Now, "date", "Date de fin"));

            ParametersChanger changer = new ParametersChanger();

            changer.Title         = "Période du run ?";
            changer.BtnCancel     = _Daddy.GetTranslator().GetString("BtnCancel");
            changer.BtnOK         = _Daddy.GetTranslator().GetString("BtnOk");
            changer.ErrorFormater = _Daddy.GetTranslator().GetString("ErrWrongParameter");
            changer.ErrorTitle    = _Daddy.GetTranslator().GetString("Error");
            changer.Parameters    = lst;
            changer.Font          = _Daddy.Font;
            changer.Icon          = _Daddy.Icon;

            bool bDateDefined = false;

            if ((deb != DateTime.MinValue) && (fin != DateTime.MinValue))
            {
                bDateDefined = true;
            }
            else
            {
                // On affiche le calendrier des trouvailles
                DisplayFoundCalendar(true);
            }

            if (bDateDefined || (changer.ShowDialog() == DialogResult.OK))
            {
                if (bDateDefined == false)
                {
                    deb = (DateTime)(lst[1].ValueO);
                    fin = (DateTime)(lst[2].ValueO);
                    //MSG(deb.ToString("yyyy-MM-ddT00:00:1Z"));
                }

                // Nombre de jours du run
                if (deb > fin)
                {
                    _Daddy.MSG("La date de début doit être antérieure à la date de fin !");
                    return(false);
                }
                int            nbJours         = (int)((fin - deb).TotalDays) + 1;
                int            index           = 0;
                int            cachesperday    = (int)((double)(caches.Count) / (double)nbJours + 1.0);
                DateTime       dateCache       = deb;
                SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                saveFileDialog1.Filter           = "Field note (*.txt)|*.txt";
                saveFileDialog1.FileName         = "geocache_visits.txt";
                saveFileDialog1.RestoreDirectory = true;
                if (bAutoFile)
                {
                    String exePath = Path.GetDirectoryName(Application.ExecutablePath);
                    saveFileDialog1.FileName = exePath + Path.DirectorySeparatorChar + Guid.NewGuid().ToString();
                }

                if (bAutoFile || (saveFileDialog1.ShowDialog() == DialogResult.OK))
                {
                    FileInfo fi = new FileInfo(saveFileDialog1.FileName);
                    field_notes = saveFileDialog1.FileName;
                    Directory.SetCurrentDirectory(fi.Directory.ToString());
                    String fileRadix            = fi.Name.ToString();
                    System.IO.StreamWriter file = new System.IO.StreamWriter(fileRadix, false, System.Text.Encoding.GetEncoding("iso-8859-8"));
                    foreach (Geocache geo in caches)
                    {
                        String comment = l[MyTools.RandomNumber(l.Count - 1)];

                        file.WriteLine(geo._Code + "," +
                                       dateCache.ToString("yyyy-MM-ddT00:00Z") + "," +
                                       "Found it," +
                                       "\"" + comment + "\"");

                        index++;
                        if (index >= cachesperday)
                        {
                            // Jour suivant
                            index     = 0;
                            dateCache = dateCache.AddDays(1.0);
                        }
                    }
                    file.Close();
                }
            }
            return(true);
        }
Пример #10
0
        public bool DoItCompleteFoundIt()
        {
            if (_Daddy != null)
            {
                String       msg       = "";
                bool         bFilterOk = false;
                bool         bZoneOk   = false;
                DialogResult dialogResult;
                if (CheckIfAreaIsDefined(ref bFilterOk, ref bZoneOk) == false)
                {
                    if (!bZoneOk)
                    {
                        // La zone n'est pas définie, on informe !
                        msg          = "ATTENTION ! Aucune zone valide n'est définie ! Voulez-vous en définir une (oui) ou continuer sans filtre de zone (non) ?";
                        dialogResult = MessageBox.Show(msg,
                                                       _Daddy.GetTranslator().GetString("AskConfirm"),
                                                       MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dialogResult == DialogResult.Yes)
                        {
                            // On définit la zone et on s'arrête là.
                            return(DefineArea());
                        }
                        // Sinon on continue, roule ma poule
                    }
                    else if (!bFilterOk)
                    {
                        // La zone est définie mais le filtre n'est pas activé
                        msg          = "ATTENTION ! Une zone est définie mais le filtre n'est pas activé ! Voulez-vous l'activer (oui) ou continuer sans filtre de zone (non) ?";
                        dialogResult = MessageBox.Show(msg,
                                                       _Daddy.GetTranslator().GetString("AskConfirm"),
                                                       MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dialogResult == DialogResult.Yes)
                        {
                            // On active le filtre
                            CheckBox cb = GetcbFilterArea();
                            if (cb != null)
                            {
                                cb.Checked = true;
                            }

                            if ((cb == null) || (cb.Checked == false))
                            {
                                // WTF !!!
                                msg          = "ATTENTION ! Impossible d'activer le filtre ! Voulez-vous néanmoins continuer ?";
                                dialogResult = MessageBox.Show(msg,
                                                               _Daddy.GetTranslator().GetString("AskConfirm"),
                                                               MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                                if (dialogResult != DialogResult.Yes)
                                {
                                    return(false);
                                }
                            }
                        }
                        // Sinon on continue, roule ma poule
                    }
                }

                // filtre sur zone / tradi / D4T4 -> complete les logs -> filtre les logs -> crée les notes -> logge)
                msg          = "Les opération suivantes vont être réalisées séquentiellement :\r\n";
                msg         += "- Filtrage des caches affichées pour ne garder que les Traditionnelles non trouvées avec une D < 4 et un T < 4. Possibilité d'exécuter préalablement le filtre défini dans MGM\r\n";
                msg         += "- Affichage du calendrier des trouvailles\r\n";
                msg         += "- Définition du type de notes de terrain : fichier temporaire ou choisi manuellement (il sera alors conservé)\r\n";
                msg         += "- Demande de la date de début et de fin souhaitées pour la création des notes de terrain\r\n";
                msg         += "- Récupération des derniers logs des caches résultantes du filtre précédent\r\n";
                msg         += "- Filtrage pour garder uniquement les caches dont le dernier log est un Found It\r\n";
                msg         += "- Confirmation pour continuer\r\n";
                msg         += "- Création des notes de terrain\r\n";
                msg         += "- Ouverture de la fenêtre de log sur ces notes de terrain\r\n";
                msg         += "Êtes-vous d'accord pour continuer ?";
                dialogResult = MessageBox.Show(msg,
                                               _Daddy.GetTranslator().GetString("AskConfirm"),
                                               MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dialogResult != DialogResult.Yes)
                {
                    return(false);
                }


                // On fait un préfiltre pour garder uniquement les candidats
                // On se moque des logs pour l'instant
                CustomFilterFoundRecently2 fltr = new CustomFilterFoundRecently2(true, true);
                _Daddy.ExecuteCustomFilter(fltr);

                // Ok on a fait un peu le ménage mais il se peut qu'il y ait beaucoup de caches
                List <Geocache> caches = null;
                caches = _Daddy.GetDisplayedCaches();
                if (caches.Count == 0)
                {
                    _Daddy.MSG("Le filtre n'a retourné aucune cache valide !");
                    return(false);
                }

                // On affiche le calendrier des trouvailles
                DisplayFoundCalendar(true);

                bool     bAutoFile = false;
                DateTime deb       = DateTime.MinValue;
                DateTime fin       = DateTime.MinValue;
                // On demande la date de début et de fin du run
                List <ParameterObject> lst = new List <ParameterObject>();
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Label, "", "nb", caches.Count.ToString() + " caches vont être mises à jour !"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "autofile", "Notes de terrain temporaires"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Date, DateTime.Now, "date", "Date de début"));
                lst.Add(new ParameterObject(ParameterObject.ParameterType.Date, DateTime.Now, "date", "Date de fin"));

                ParametersChanger changer = new ParametersChanger();
                changer.Title         = "Utiliser des notes de terrain temporaires ?";
                changer.BtnCancel     = _Daddy.GetTranslator().GetString("BtnCancel");
                changer.BtnOK         = _Daddy.GetTranslator().GetString("BtnOk");
                changer.ErrorFormater = _Daddy.GetTranslator().GetString("ErrWrongParameter");
                changer.ErrorTitle    = _Daddy.GetTranslator().GetString("Error");
                changer.Parameters    = lst;
                changer.Font          = _Daddy.Font;
                changer.Icon          = _Daddy.Icon;

                if (changer.ShowDialog() == DialogResult.OK)
                {
                    bAutoFile = (lst[1].Value == "True");
                    deb       = (DateTime)(lst[2].ValueO);
                    fin       = (DateTime)(lst[3].ValueO);

                    // Nombre de jours du run
                    if (deb > fin)
                    {
                        _Daddy.MSG("La date de début doit être antérieure à la date de fin !");
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }

                // On complète les caches avec les derniers logs
                // 00 : All
                // 01 : DateCreation
                // 02 : Owner
                // 03 : Status
                // 04 : Difficulty
                // 05 : Terrain
                // 06 : Description
                // 07 : Container
                // 08 : Hint
                // 09 : Attributes
                // 10 : Logs
                // 11 : Contry
                // 12 : State
                // 13 : Statistics
                // 14 : Basic info (name, url, coordinates)
                bool[] parameters = new bool[15];
                parameters[0]  = false;
                parameters[1]  = false;
                parameters[2]  = true;
                parameters[3]  = false;
                parameters[4]  = false;
                parameters[5]  = false;
                parameters[6]  = false;
                parameters[7]  = false;
                parameters[8]  = false;
                parameters[9]  = false;
                parameters[10] = true;
                parameters[11] = false;
                parameters[12] = false;
                parameters[13] = false;
                parameters[14] = false;
                _Daddy.CompleteSelectedCaches(ref caches, parameters, true);

                // On conserve seulement les caches avec des logs found it en dernier
                fltr = new CustomFilterFoundRecently2(true, false);
                _Daddy.ExecuteCustomFilter(fltr);

                // Ok on a fait un peu le ménage mais il se peut qu'il y ait beaucoup de caches
                caches = _Daddy.GetDisplayedCaches();
                if (caches.Count == 0)
                {
                    _Daddy.MSG("Le filtre n'a retourné aucune cache valide !");
                    return(false);
                }

                msg          = caches.Count.ToString() + " caches vont être loggées !";
                dialogResult = MessageBox.Show(msg,
                                               _Daddy.GetTranslator().GetString("AskConfirm"),
                                               MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dialogResult != DialogResult.Yes)
                {
                    return(false);
                }

                // On génère les field notes sur toutes les caches affichées
                String field_notes = "";
                if (GenerateFieldNotes(false, bAutoFile, ref field_notes, deb, fin))
                {
                    // On lance l'IHM des field notes
                    FieldNotesHMI fnHMI = new FieldNotesHMI(_Daddy, field_notes);
                    fnHMI.Show();

                    if (bAutoFile && File.Exists(field_notes))
                    {
                        File.Delete(field_notes);
                    }
                    return(true);
                }
                return(false);
            }
            else
            {
                MessageBox.Show("Daddy is missing :-(");
                return(false);
            }
        }
Пример #11
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                Object sel = cbDBListstartupconf.SelectedItem;
                if (sel is DatabaseOfFiles) // we overwrite existing DB
                {
                    DatabaseOfFiles db = (DatabaseOfFiles)sel;
                    foreach (ListViewItem item in listView1startupconf.Items)
                    {
                        if (item.Checked) // check = keep it
                        {
                            db._Files.Add(item.Tag.ToString());
                        }
                    }
                    // we look for existing DB
                    ListTextCoord b = _daddy.GetBookmarks();
                    foreach (DatabaseOfFiles edb in b._Databases)
                    {
                        if (edb._Id == db._Id)
                        {
                            edb._Files = db._Files;
                            break;
                        }
                    }
                    _daddy.SaveBookmarks(b);
                }
                else // we create a new db
                {
                    DatabaseOfFiles db = new DatabaseOfFiles();
                    foreach (ListViewItem item in listView1startupconf.Items)
                    {
                        if (item.Checked) // check = keep
                        {
                            db._Files.Add(item.Tag.ToString());
                        }
                    }

                    // and now the name
                    List <ParameterObject> lst = new List <ParameterObject>();
                    lst.Add(new ParameterObject(ParameterObject.ParameterType.String, "", "name", _daddy.GetTranslator().GetString("LblName")));

                    ParametersChanger changer = new ParametersChanger();
                    changer.Title         = _daddy.GetTranslator().GetString("LblDatabase");
                    changer.BtnCancel     = _daddy.GetTranslator().GetString("BtnCancel");
                    changer.BtnOK         = _daddy.GetTranslator().GetString("BtnOk");
                    changer.ErrorFormater = _daddy.GetTranslator().GetString("ErrWrongParameter");
                    changer.ErrorTitle    = _daddy.GetTranslator().GetString("Error");
                    changer.Parameters    = lst;
                    changer.Font          = this.Font;
                    changer.Icon          = this.Icon;

                    if (changer.ShowDialog() == DialogResult.OK)
                    {
                        db._Name = lst[0].Value;
                        ListTextCoord b = _daddy.GetBookmarks();
                        b._Databases.Add(db);
                        _daddy.SaveBookmarks(b);

                        int i = cbDBListstartupconf.Items.Add(db);
                        cbDBListstartupconf.SelectedIndex = i;
                        _daddy.UpdateMenuWithDB();
                    }
                }
            }
            catch (Exception exc)
            {
                _daddy.ShowException("", "Saving files", exc);
            }
        }