Esempio n. 1
0
        /// <summary>Constructeur de la fenêtre</summary>
        /// <param name="action">Action à afficher</param>
        public ManipAction(TLaction action)
        {
            InitializeComponent();
            this.Icon = TaskLeader.Properties.Resources.task_coach;

            // On mémorise l'action
            this._action = action;

            // Remplissage de la liste des bases disponibles
            foreach (String dbName in TrayIcon.dbs.Keys)
            {
                dbsBox.Items.Add(dbName);
            }
            dbsBox.Text = _action.dbName;

            if (action.isScratchpad)
            {
                this.Text += "Ajouter une action - TaskLeader";
            }
            else
            {
                this.Text += "Modifier une action - TaskLeader";

                this.dbsBox.Enabled = false;

                if (action.hasDueDate) // Attribut géré à part car pas de valeur par défaut
                {
                    actionDatePicker.Value = action.DueDate;
                }
                else
                {
                    noDueDate.Checked = true;
                }
            }

            // Chargement des widgets
            this.loadWidgets();

            // Affichage des pièces jointes
            for (int i = 0; i < action.PJ.Count; i++)
            {
                this.addPJToView(action.PJ[i], i);
            }

            this.linksView.Visible = (action.PJ.Count > 0);

            // Affichage du descriptif de l'action
            desField.Text = action.Texte;
            desField.Select(desField.Text.Length, 0); // Curseur placé à la fin par défaut
        }
Esempio n. 2
0
 // Méthode appelée sur nouveau mail
 private void newActionOutlook(object sender, NewMailEventArgs e)
 {
     if (invokeControl.InvokeRequired)
     {
         invokeControl.Invoke(new NewMailEventHandler(newActionOutlook), new object[] { sender, e });
     }
     else // Demande d'ajout de mail à une action
     {
         TLaction action = new TLaction();
         action.Texte = e.Mail.Titre;
         action.addPJ(e.Mail);
         new ManipAction(action).Show();
     }
 }
Esempio n. 3
0
        public DatePickerPopup(TLaction action)
        {
            InitializeComponent();
            v_action = action;

            // Initialisation du composant calendar
            if (action.hasDueDate)
            {
                calendar.SelectionStart = action.DueDate;
            }
            else
            {
                this.noDueDate.Checked = true;
            }
        }
Esempio n. 4
0
        // Mise à jour d'une action (flexible)
        public int updateAction(TLaction action)
        {
            // Préparation des sous requêtes
            String ctxtPart = "";

            if (action.ctxtHasChanged)
            {
                ctxtPart = "CtxtID=(SELECT id FROM Contextes WHERE Titre=" + action.ContexteSQL + "),";
            }

            String sujetPart = "";

            if (action.sujetHasChanged)
            {
                sujetPart = "SujtID=(SELECT id FROM Sujets WHERE Titre=" + action.SujetSQL + "),";
            }

            String actionPart = "";

            if (action.texteHasChanged)
            {
                actionPart = "Titre=" + action.TexteSQL + ",";
            }

            String datePart = "";

            if (action.dueDateHasChanged)
            {
                if (action.hasDueDate)
                {
                    datePart = "DueDate=" + action.DueDateSQL + ",";
                }
                else
                {
                    datePart = "DueDate=NULL,";
                }
            }

            String destPart = "";

            if (action.destHasChanged)
            {
                destPart = "DestID=(SELECT id FROM Destinataires WHERE Titre=" + action.DestinataireSQL + "),";
            }

            String statPart = "";

            if (action.statusHasChanged)
            {
                statPart = "StatID=(SELECT id FROM Statuts WHERE Titre=" + action.StatutSQL + "),";
            }
            // Il y a volontairement une virgule à la fin dans le cas où le statut n'a pas été mis à jour

            String updatePart = ctxtPart + sujetPart + actionPart + datePart + destPart + statPart;

            String requete;

            if (updatePart.Length > 0)
            {
                requete = "UPDATE Actions SET " + updatePart.Substring(0, updatePart.Length - 1) + " WHERE id='" + action.ID + "'";

                int result = execSQL(requete);
                this.OnActionEdited(action.ID);
                return(result);
            }
            else
            {
                return(0);
            }
        }
Esempio n. 5
0
        // Insertion d'une nouvelle action
        // Renvoie l'ID de stockage de l'action
        public String insertAction(TLaction action)
        {
            String actionID;

            using (SQLiteConnection SQLC = new SQLiteConnection(this._connectionString))
            {
                if (File.Exists(this.path))
                {
                    SQLC.Open();
                }
                else
                {
                    throw new Exception("Base inaccessible");
                }

                using (SQLiteTransaction mytransaction = SQLC.BeginTransaction())
                {
                    using (SQLiteCommand SQLCmd = new SQLiteCommand(SQLC))
                    {
                        //Syntaxe: INSERT INTO Actions (nom des colonnes avec ,) VALUES(valeurs avec ' et ,)

                        // Préparation des différents morceaux de la requête
                        String insertPart = "INSERT INTO Actions (";
                        String valuePart  = " VALUES (";

                        if (action.Contexte != "")
                        {
                            insertPart += "CtxtID,";
                            valuePart  += "(SELECT id FROM Contextes WHERE Titre = " + action.ContexteSQL + "),";
                        }

                        if (action.Sujet != "")
                        {
                            insertPart += "SujtID,";
                            valuePart  += "(SELECT id FROM VueSujets WHERE Contexte=" + action.ContexteSQL + " AND Titre=" + action.SujetSQL + "),";
                        }

                        insertPart += "Titre,"; // On a déjà vérifié que la chaîne n'était pas nulle
                        valuePart  += action.TexteSQL + ",";

                        if (action.hasDueDate)
                        {
                            insertPart += "DueDate,";
                            valuePart  += action.DueDateSQL + ",";
                        }

                        if (action.Destinataire != "")
                        {
                            insertPart += "DestID,";
                            valuePart  += "(SELECT id FROM Destinataires WHERE Titre =" + action.DestinataireSQL + "),";
                        }

                        insertPart += "StatID)";
                        valuePart  += "(SELECT id FROM Statuts WHERE Titre=" + action.StatutSQL + "))";

                        SQLCmd.CommandText = insertPart + valuePart;
                        SQLCmd.ExecuteNonQuery();

                        SQLCmd.CommandText = "SELECT max(id) FROM Actions;";
                        actionID           = SQLCmd.ExecuteScalar().ToString();
                    }
                    mytransaction.Commit();
                }
            }
            this.OnActionEdited(actionID);
            return(actionID);
        }