示例#1
0
        public bool DoItFoundIt()
        {
            if (_Daddy != null)
            {
                CustomFilterFoundRecently2 fltr = new CustomFilterFoundRecently2(false, false);
                _Daddy.ExecuteCustomFilter(fltr);

                return(true);
            }
            else
            {
                MessageBox.Show("Daddy is missing :-(");
                return(false);
            }
        }
示例#2
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);
            }
        }