예제 #1
0
        public void Actualiser()
        {
            _service     = null;
            _service     = new Service();
            LstVTaskTime = _service.VTaskTimeChargerLstDuProjectTaskUser(_vProjectTaskUserSelectinE);

            //IL FAUT AUSSI VIDER LES CHAMPS POUR LES MODIFICATIONS
            //pour cela, on point TaskUserTime vers un nouveau qui est totalement vide
            TaskUserTime    = new TaskUserTime();
            Selection       = LstVTaskTime[_indiceSelection];
            _codeDErreur    = CodeDErreur.PasDerreur;
            IsUnSelectionnE = true;
        }
예제 #2
0
        public UserTimeViewModel()
        {
            _service = new Service();


            RetourAvecVerificationCommand = new RelayCommand(RetourAvecVerification);
            SauverCommand          = new RelayCommand(SauverAjouter);
            AfficherHistoryCommand = new RelayCommand(AfficherHistory);
            ActualiserCommand      = new RelayCommand(Actualiser);


            Messenger.Default.Register <VProjectTaskUser>(this, LectureDuMessageEtInitialisation); //pour la lecture du "ProjectTaskUser" envoyer
            Messenger.Default.Register <string>(this, LectureDuMessage);                           //pour la fermeture de History

            _codeDErreur = CodeDErreur.PasDerreur;
        }
예제 #3
0
        public void SauverAjouter()//cette methode modifi le "TaskUserTime" actuel, et ajoute l'encie dans le table "TaskUserTimeHistory"
        {
            if (Selection != null)
            {
                //il faut extraire les heures de "TaskUserTime.startDate" et "TaskUserTime.EndDate"


                var dd = new DateTime();
                dd = new DateTime();
                if (TaskUserTime.startDate != null)
                {
                    dd = (DateTime)TaskUserTime.startDate;
                }
                var    startDate    = dd.ToString("MM/dd/yyyy");
                string srtDateDebut = startDate + " " + StartHeure?.ToString("T");
                //on atrribut la nouvelle "TaskUserTime.startDate"
                TaskUserTime.startDate = DateTime.ParseExact(srtDateDebut, "MM/dd/yyyy HH:mm:ss",
                                                             CultureInfo.InvariantCulture);

                if (EndHeure != null)//si la date de fin existe
                {
                    dd = new DateTime();
                    if (TaskUserTime.EndDate != null)
                    {
                        dd = (DateTime)TaskUserTime.EndDate;
                    }
                    var endDate    = dd.ToString("MM/dd/yyyy");
                    var srtDateFin = endDate + " " + EndHeure?.ToString("T"); //on réconstitue la date de fin
                                                                              //on attribut le nouveau date de fin
                    TaskUserTime.EndDate = DateTime.ParseExact(srtDateFin, "MM/dd/yyyy HH:mm:ss",
                                                               CultureInfo.InvariantCulture);
                }



                //VERIFICATION SI IL Y A EU MODIF
                if (Selection.EndDate != TaskUserTime.EndDate ||
                    Selection.startDate != TaskUserTime.startDate)
                {
                    //VERIFICATION DE LA COHERENCE DES DATES
                    if (TaskUserTime.EndDate != null)
                    {
                        if (TaskUserTime.EndDate <= TaskUserTime.startDate) // && TaskUserTime.EndDate <= DateTime.Now)
                        {
                            _codeDErreur = CodeDErreur.DateFinPlusPetitQueDateDebut;
                        }
                        else if (TaskUserTime.EndDate > DateTime.Now)
                        {
                            _codeDErreur = CodeDErreur.DateFinDepasse;
                        }
                        else if (TaskUserTime.startDate > DateTime.Now)
                        {
                            _codeDErreur = CodeDErreur.DateDebutDepasse;
                        }
                        else
                        {
                            _codeDErreur = CodeDErreur.PasDerreur;
                        }
                        if (_indiceSelection > 0)
                        {
                            //MessageBox.Show(TaskUserTime.startDate + " et  " + LstVTaskTime[_indiceSelection - 1].EndDate);
                            if (TaskUserTime.startDate < LstVTaskTime[_indiceSelection - 1].EndDate)
                            {
                                _codeDErreur = CodeDErreur.DateDebutAvantDateFinPrecedent;
                            }
                            // MessageBox.Show("date debut avant date fin precedent");
                        }
                        if (_indiceSelection < LstVTaskTime.Count - 1)
                        {
                            //MessageBox.Show(TaskUserTime.EndDate + " et  " + LstVTaskTime[_indiceSelection + 1].startDate);
                            if (TaskUserTime.EndDate > LstVTaskTime[_indiceSelection + 1].startDate)
                            {
                                _codeDErreur = CodeDErreur.DateFinApresDateDebutSuivant;
                            }
                            //MessageBox.Show("date fin apres date debut suivant");
                        }
                    }
                    else
                    {
                        _codeDErreur = TaskUserTime.startDate > DateTime.Now ? CodeDErreur.DateDebutDepasse : CodeDErreur.PasDerreur;
                    }


                    switch (_codeDErreur)
                    {
                    case CodeDErreur.DateFinDepasse:
                        Utils.MaterialMessageBox.ShowError("Erreur: La date de fin depasse la date actuéle");
                        Actualiser();
                        break;

                    case CodeDErreur.DateDebutDepasse:
                        Utils.MaterialMessageBox.ShowError("Erreur: La date de début depasse la date actuéle");
                        Actualiser();
                        break;

                    case CodeDErreur.DateFinPlusPetitQueDateDebut:
                        Utils.MaterialMessageBox.ShowError("Erreur: la date de debut est appres à la date de fin");
                        Actualiser();
                        break;

                    case CodeDErreur.DateDebutAvantDateFinPrecedent:
                        Utils.MaterialMessageBox.ShowError("Erreur: la date de debut est avant la date de fin du précedent");
                        Actualiser();
                        break;

                    case CodeDErreur.DateFinApresDateDebutSuivant:
                        Utils.MaterialMessageBox.ShowError("Erreur: la date de fin est apres la date de debut du suivant");
                        Actualiser();
                        break;

                    case CodeDErreur.PasDerreur:
                        //AJOUT
                        TaskUserTime taskUserTimeEncien = _service.TaskUserTimeCharger(Selection);
                        _service.TaskUserTimeHistoryAjouterUnTaskUserTime(taskUserTimeEncien);

                        //MODIF
                        if (_service.TaskUserTimeModifier(TaskUserTime))
                        {
                            Utils.MaterialMessageBox.Show("Modification bien éffectuer");
                        }
                        //IL FAUT CALCULER L'EXECUTIONTIME DU "PROJECTTASK"
                        Utils.Outils.ModificationDeExecutionTimeEtRecaluleDesTemps(TaskUserTime);

                        Actualiser();
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else
                {
                    Actualiser();
                }
            }
            else
            {
                Utils.MaterialMessageBox.ShowError("Sélection un champs !!");
            }
        }