/// <summary>
        /// Récupérer la liste des rendez vous non confirmé de chaque médecin
        /// </summary>
        /// <param name="praticienEmail"></param>
        /// <returns></returns>
        public ResultOfType <RendezVousResultModel> GetAllRendezVousNonConfirmeOuRejete(string praticienEmail)
        {
            DateTime currentDate = DateTime.Today;
            // Specify exactly how to interpret the string.
            IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

            try
            {
                Logger.LogInfo("GetAllRendezVousNonConfirmeOuRejete : Start.");
                if (string.IsNullOrEmpty(praticienEmail))
                {
                    return(new Return <RendezVousResultModel>()
                           .Error().AsValidationFailure(null, "Veuillez introduire votre praticien Cin.", "praticien")
                           .WithDefaultResult());
                }

                var rendezvous =
                    _rendezVousRepository.GetAll()
                    .Where(r => r.Praticien.Email == praticienEmail && r.Statut.Equals("NC") && DateTime.Parse(r.Creneaux.CurrentDate, culture, System.Globalization.DateTimeStyles.AssumeLocal).CompareTo(currentDate) >= 0).OrderBy(o => o.Creneaux.CurrentDate).Take(5);

                var data = new RendezVousResultModel();


                rendezvous.ForEach(rdv =>
                {
                    var dataModel = RendezVousWrapper.ConvertPatientEntityToDataModel(rdv);
                    //get patient info
                    var patient = _patientRepository.GetAll().FirstOrDefault(p => p.Email.Equals(dataModel.PatientCin));
                    if (patient != null)
                    {
                        if (!string.IsNullOrEmpty(patient.DateNaissance))
                        {
                            dataModel.PatientDateNaissance = patient.DateNaissance;
                        }
                        if (!string.IsNullOrEmpty(patient.NomPrenom))
                        {
                            dataModel.PatientNomPrenom = patient.NomPrenom;
                        }
                        if (!string.IsNullOrEmpty(patient.Adresse))
                        {
                            dataModel.PatientAdresse = patient.Adresse;
                        }
                        if (!string.IsNullOrEmpty(patient.Telephone))
                        {
                            dataModel.PatientTelephone = patient.Telephone;
                        }
                    }

                    data.Items.Add(dataModel);
                });


                Logger.LogInfo("Get RendezVous By Date And Praticien : End --- Status : OK");
                return(new Return <RendezVousResultModel>().OK().WithResult(data));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public ResultOfType <RdvResultModel> GetAllRendezVousParPatientEnCours(string patientEmail)
        {
            try
            {
                Logger.LogInfo("GetAllRendezVousParPatientEnCours : Start.");

                if (string.IsNullOrEmpty(patientEmail))
                {
                    return(new Return <RdvResultModel>()
                           .Error().AsValidationFailure(null, "Veuillez introduire votre patient Cin.", "praticien")
                           .WithDefaultResult());
                }
                // Specify exactly how to interpret the string.
                IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

                var rendezvous =
                    _rendezVousRepository.GetAll()
                    .Where(r => r.Patient.Email.Equals(patientEmail));


                var data = new RdvResultModel();


                rendezvous.ForEach(rdv =>
                {
                    if (rdv.Creneaux != null && !string.IsNullOrEmpty(rdv.Creneaux.CurrentDate))
                    {
                        DateTime dt2 = DateTime.Parse(rdv.Creneaux.CurrentDate, culture,
                                                      System.Globalization.DateTimeStyles.AssumeLocal);
                        int result = DateTime.Compare(dt2, DateTime.Now);
                        if (result >= 0)
                        {
                            var dataModel = RendezVousWrapper.ConvertPatientEntityToRdvResultModel(rdv);

                            //récupérer praticien

                            var praticien = _praticienRepository.GetAll().FirstOrDefault(p => p.Cin.Equals(rdv.Praticien.Cin));
                            if (praticien != null)
                            {
                                dataModel.PraticienNomPrenom  = praticien.NomPrenom;
                                dataModel.PraticienAdresse    = string.Format("{0} {1} {2}", praticien.Adresse, praticien.Delegation, praticien.Gouvernerat);
                                dataModel.PraticienSpecialite = praticien.Specialite;
                            }

                            //get praticien info

                            data.Items.Add(dataModel);
                        }
                    }
                });


                Logger.LogInfo("Get RendezVous By Date And Praticien : End --- Status : OK");
                return(new Return <RdvResultModel>().OK().WithResult(data));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public ResultOfType <RendezVousResultModel> GetRendezVousByDateAndPraticien(string praticien, string dateCurrent)
        {
            try
            {
                Logger.LogInfo("GetRendezVousByDateAndPraticien : Start.");

                if (string.IsNullOrEmpty(praticien))
                {
                    return(new Return <RendezVousResultModel>()
                           .Error().AsValidationFailure(null, "Veuillez introduire votre praticien Cin.", "praticien")
                           .WithDefaultResult());
                }

                if (string.IsNullOrEmpty(dateCurrent))
                {
                    return(new Return <RendezVousResultModel>()
                           .Error().AsValidationFailure(null, "Veuillez introduire votre date en cours.", "dateCurrent")
                           .WithDefaultResult());
                }

                var rendezvous =
                    _rendezVousRepository.GetAll()
                    .Where(r => r.Praticien.Email == praticien && r.Creneaux.CurrentDate.Equals(dateCurrent));

                var data = new RendezVousResultModel();


                rendezvous.ForEach(rdv =>
                {
                    var dataModel = RendezVousWrapper.ConvertPatientEntityToDataModel(rdv);
                    data.Items.Add(dataModel);
                });


                Logger.LogInfo("Get RendezVous By Date And Praticien : End --- Status : OK");
                return(new Return <RendezVousResultModel>().OK().WithResult(data));
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #4
0
        public ResultOfType <RendezVousResultModel> GetListOfRendezVousTousEnCours(string praticienEmail)
        {
            try
            {
                Logger.LogInfo("Get List Of Rendez Vous Tous En Cours With Take And Skip Parameters : Start.");
                if (string.IsNullOrEmpty(praticienEmail))
                {
                    return(new Return <RendezVousResultModel>().Error().As(EStatusDetail.NotFound).AddingGenericError(
                               null, "L'email introduit est vide!!").WithDefaultResult());
                }

                var rendezvous = _rendezVousRepository.GetAll().Where(p => p.Praticien.Email.Equals(praticienEmail));

                var             data    = new RendezVousResultModel();
                IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

                rendezvous.ForEach(rdv =>
                {
                    DateTime dt2 = DateTime.Parse(rdv.Creneaux.CurrentDate, culture,
                                                  System.Globalization.DateTimeStyles.AssumeLocal);
                    int result = DateTime.Compare(dt2, DateTime.Now);
                    if (result > 0)
                    {
                        var dataModel = RendezVousWrapper.ConvertPatientEntityToDataModel(rdv);
                        data.Items.Add(dataModel);
                    }
                });


                Logger.LogInfo("Get List Of Rendez Vous Tous En Cours : End --- Status : OK");
                return(new Return <RendezVousResultModel>().OK().WithResult(data));
            }
            catch (Exception ex)
            {
                throw;
            }
        }