예제 #1
0
파일: Outils.cs 프로젝트: boorry/MyProject
        public static void LancerUnEnPause(VProjectTaskUser selection)
        {
            var mapTaskState = new MapTaskState
            {
                MapTaskStateID   = selection.MapTaskStateID,
                MapTaskStateName = "En cours"
            };

            Service.MapTaskStateModifier(mapTaskState);


            //suppresion de la date de fin dans ProjectTaskUser
            var projectTaskUser = Service.ProjectTaskUserChargerUn(selection.ProjectTaskUserID);

            projectTaskUser.EndTask = null;
            Service.ProjectTaskUserModifier(projectTaskUser);



            //on crée nouveau enregistrement dans TaskUserTime
            var taskUserTime = new TaskUserTime
            {
                startDate         = DateTime.Now,
                Active            = true,
                MapTaskStateName  = "En cours",
                ProjectTaskUserID = selection.ProjectTaskUserID
            };

            Service.TaskUserTimeAjouter(taskUserTime);
        }
예제 #2
0
파일: Outils.cs 프로젝트: boorry/MyProject
        public static void LancerUnEngagE(VProjectTaskUser selection)
        {
            if (Utils.MaterialMessageBox.ShowWithCancel("Vouler vous réelement engager cette têche") !=
                MessageBoxResult.OK)
            {
                return;
            }
            //modification de l'etat
            var mapTaskState = new MapTaskState
            {
                MapTaskStateID   = selection.MapTaskStateID,
                MapTaskStateName = "En cours"
            };

            Service.MapTaskStateModifier(mapTaskState);


            //modificaton de la date de début
            var projectTaskUser = Service.ProjectTaskUserChargerUn(selection.ProjectTaskUserID);

            projectTaskUser.StartTask = DateTime.Now;
            Service.ProjectTaskUserModifier(projectTaskUser);

            //on crée nouveau enregistrement dans TaskUserTime
            var taskUserTime = new TaskUserTime
            {
                startDate         = DateTime.Now,
                Active            = true,
                MapTaskStateName  = "En cours",
                ProjectTaskUserID = selection.ProjectTaskUserID
            };

            Service.TaskUserTimeAjouter(taskUserTime);
        }
예제 #3
0
파일: Outils.cs 프로젝트: boorry/MyProject
        public static void ModificationDeExecutionTimeEtRecaluleDesTemps(TaskUserTime taskUserTime)
        {
            //on charge les nouveau dates et on fait le calcule
            if (taskUserTime.EndDate == null)
            {
                return;                              // si il n'y a pas de date de fin, on ne fait pas le calcule
            }
            var    ddb = Convert.ToDateTime(taskUserTime.startDate.ToString());
            var    ddf = Convert.ToDateTime(taskUserTime.EndDate.ToString());
            double intervaleSeconde = DateAndTime.DateDiff(DateInterval.Second, ddb, ddf);

            taskUserTime.ExecutionTime = (float)SecondeEnHeur(intervaleSeconde);
            Service.TaskUserTimeModifier(taskUserTime);

            //Charger le "ProjectTaskUser" Associer au "taskUserTime"
            if (taskUserTime.ProjectTaskUserID != null)
            {
                CalculeEtModificationDuTemptsDExeCutionTotalDuProjectTaskUser((long)taskUserTime.ProjectTaskUserID);
            }



            //calcule de temps de prj
            CacluTempuPourLeProjetattachE(Service.ChargerUnProjet(taskUserTime).ProjectID);
        }
예제 #4
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;
        }
예제 #5
0
        public bool TaskUserTimeModifier(TaskUserTime update)
        {
            try
            {
                _context.TaskUserTime.AddOrUpdate(update);
                General.SaveContextChanges("modification d'un UserTime id : " + update.TaskUserTimeID, _context);

                return(true);
            }
            catch (Exception)
            {
                //MessageBox.Show(e.ToString());
                return(false);
            }
        }
예제 #6
0
 public bool TaskUserTimeAjouter(TaskUserTime taskUserTime)//ajout d'un TaskUserTime quand on vie de mettre en pause le dérnier
 {
     // bool retour = false;
     try
     {
         _context.TaskUserTime.Add(taskUserTime);
         General.SaveContextChanges("ajout d'un UserTime id : " + taskUserTime.TaskUserTimeID, _context);
         return(true);
     }
     catch (Exception)
     {
         //MessageBox.Show(e.ToString());
         return(false);
     }
     // return retour;
 }
예제 #7
0
        public Project ChargerUnProjet(TaskUserTime taskUserTime)//à partir d'un "TaskUserTime"
        {
            try
            {
                //il faut cherche le ProjectTaskUser associer
                var projectTaskUser =
                    _context.ProjectTaskUser.FirstOrDefault(x => x.ProjectTaskUserID == taskUserTime.ProjectTaskUserID);

                var project = _context.Project.FirstOrDefault(x => x.ProjectID == projectTaskUser.ProjectID);

                return(project);
            }
            catch (Exception)
            {
                // MessageBox.Show(e.ToString());
                return(null);
            }
        }
예제 #8
0
파일: Outils.cs 프로젝트: boorry/MyProject
        public static void LancerUnTerminE(VProjectTaskUser selection)
        {
            //On Pause une question
            if (Utils.MaterialMessageBox.ShowWithCancel("Vouler vous réelement relancer cette tâche ?") !=
                MessageBoxResult.OK)
            {
                return;
            }
            var mapTaskState = new MapTaskState
            {
                MapTaskStateID   = selection.MapTaskStateID,
                MapTaskStateName = "En cours"
            };

            Service.MapTaskStateModifier(mapTaskState);

            //suppresion de la date de fin
            var projectTaskUser = Service.ProjectTaskUserChargerUn(selection.ProjectTaskUserID);

            projectTaskUser.EndTask = null;
            Service.ProjectTaskUserModifier(projectTaskUser);



            //on crée nouveau enregistrement dans TaskUserTime
            var taskUserTime = new TaskUserTime
            {
                startDate         = DateTime.Now,
                Active            = true,
                MapTaskStateName  = "En cours",
                ProjectTaskUserID = selection.ProjectTaskUserID
            };

            Service.TaskUserTimeAjouter(taskUserTime);

            //pour la modification de l'état d'une tache, il faut verifier tout les  ProjectTaskUser liée au tache
            //MAJ etat tache
            // Service.TaskModifierEtatDUneAPartirDeVProjectTaskUser(selection, true);
        }
예제 #9
0
        //cette section contien tout les méthode de TaskUserTimeHistory

        public bool TaskUserTimeHistoryAjouterUnTaskUserTime(TaskUserTime taskUserTime)// ajout d'un TaskUserTime
        {
            try
            {
                var taskUserTimeHistory = new TaskUserTimeHistory
                {
                    EndDate        = taskUserTime.EndDate,
                    startDate      = taskUserTime.startDate,
                    TaskUserTimeID = taskUserTime.TaskUserTimeID,
                    CreatedBy      = Environment.UserName
                };
                //taskUserTimeHistory.CreatedBy=taskUserTime.
                _context.TaskUserTimeHistory.Add(taskUserTimeHistory);
                // General.SaveContextChanges("ajout dans TimeHistory id : " + taskUserTimeHistory.TaskUserTimeHistoryID,_context);
                _context.SaveChanges();
                return(true);
            }
            catch (Exception)
            {
                //MessageBox.Show(e.ToString());
                return(false);
            }
        }
예제 #10
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 !!");
            }
        }