예제 #1
0
        /// <summary>
        /// Modifie les visites de la base centrale
        /// </summary>
        private void SynchronisationModification()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            var visitesCentrales = repoVisiteCentrale.GetAll();

            var visitesLocales = repoVisiteLocale.GetWithAnUpdateDate();

            foreach (var visite in visitesLocales)
            {
                var temp = visitesCentrales.FirstOrDefault(w => w.Guid == visite.Guid);
                if (temp != null)
                {
                    //DateTime fromLocale = DateTime.Parse();
                    //DateTime fromCentrale = DateTime.Parse();
                    if (temp.DateUpdate.HasValue)
                    {
                        int result = DateTime.Compare(visite.DateUpdate.Value, temp.DateUpdate.Value);

                        // Si la date locale est supérieur à la date centrale
                        if (result > 0)
                        {
                            repoVisiteCentrale.Update(visite);
                        }
                    }
                    else
                    {
                        repoVisiteCentrale.Update(visite);
                    }
                }
            }
        }
        public UserControlVisites(Utilisateur utilisateur)
        {
            InitializeComponent();
            _user = utilisateur;
            VisiteRepository      repoVisite      = new VisiteRepository();
            UtilisateurRepository repoUtilisateur = new UtilisateurRepository();

            if (_user.type == 2)
            {
                DialogHostButton.Visibility = Visibility.Collapsed;
                // TODO: A passer à 1 quand ce sera le nom/prénom et non l'id
                ColHeaderVisiteur.Width = 0;
                VisitListView.Width     = double.NaN;
                VisitListView.Margin    = new Thickness(370, 0, 0, 0);
                ColHeaderModifBtn.Width = 0;
                ColHeaderDelBtn.Width   = 0;
                ColHeaderMedecin.Width  = 0;
                Visites listeVisitesMedecin = repoVisite.GetVisiteAllByIdMedecin(_user.id, _user);
                afficherListeByMedecin(listeVisitesMedecin.ListeVisites);
            }
            else
            {
                ColHeaderMedecin.Width  = double.NaN;
                ColHeaderVisiteur.Width = 0;
                VisitListView.Margin    = new Thickness(170, 0, 0, 0);
                Visites      listeVisites  = repoVisite.GetVisiteAllByIdVisiteur(_user.id, _user);
                Utilisateurs listeMedecins = repoUtilisateur.GetMedecinVisiteur(_user.id, _user);
                afficherListe(listeVisites.ListeVisites, listeMedecins);
            }
        }
        //public bool ValidValues()
        //{
        //    //Utilisateur medecin = (Utilisateur)DoctorComboBox.SelectedItem;
        //    //DateTime dateVisite = DateTime.Parse(dateVisiteDatePicker.Text);
        //    //heureDebutTimePicker
        //    //DateTime heureDepart = DateTime.Parse(heureDepartTimePicker.Text);

        //    if(medecin == null)
        //    {
        //        MessageBox.Show("Sélectionnez un médecin");
        //        return false;
        //    }
        //    if (dateVisite == null)
        //    {
        //        MessageBox.Show("Il faut spécifier la date de visite.");
        //        return false;
        //    }
        //    else if ((heureDebut == null) && (heureDepart != null))
        //    {
        //        MessageBox.Show("Vous ne pouvez pas renseigner d'heure de départ si une heure 'arrivée n'est pas spécifiée.");
        //        return false;
        //    }
        //    else if (heureDepart < heureDebut)
        //    {
        //        MessageBox.Show("Erreur : l'heure de départ du cabinet doit être supérieure à celle de début d'entretien.");
        //        return false;
        //    }

        //    return true;
        //}
        public void ButtonClick_ModifierVisite(object sender, RoutedEventArgs e)
        {
            int idVisite = int.Parse(idVisiteLabel.Content.ToString());

            bool        isRDV     = rdvComboBox.Text == "Oui" ? true : false;
            Utilisateur medecin   = (Utilisateur)DoctorComboBox.SelectedItem;
            int         idMedecin = medecin.id;

            int idVisiteur = _user.id;

            Visite visiteModif = new Visite(
                idVisite,
                idVisiteur,
                idMedecin,
                DateTime.Parse(dateVisiteDatePicker.Text),
                isRDV,
                DateTime.Parse(heureArriveeTimePicker.Text),
                DateTime.Parse(heureDebutTimePicker.Text),
                DateTime.Parse(heureDepartTimePicker.Text)
                );

            VisiteRepository visiteRepository = new VisiteRepository();

            visiteRepository.UpdateVisite(visiteModif, _user);

            MessageBox.Show("Visite modifiée");

            Visites listeVisites = visiteRepository.GetVisiteAllByIdVisiteur(_user.id, _user);
            UtilisateurRepository repoUtilisateur = new UtilisateurRepository();
            Utilisateurs          listeMedecins   = repoUtilisateur.GetMedecinAll(_user);

            afficherListe(listeVisites.ListeVisites, listeMedecins);
        }
        public void ButtonClick_AjouterVisite(object sender, RoutedEventArgs e)
        {
            if (ValidValues())
            {
                bool        isRDV     = rdvComboBox.Text == "Oui" ? true : false;
                Utilisateur medecin   = (Utilisateur)DoctorComboBox.SelectedItem;
                int         idMedecin = medecin.id;

                Visite nouvelleViste = new Visite(
                    _user.id,
                    idMedecin,
                    DateTime.Parse(dateVisiteDatePicker.Text),
                    isRDV,
                    DateTime.Parse(heureArriveeTimePicker.Text),
                    DateTime.Parse(heureDebutTimePicker.Text),
                    DateTime.Parse(heureDepartTimePicker.Text)
                    );

                VisiteRepository visiteRepository = new VisiteRepository();
                visiteRepository.CreateVisite(nouvelleViste, _user);

                MessageBox.Show("Visite créée");


                Visites listeVisites = visiteRepository.GetVisiteAllByIdVisiteur(_user.id, _user);
                UtilisateurRepository repoUtilisateur = new UtilisateurRepository();
                Utilisateurs          listeMedecins   = repoUtilisateur.GetMedecinAll(_user);
                afficherListe(listeVisites.ListeVisites, listeMedecins);
            }
            else
            {
                VisiteDialogHost.IsOpen = true;
            }
        }
예제 #5
0
        /// <summary>
        /// Recopie toutes les visites de la base centrale dans la base locale
        /// </summary>
        private void RapatriementBaseCentrale()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            repoVisiteLocale.DeleteAll();

            repoVisiteLocale.AddRange(repoVisiteCentrale.GetAll());
        }
예제 #6
0
        /// <summary>
        /// Supprime les visites de la base centrale
        /// </summary>
        private void SynchronisationSuppression()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            // Pour la suppresion, un champ de la ligne de visite est setter a true, il n'y as pas de vrai suppresion pour éviter
            // les conflits avec les possibles autres modifications, un système de purge est mis en place pour éviter ça
            var visitesLocales = repoVisiteLocale.GetDeleted();

            repoVisiteCentrale.FakeDelete(visitesLocales);
        }
        private void DeleteVisite(object sender, RoutedEventArgs e)
        {
            Button b      = sender as Button;
            Visite visite = b.CommandParameter as Visite;

            VisiteRepository visiteRepository = new VisiteRepository();

            visiteRepository.DeleteVisite(visite.id, _user);

            Visites listeVisites = visiteRepository.GetVisiteAllByIdVisiteur(_user.id, _user);
            UtilisateurRepository repoUtilisateur = new UtilisateurRepository();
            Utilisateurs          listeMedecins   = repoUtilisateur.GetMedecinAll(_user);

            afficherListe(listeVisites.ListeVisites, listeMedecins);
        }
예제 #8
0
        /// <summary>
        /// Ajoute les nouvelles visites à la base centrale
        /// </summary>
        private void SynchronisationAjout()
        {
            var visiteToAdd        = new List <Visite>();
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            var visitesCentrales = repoVisiteCentrale.GetAll();
            var visitesLocales   = repoVisiteLocale.GetAll();

            foreach (var visiteLocale in visitesLocales)
            {
                var matchs = visitesCentrales.Where(w => w.Guid == visiteLocale.Guid).ToList();
                if (matchs.IsNullOrEmpty())
                {
                    visiteToAdd.Add(visiteLocale);
                }
            }

            repoVisiteCentrale.AddRange(visiteToAdd);
        }
예제 #9
0
        static void Main(string[] args)
        {
            UtilisateurRepository repoUtilisateur = new UtilisateurRepository();
            VisiteRepository      repoVisite      = new VisiteRepository();
            Utilisateur           user            = new Utilisateur("nouveauMdecin", "PrenomNouveauMedecin",
                                                                    "identiMede", "pwdpwdM", "10840348", "*****@*****.**", 2);

            Utilisateur userUpdate = new Utilisateur(3, "Wacrenier", "Emilien", "emilienemilien",
                                                     "lololo", "065978", "emilien@gmail", 2);

            Utilisateurs listeMedecins = repoUtilisateur.GetMedecinALl();
            Utilisateur  unMedecin     = repoUtilisateur.GetMedecinById(3);
            Utilisateurs listeVisiteur = repoUtilisateur.GetVisiteurAll();
            Utilisateur  unVisiteur    = repoUtilisateur.GetVisiteurById(4);
            //repoUtilisateur.CreateMedecin(user);
            //repoUtilisateur.UpdateMedecin(userUpdate);
            //repoUtilisateur.DeleteMedecin(11);
            Visites listeVisite = repoVisite.GetVisiteAllByIdMedecin(3);

            Console.WriteLine("Instruction DEBUG");
        }
예제 #10
0
        /// <summary>
        /// Supprime toutes les données qui ont IsDeleted a true si jamais leur nombre est supérieur à 500
        /// </summary>
        public static void Purge()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            try
            {
                var deletedVisitesCentrale = repoVisiteCentrale.GetDeleted();
                if (deletedVisitesCentrale.Count > 500)
                {
                    repoVisiteCentrale.RemoveRange(deletedVisitesCentrale);
                }

                var deletedVisitesLocale = repoVisiteLocale.GetDeleted();
                if (deletedVisitesLocale.Count > 500)
                {
                    repoVisiteLocale.RemoveRange(deletedVisitesLocale);
                }
            }
            catch (Exception ex)
            {
            }
        }