예제 #1
0
        public ObservableCollection <string> GetListePrenom()
        {
            ObservableCollection <string> result = new ObservableCollection <string>();

            using  (ReaPlanDBEntities context = new  ReaPlanDBEntities())
            {
                ObjectSet <PatientDB> query = context.PatientDBs;

                ObjectResult <PatientDB> queryResult = query.Execute(MergeOption.AppendOnly);
                foreach (PatientDB patient in queryResult)
                {
                    result.Add(patient.Prenom);
                }
            }

            ObservableCollection <string> ListSansDuplication = new ObservableCollection <string>();

            foreach (string s in result)
            {
                if (!ListSansDuplication.Contains(s))
                {
                    ListSansDuplication.Add(s);
                }
            }

            return(ListSansDuplication);
        }
예제 #2
0
        private void RecherchePatient()
        {
            try
            {
                ResultRech = new ObservableCollection <ListePatientDataGrid>();
                ObjectResult <PatientDB> queryResult = PatientData.RecherchePateint2();

                using (ReaPlanDBEntities context = new ReaPlanDBEntities())
                {
                    ObjectSet <PatientDB> query = context.PatientDBs;
                    queryResult = query.Execute(MergeOption.AppendOnly);

                    foreach (PatientDB result in queryResult)
                    {
                        if (result.Nom == SelectN || result.Prenom == SelectP)
                        {
                            if (singleUser.PatientSingleton == null || (result.Nom != singleUser.PatientSingleton.Nom || result.Prenom != singleUser.PatientSingleton.Prenom || result.DateNaissance != singleUser.PatientSingleton.DateNaiss))
                            {
                                ListePatientDataGrid p = new ListePatientDataGrid();
                                p.Nom             = result.Nom;
                                p.Prenom          = result.Prenom;
                                p.DateDeNaissance = result.DateNaissance.ToShortDateString();
                                ResultRech.Add(p);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                GestionErreur.GerrerErreur(ex);
            }
        }
예제 #3
0
        //Permet de savoir si un admin est présent dans la bd
        public static bool AdminInBd()
        {
            //permet au TU de donner la fausse BD
            if (conn == null)
            {
                bdd = new ReaPlanDBEntities();
            }
            else
            {
                bdd = new ReaPlanDBEntities(conn);
            }

            using (bdd)
            {
                var requete = from c in bdd.TherapeuteDBs
                              where c.Administrateur == true
                              select c;
                TherapeuteDB admin = requete.FirstOrDefault();
                if (admin == null)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
예제 #4
0
        public static void InscriptionTherapeute(string nom, string prenom, string login, string pass, bool isAdmin)
        {
            //permet au TU de donner la fausse BD
            if (conn == null)
            {
                bdd = new ReaPlanDBEntities();
            }
            else
            {
                bdd = new ReaPlanDBEntities(conn);
            }

            nom = nom.ToUpper();
            using (bdd)
            {
                //Cryptage du mot de passe
                if (pass != null)
                {
                    string       passwordTmp   = login.ToLower() + pass;
                    UTF8Encoding textConverter = new UTF8Encoding();
                    byte[]       passBytes     = textConverter.GetBytes(passwordTmp);
                    pass = Convert.ToBase64String(new SHA384Managed().ComputeHash(passBytes));
                }

                TherapeuteDB thera = TherapeuteDB.CreateTherapeuteDB(nom, prenom, login, pass);
                if (isAdmin == true)
                {
                    thera.Administrateur = true;
                }
                bdd.AddToTherapeuteDBs(thera);
                bdd.SaveChanges();
            }
        }
예제 #5
0
        public static TherapeuteDB Connexion(string login, string pass)
        {
            //permet au TU de donner la fausse BD
            if (conn == null)
            {
                bdd = new ReaPlanDBEntities();
                UiServices.SetBusyState();
            }
            else
            {
                bdd = new ReaPlanDBEntities(conn);
            }

            //Cryptage du mot de passe entré pour le comparer avec le mdp crypté de la bd
            if (pass != null && login != null)
            {
                string       password      = login.ToLower() + pass;
                UTF8Encoding textConverter = new UTF8Encoding();
                byte[]       passBytes     = textConverter.GetBytes(password);
                pass = Convert.ToBase64String(new SHA384Managed().ComputeHash(passBytes));
            }

            using (bdd)
            {
                var requete = from c in bdd.TherapeuteDBs
                              where c.Login == login &&
                              c.MotDePasse == pass
                              select c;
                TherapeuteDB therapeute = requete.FirstOrDefault();
                return(therapeute);
            }
        }
예제 #6
0
        public static void SupPatient(string nom, string prenom, DateTime dateNaissance)
        {
            //permet au TU de donner la fausse BD
            if (conn == null)
            {
                context = new ReaPlanDBEntities();
                string dossier = "Files/Patients/" + nom + prenom + dateNaissance.ToShortDateString().ToString().Replace("/", string.Empty);
                if (Directory.Exists(dossier))
                {
                    DirectoryInfo directory = new DirectoryInfo(dossier);
                    directory.Delete(true);
                }
            }
            else
            {
                context = new ReaPlanDBEntities(conn);
            }

            using (context)
            {
                var requete = from c in context.PatientDBs
                              where c.Nom == nom &&
                              c.Prenom == prenom &&
                              c.DateNaissance == dateNaissance
                              select c;

                var patient = requete.FirstOrDefault();

                var requeteEx = from c in context.ExerciceDBs
                                where c.IdPatient == patient.IdPatient
                                select c;


                //requeteEx.ToList().ForEach((ExerciceDB ex) =>
                //        {
                //            var requeteParamEx = from c in context.ParametreExDBs
                //                                where c.IdExercice == ex.IdExercice
                //                                select c;
                //            requeteParamEx.ToList().ForEach((ParametreExDB ParamEx) =>
                //            {
                //                context.DeleteObject(ParamEx);
                //                context.SaveChanges();
                //            });
                //            context.DeleteObject(ex);
                //            context.SaveChanges();
                //        });

                if (patient != null)
                {
                    context.DeleteObject(patient);
                    context.SaveChanges();
                }
            }
        }
예제 #7
0
        //public static XDocument LoadFileResult(string dossier,string exercice)
        //{
        //    XDocument fileResult = XDocument.Load(@"../../Files/Patients/" + dossier + "/Evaluation/" + exercice + ".xml");
        //    return fileResult;
        //}

        //public static XDocument LoadFileNorme(string exercice)
        //{
        //    XDocument fileNorme = XDocument.Load(@"../../Files/Normes/Evaluation/" + exercice + ".xml");
        //    return fileNorme;
        //}

        public static List <PointEvoEval> ReturnVal(int nomParametre)
        {
            List <PointEvoEval> value = new List <PointEvoEval>();

            user = Singleton.getInstance();

            using (ReaPlanDBEntities context = new ReaPlanDBEntities())
            {
                var requete = from c in context.PatientDBs
                              where c.Nom == user.PatientSingleton.Nom &&
                              c.Prenom == user.PatientSingleton.Prenom &&
                              c.DateNaissance == user.PatientSingleton.DateNaiss.Date
                              select c;

                var patient = requete.FirstOrDefault();

                var requeteEx = from c in context.ExerciceDBs
                                where c.IdPatient == patient.IdPatient
                                select c;

                requeteEx.ToList().ForEach((ExerciceDB ex) =>
                {
                    PointEvoEval p = new PointEvoEval();

                    var resu = from c in context.ParametreExDBs
                               where c.IdParametreJeuDB == nomParametre &&
                               c.IdExercice == ex.IdExercice
                               select c;

                    foreach (var item in resu)
                    {
                        if (item.Resultat != null)
                        {
                            p.Moyenne = Convert.ToDouble(item.Resultat);
                            p.Date    = ex.Date;

                            value.Add(p);
                        }
                    }

                    //requeteParamEx.ToList().ForEach((ParametreExDB ParamEx) =>
                    //{
                    //    context.DeleteObject(ParamEx);
                    //    context.SaveChanges();
                    //});
                    //context.DeleteObject(ex);
                    //context.SaveChanges();
                });
                return(value);
            }
        }
예제 #8
0
        public void Init()
        {
            dateNaissance = DateTime.Now;
            EntityConnection connection = Effort.EntityConnectionFactory.CreateTransient("name=ReaPlanDBEntities");

            context = new ReaPlanDBEntities(connection);
            //creation d'un patient test dans la fausse BD
            PatientDB patient = PatientDB.CreatePatientDB("pat", "paul", dateNaissance, "M", (decimal)172, (decimal)66, 123, 26);

            context.AddToPatientDBs(patient);
            context.SaveChanges();

            PatientData.conn = connection;
        }
예제 #9
0
        public static void returnNorme(double[] TabNorme, int valeur)
        {
            double constanteA = 0, y0 = 0;
            double deviationStandard = 0;
            int    age;

            List <PointEvoEval> value = new List <PointEvoEval>();

            user = Singleton.getInstance();
            age  = CalculateAge(user.PatientSingleton.DateNaiss);

            using (ReaPlanDBEntities context = new ReaPlanDBEntities())
            {
                var requete = from c in context.PatientDBs
                              where c.Nom == user.PatientSingleton.Nom &&
                              c.Prenom == user.PatientSingleton.Prenom &&
                              c.DateNaissance == user.PatientSingleton.DateNaiss.Date
                              select c;

                var patient = requete.FirstOrDefault();

                var requeteEx = from c in context.ExerciceDBs
                                where c.IdPatient == patient.IdPatient
                                select c;

                requeteEx.ToList().ForEach((ExerciceDB ex) =>
                {
                    PointEvoEval p = new PointEvoEval();

                    var resu = from c in context.ParametreJeuDBs
                               where c.IdParametreJeuDB == valeur
                               select c;

                    foreach (var item in resu)
                    {
                        if (item != null)
                        {
                            constanteA        = Convert.ToDouble(item.ConstanteA);
                            y0                = Convert.ToDouble(item.Yo);
                            deviationStandard = Convert.ToDouble(item.DeviationStandard);
                        }
                    }
                });
            }
            TabNorme[0] = (y0 + (constanteA * age) + deviationStandard);
            TabNorme[1] = deviationStandard;
        }
예제 #10
0
        public static ExerciceBaseConfig LoadLastConfigPourExercice(string nomExo)
        {
            ExerciceBaseConfig config = LoadExerciceBaseConfig();
            var patientSingleton      = Singleton.getInstance().PatientSingleton;

            using (ReaPlanDBEntities db = new ReaPlanDBEntities())
            {
                PatientDB pat = (from p in db.PatientDBs
                                 where p.Id1 == patientSingleton.ID1 &&
                                 p.Id2 == patientSingleton.ID2 &&
                                 p.DateNaissance == patientSingleton.DateNaiss
                                 select p).FirstOrDefault();
                if (pat != null)
                {
                    JeuDB jeu = (from j in db.JeuDBs
                                 where j.NomJeu == nomExo
                                 select j).FirstOrDefault();

                    if (jeu != null)
                    {
                        ExerciceDB exo = (from e in db.ExerciceDBs
                                          where e.IdPatient == pat.IdPatient &&
                                          e.IdJeu == jeu.IdJeu
                                          orderby e.Date
                                          orderby e.Heure descending
                                          select e).FirstOrDefault();

                        if (exo != null)
                        {
                            ConfigJeuDB conf = (from c in db.ConfigJeuDBs
                                                where c.IdExercice == exo.IdExercice
                                                select c).FirstOrDefault();

                            if (conf != null)
                            {
                                config.Init        = (byte)conf.Initialisation;
                                config.RaideurLat  = (byte)conf.RaideurLat;
                                config.RaideurLong = (byte)conf.RaideurLong;
                                config.Vitesse     = (byte)conf.Vitesse;
                            }
                        }
                    }
                }
                return(config);
            }
        }
예제 #11
0
        public static void ModificationPatient(Patient oldPat, Patient newPat)
        {
            if (conn == null)
            {
                context = new ReaPlanDBEntities();
            }
            else
            {
                context = new ReaPlanDBEntities(conn);
            }

            Singleton singlePatient = Singleton.getInstance();
            string    newDossier    = "Files/Patients/" + newPat.Nom + newPat.Prenom + newPat.DateNaiss.ToShortDateString().ToString().Replace("/", string.Empty);
            string    dossier       = "Files/Patients/" + oldPat.Nom + oldPat.Prenom + oldPat.DateNaiss.ToShortDateString().ToString().Replace("/", string.Empty);

            if (dossier != newDossier)
            {
                if (Directory.Exists(dossier))
                {
                    System.IO.Directory.Move(dossier, newDossier);
                }
            }


            using (context)
            {
                PatientDB patient = (from c in context.PatientDBs
                                     where c.Nom == singlePatient.PatientSingleton.Nom &&
                                     c.Prenom == singlePatient.PatientSingleton.Prenom &&
                                     c.DateNaissance == singlePatient.PatientSingleton.DateNaiss.Date
                                     select c).FirstOrDefault();
                if (patient != null)
                {
                    patient.Nom           = newPat.Nom;
                    patient.Prenom        = newPat.Prenom;
                    patient.DateNaissance = newPat.DateNaiss;
                    patient.Poids         = (decimal)newPat.Poid;
                    patient.Taille        = newPat.Taille;
                    patient.Sexe          = newPat.Sexe.ToString();
                    patient.Id1           = newPat.ID1;
                    patient.Id2           = newPat.ID2;
                    context.SaveChanges();
                }
            }
        }
예제 #12
0
        public static ObjectResult <PatientDB> RecherchePateint2()//Recherche de tout les patients sauf celui connecter
        {
            if (conn == null)
            {
                context = new ReaPlanDBEntities();
            }
            else
            {
                context = new ReaPlanDBEntities(conn);
            }

            using (context)
            {
                ObjectSet <PatientDB>    query       = context.PatientDBs;
                ObjectResult <PatientDB> queryResult = query.Execute(MergeOption.AppendOnly);
                return(queryResult);
            }
        }
예제 #13
0
        public void SupPatient()
        {
            try
            {
                if (MessageBox.Show(AxLanguage.Languages.REAplan_Supprimer_Confirmation, AxLanguage.Languages.REAplan_Confirmation, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    Singleton single          = Singleton.getInstance();
                    DateTime  DateDeNaissance = Convert.ToDateTime(SelectResultRech.DateDeNaissance);
                    PatientData.SupPatient(SelectResultRech.Nom, SelectResultRech.Prenom, DateDeNaissance);

                    MessageBox.Show(AxLanguage.Languages.REAplan_Supprimer_Patient, AxLanguage.Languages.REAplan_Suppression, MessageBoxButton.OK, MessageBoxImage.Exclamation);

                    ResultRech = new ObservableCollection <ListePatientDataGrid>();
                    using (ReaPlanDBEntities context = new ReaPlanDBEntities())
                    {
                        ObjectSet <PatientDB>    query       = context.PatientDBs;
                        ObjectResult <PatientDB> queryResult = query.Execute(MergeOption.AppendOnly);
                        foreach (PatientDB result in queryResult)
                        {
                            if (result.Nom == SelectN || result.Prenom == SelectP)
                            {
                                if (single.PatientSingleton == null || (result.Nom != single.PatientSingleton.Nom || result.Prenom != single.PatientSingleton.Prenom || result.DateNaissance != single.PatientSingleton.DateNaiss))
                                {
                                    ListePatientDataGrid p = new ListePatientDataGrid();
                                    p.Nom             = result.Nom;
                                    p.Prenom          = result.Prenom;
                                    p.DateDeNaissance = result.DateNaissance.ToShortDateString();
                                    ResultRech.Add(p);
                                }
                            }
                        }
                    }
                    ListeNom      = GetListeNom();
                    ListePrenom   = GetListePrenom();
                    NomPatient    = null;
                    PrenomPatient = null;
                }
                SimpleIoc.Default.GetInstance <INavigation>().NavigateTo <HomeViewModel>(null, "PostTraitementSupression", null, false);
            }
            catch (Exception ex)
            {
                GestionErreur.GerrerErreur(ex);
            }
        }
예제 #14
0
        public static void InscriptionPatient(Patient pat)
        {
            if (conn == null)
            {
                context = new ReaPlanDBEntities();
                pat.CreeDossier();
            }
            else
            {
                context = new ReaPlanDBEntities(conn);
            }


            using (context)
            {
                PatientDB patient = PatientDB.CreatePatientDB(pat.Nom, pat.Prenom, pat.DateNaiss, pat.Sexe, (decimal)pat.Taille, (decimal)pat.Poid, pat.ID1, pat.ID2);
                context.AddToPatientDBs(patient);
                context.SaveChanges();
            }
        }
예제 #15
0
        public void Init()
        {
            EntityConnection connection = Effort.EntityConnectionFactory.CreateTransient("name=ReaPlanDBEntities");

            context = new ReaPlanDBEntities(connection);

            //creation d'un faux therapeute adminstrateur
            pass  = "******";// = admin
            thera = TherapeuteDB.CreateTherapeuteDB("pedro", "drope", "admin", pass);
            thera.Administrateur = true;
            context.AddToTherapeuteDBs(thera);

            //creation d'un faux therapeute non adminstrateur
            pass  = "******";// = 123456
            thera = TherapeuteDB.CreateTherapeuteDB("jacko", "michel", "jackmich", pass);
            thera.Administrateur = false;
            context.AddToTherapeuteDBs(thera);

            context.SaveChanges();
            AdminData.conn = connection;
        }
예제 #16
0
        public static PatientDB RecherchePatient(string nom, string prenom, DateTime dateNaissance)
        {
            if (conn == null)
            {
                context = new ReaPlanDBEntities();
            }
            else
            {
                context = new ReaPlanDBEntities(conn);
            }

            using (context)
            {
                var requete = from c in context.PatientDBs
                              where c.Nom == nom &&
                              c.Prenom == prenom &&
                              c.DateNaissance == dateNaissance
                              select c;

                PatientDB patient = requete.FirstOrDefault();
                return(patient);
            }
        }
예제 #17
0
        private static void AjoutPartieDataBaseCircle(Circle exo)
        {
            Singleton singlePatient = Singleton.getInstance();

            using (ReaPlanDBEntities bdd = new ReaPlanDBEntities())
            {
                var requete = from c in bdd.JeuDBs
                              where c.NomJeu == "Circle"
                              select c;

                var jeuBD = requete.FirstOrDefault();

                var requeteP = from c in bdd.PatientDBs
                               where c.Nom == singlePatient.PatientSingleton.Nom &&
                               c.Prenom == singlePatient.PatientSingleton.Prenom &&
                               c.DateNaissance == singlePatient.PatientSingleton.DateNaiss
                               select c;
                var patient = requeteP.FirstOrDefault();

                var requeteA = from c in bdd.TherapeuteDBs
                               where c.Nom == singlePatient.Admin.Nom &&
                               c.Prenom == singlePatient.Admin.Prenom &&
                               c.Login == singlePatient.Admin.NomUtilisateur
                               select c;
                var thera = requeteA.FirstOrDefault();

                ExerciceDB ex = new ExerciceDB()
                {
                    Date          = DateTime.Now,
                    Heure         = DateTime.Now.TimeOfDay,
                    IdPatient     = patient.IdPatient,
                    IdUtilisateur = thera.IdUtilisateur,
                    IdJeu         = jeuBD.IdJeu
                };

                bdd.AddToExerciceDBs(ex);
                bdd.SaveChanges();

                //Recherche de l'id du dernier ex fait par le patient
                var requeteExDB = from c in bdd.ExerciceDBs
                                  select c;

                var exDB = requeteExDB.AsEnumerable().LastOrDefault();

                //Ajout pour amplitude
                var requeteParamPrecision = from c in bdd.ParametreJeuDBs
                                            where c.LibelleParametre == "ShapeAccuracy" &&
                                            c.IdJeu == jeuBD.IdJeu
                                            select c;
                var paramJeuPrecision = requeteParamPrecision.FirstOrDefault();

                ParametreExDB paramExDBPrecision = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramJeuPrecision.IdParametreJeuDB,
                    Resultat             = (decimal)exo.ShapeAccuracy,
                    CoefficientVariation = (decimal)exo.CVShapeAccuracy,
                    EcartType            = (decimal)exo.EcartTypeSA
                };

                bdd.AddToParametreExDBs(paramExDBPrecision);
                bdd.SaveChanges();

                //Ajout pour vitesse moyenne
                var requeteParamVitM = from c in bdd.ParametreJeuDBs
                                       where c.LibelleParametre == "Speed" &&
                                       c.IdJeu == jeuBD.IdJeu
                                       select c;
                var paramjeuVitM = requeteParamVitM.FirstOrDefault();

                ParametreExDB paramExDBVitM = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramjeuVitM.IdParametreJeuDB,
                    Resultat             = (decimal)exo.VitesseMoy,
                    CoefficientVariation = (decimal)exo.CVVitesseMoy,
                    EcartType            = (decimal)exo.EcartTypeVMoy
                };

                bdd.AddToParametreExDBs(paramExDBVitM);
                bdd.SaveChanges();

                //Ajout pour vitesse max
                var requeteParamVitMax = from c in bdd.ParametreJeuDBs
                                         where c.LibelleParametre == "PeakSpeed" &&
                                         c.IdJeu == jeuBD.IdJeu
                                         select c;
                var paramjeuVitMax = requeteParamVitMax.FirstOrDefault();

                ParametreExDB paramExDBVitMax = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramjeuVitMax.IdParametreJeuDB,
                    Resultat             = (decimal)exo.VitesseMax,
                    CoefficientVariation = (decimal)exo.CVVitesseMax,
                    EcartType            = (decimal)exo.EcartTypeVMax
                };

                bdd.AddToParametreExDBs(paramExDBVitMax);
                bdd.SaveChanges();

                //Ajout pour speedMetric
                var requeteParamSM = from c in bdd.ParametreJeuDBs
                                     where c.LibelleParametre == "SpeedMetric" &&
                                     c.IdJeu == jeuBD.IdJeu
                                     select c;
                var paramjeuSM = requeteParamSM.FirstOrDefault();

                ParametreExDB paramExDBSM = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramjeuSM.IdParametreJeuDB,
                    Resultat             = (decimal)exo.SpeedMetric,
                    CoefficientVariation = (decimal)exo.CVSpeedMetric,
                    EcartType            = (decimal)exo.EcartTypeSM
                };

                bdd.AddToParametreExDBs(paramExDBSM);
                bdd.SaveChanges();

                //Ajout pour speedMetric
                var requeteParamJM = from c in bdd.ParametreJeuDBs
                                     where c.LibelleParametre == "Jerk" &&
                                     c.IdJeu == jeuBD.IdJeu
                                     select c;
                var paramjeuJM = requeteParamJM.FirstOrDefault();

                ParametreExDB paramExDBJM = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramjeuJM.IdParametreJeuDB,
                    Resultat             = (decimal)exo.JerkMetric,
                    CoefficientVariation = (decimal)exo.CVJerkMetric,
                    EcartType            = (decimal)exo.EcartTypeJM
                };

                bdd.AddToParametreExDBs(paramExDBJM);
                bdd.SaveChanges();
            }
        }
예제 #18
0
        public static List <PointEvoEval> ReturnPoint(int param, string nomJeu)
        {
            List <PointEvoEval> value = new List <PointEvoEval>();

            user = Singleton.getInstance();

            using (ReaPlanDBEntities context = new ReaPlanDBEntities())
            {
                var requete = from c in context.PatientDBs
                              where c.Nom == user.PatientSingleton.Nom &&
                              c.Prenom == user.PatientSingleton.Prenom &&
                              c.DateNaissance == user.PatientSingleton.DateNaiss.Date
                              select c;

                var patient = requete.FirstOrDefault();

                JeuDB jeu = (from j in context.JeuDBs
                             where j.NomJeu == nomJeu
                             select j).FirstOrDefault();

                var requeteEx = (from c in context.ExerciceDBs
                                 where c.IdPatient == patient.IdPatient &&
                                 c.IdJeu == jeu.IdJeu
                                 select c);
                //trie les exo par date puis par heure du plus grand au plus petit)
                var listeExerciceOrdre     = requeteEx.OrderByDescending(c => c.Date).ThenBy(h => h.Heure);
                List <ExerciceDB> listeExo = new List <ExerciceDB>();
                //cree une liste d'exo avec seulement le dernier exo de chaque jours
                for (int i = 0; i < listeExerciceOrdre.Count(); i++)
                {
                    if (i < listeExerciceOrdre.Count() - 1)
                    {
                        if (listeExerciceOrdre.ToArray().ElementAt(i).Date != listeExerciceOrdre.ToArray().ElementAt(i + 1).Date)
                        {
                            listeExo.Add(listeExerciceOrdre.ToArray().ElementAt(i));
                        }
                    }
                    else
                    {
                        listeExo.Add(listeExerciceOrdre.ToArray().ElementAt(i));
                    }
                }


                foreach (var exo in listeExo)
                {
                    PointEvoEval p    = new PointEvoEval();
                    var          resu = from c in context.ParametreExDBs
                                        where c.IdParametreJeuDB == param &&
                                        c.IdExercice == exo.IdExercice
                                        select c;
                    if (resu.ToArray().Count() != 0)
                    {
                        p.Moyenne = Convert.ToDouble(resu.ToArray().ElementAt(0).Resultat);
                        p.EcartT  = Convert.ToDouble(resu.ToArray().ElementAt(0).EcartType);
                        p.CV      = Convert.ToDouble(resu.ToArray().ElementAt(0).CoefficientVariation);
                        p.Date    = exo.Date;
                        value.Add(p);
                    }
                }
                //inverse l'ordre d'apparition des dates
                value.Reverse();
                return(value);
            }
        }
예제 #19
0
        public static void AjoutPartieDataBaseJeu(ExerciceBaseConfig config)
        {
            Singleton           singlePatient = Singleton.getInstance();
            string              dossier       = singlePatient.Patient.Nom + singlePatient.Patient.Prenom + singlePatient.Patient.DateDeNaissance.ToString().Replace("/", string.Empty);
            ExerciceReeducation exo           = new ExerciceReeducation();

            exo.CalculerMoyenneEtCV(dossier);

            using (ReaPlanDBEntities bdd = new ReaPlanDBEntities())
            {
                var requete = from c in bdd.JeuDBs
                              where c.NomJeu == "MvtsComplexes"
                              select c;

                var jeuBD = requete.FirstOrDefault();

                var requeteP = from c in bdd.PatientDBs
                               where c.Nom == singlePatient.PatientSingleton.Nom &&
                               c.Prenom == singlePatient.PatientSingleton.Prenom &&
                               c.DateNaissance == singlePatient.PatientSingleton.DateNaiss.Date
                               select c;
                var patient = requeteP.FirstOrDefault();

                var requeteA = from c in bdd.TherapeuteDBs
                               where c.Nom == singlePatient.Admin.Nom &&
                               c.Prenom == singlePatient.Admin.Prenom &&
                               c.Login == singlePatient.Admin.NomUtilisateur
                               select c;
                var thera = requeteA.FirstOrDefault();

                ExerciceDB ex = new ExerciceDB()
                {
                    Date          = DateTime.Now,
                    Heure         = DateTime.Now.TimeOfDay,
                    IdPatient     = patient.IdPatient,
                    IdUtilisateur = thera.IdUtilisateur,
                    IdJeu         = jeuBD.IdJeu
                };

                bdd.AddToExerciceDBs(ex);
                bdd.SaveChanges();

                //Recherche de l'id du dernier ex fait par le patient
                var requeteExDB = from c in bdd.ExerciceDBs
                                  select c;

                var exDB = requeteExDB.AsEnumerable().LastOrDefault();

                //Enregistrement de la config
                ConfigJeuDB configJeu = new ConfigJeuDB()
                {
                    IdExercice     = exDB.IdExercice,
                    RaideurLat     = config.RaideurLat,
                    RaideurLong    = config.RaideurLong,
                    Vitesse        = config.Vitesse,
                    Initialisation = config.Init
                };

                bdd.AddToConfigJeuDBs(configJeu);
                bdd.SaveChanges();

                //Ajout pour vitesse
                var requeteParamAmplitude = from c in bdd.ParametreJeuDBs
                                            where c.LibelleParametre == "Vitesse" &&
                                            c.IdJeu == jeuBD.IdJeu
                                            select c;
                var paramJeuAmplitude = requeteParamAmplitude.FirstOrDefault();

                ParametreExDB paramExDBAmplitude = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramJeuAmplitude.IdParametreJeuDB,
                    Resultat             = (decimal)exo.VitesseMoyenne,
                    CoefficientVariation = (decimal)exo.CVVitesseMoyenne,
                };

                bdd.AddToParametreExDBs(paramExDBAmplitude);
                bdd.SaveChanges();

                ////Ajout pour init
                var requeteParamVitM = from c in bdd.ParametreJeuDBs
                                       where c.LibelleParametre == "Init" &&
                                       c.IdJeu == jeuBD.IdJeu
                                       select c;
                var paramjeuVitM = requeteParamVitM.FirstOrDefault();

                ParametreExDB paramExDBVitM = new ParametreExDB()
                {
                    IdExercice       = exDB.IdExercice,
                    IdParametreJeuDB = paramjeuVitM.IdParametreJeuDB,
                    Resultat         = (decimal)exo.InitMoyen,
                    EcartType        = (decimal)exo.CVInit
                };

                bdd.AddToParametreExDBs(paramExDBVitM);
                bdd.SaveChanges();

                //Ajout pour klat
                var requeteParamVitMax = from c in bdd.ParametreJeuDBs
                                         where c.LibelleParametre == "AssisLat" &&
                                         c.IdJeu == jeuBD.IdJeu
                                         select c;
                var paramjeuVitMax = requeteParamVitMax.FirstOrDefault();

                ParametreExDB paramExDBVitMax = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramjeuVitMax.IdParametreJeuDB,
                    Resultat             = (decimal)exo.RaideurLatMoyenne,
                    CoefficientVariation = (decimal)exo.CVRaideurLat
                };

                bdd.AddToParametreExDBs(paramExDBVitMax);
                bdd.SaveChanges();

                //Ajout pour klong
                var requeteParamSt = from c in bdd.ParametreJeuDBs
                                     where c.LibelleParametre == "AssisLong" &&
                                     c.IdJeu == jeuBD.IdJeu
                                     select c;
                var paramjeuSt = requeteParamSt.FirstOrDefault();

                ParametreExDB paramExDBSt = new ParametreExDB()
                {
                    IdExercice           = exDB.IdExercice,
                    IdParametreJeuDB     = paramjeuSt.IdParametreJeuDB,
                    Resultat             = (decimal)exo.RaideurLongMoyenne,
                    CoefficientVariation = (decimal)exo.CVRaideurLong
                };

                bdd.AddToParametreExDBs(paramExDBSt);
                bdd.SaveChanges();

                //Ajout pour nbrMouvement
                var requeteParamSM = from c in bdd.ParametreJeuDBs
                                     where c.LibelleParametre == "NbMouvements" &&
                                     c.IdJeu == jeuBD.IdJeu
                                     select c;
                var paramjeuSM = requeteParamSM.FirstOrDefault();

                ParametreExDB paramExDBSM = new ParametreExDB()
                {
                    IdExercice       = exDB.IdExercice,
                    IdParametreJeuDB = paramjeuSM.IdParametreJeuDB,
                    Resultat         = (decimal)exo.NbrMouvement,
                };

                bdd.AddToParametreExDBs(paramExDBSM);
                bdd.SaveChanges();
            }
        }