Ejemplo n.º 1
0
        private IList <CalendrierDataModel> CalendrierFerie(ConfigurationPraticien configurationPraticien,
                                                            string startTimeMatin, string endTimeMatin, CalendrierDataModel calendrierStatus, string statut)
        {
            IList <CalendrierDataModel> calendrierList = new List <CalendrierDataModel>();

            //Ce jour est non visible pour les utilisateurs et vide pour le praticien
            while (startTimeMatin.Equals(endTimeMatin))
            {
                //Remplir le calendrier
                calendrierStatus.HeureDebutCalendrier = startTimeMatin;
                calendrierStatus.PatientCin           = null;
                calendrierStatus.PraticienCin         = configurationPraticien.Praticien.Cin;
                calendrierStatus.Statut = statut;
                calendrierList.Add(calendrierStatus);

                int minute = int.Parse(configurationPraticien.MinuteDebutMatin);
                int heure  = int.Parse(configurationPraticien.HeureDebutMatin);
                minute = minute + configurationPraticien.DecalageMinute;
                if (minute >= 60)
                {
                    minute = minute - 60;
                    heure  = heure + 1;
                }

                startTimeMatin = string.Concat(AddZero(heure.ToString()), ":", AddZero(minute.ToString()));
            }
            return(calendrierList);
        }
Ejemplo n.º 2
0
        private IList <CalendrierDataModel> CalendrierReservationStatus(ConfigurationPraticien configurationPraticien,
                                                                        string startTimeMatin,
                                                                        string endTimeMatin, CalendrierDataModel calendrierStatus, IList <RendezVous> rendezVousList)
        {
            IList <CalendrierDataModel> calendrierList = new List <CalendrierDataModel>();

            //Ce jour est non visible pour les utilisateurs et vide pour le praticien
            while (startTimeMatin.Equals(endTimeMatin))
            {
                //Remplir le calendrier
                calendrierStatus.HeureDebutCalendrier = startTimeMatin;
                calendrierStatus.PatientCin           = null;
                calendrierStatus.PraticienCin         = configurationPraticien.Praticien.Cin;
                string statut = "Pas de rendez vous";
                //TODO
                //foreach (var rendezvous in rendezVousList)
                //{
                //    var consultationTime = string.Concat(AddZero(rendezvous.HeureConsultation), ":",
                //        AddZero(rendezvous.MinuteConsultation));
                //    if (!consultationTime.Equals(startTimeMatin)) continue;
                //    statut = "Réservé";
                //    calendrierStatus.Statut = statut;
                //    calendrierStatus.PatientCin = rendezvous.Patient.Cin;
                //}

                calendrierStatus.Statut = statut;
                calendrierList.Add(calendrierStatus);

                int minute = int.Parse(configurationPraticien.MinuteDebutMatin);
                int heure  = int.Parse(configurationPraticien.HeureDebutMatin);
                minute = minute + configurationPraticien.DecalageMinute;
                if (minute >= 60)
                {
                    minute = minute - 60;
                    heure  = heure + 1;
                }

                startTimeMatin = string.Concat(AddZero(heure.ToString()), ":", AddZero(minute.ToString()));
            }
            return(calendrierList);
        }
Ejemplo n.º 3
0
        public ResultOfType <Null> PostCreneaux(string from, string to, string cinPraticien, string dateSelected)
        {
            try
            {
                if (string.IsNullOrEmpty(from))
                {
                    return(new Return <Null>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "heure de début null.").WithDefaultResult());
                }

                if (string.IsNullOrEmpty(to))
                {
                    return(new Return <Null>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "heure de fin null.").WithDefaultResult());
                }

                if (string.IsNullOrEmpty(cinPraticien))
                {
                    return(new Return <Null>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "Cin praticien vide.").WithDefaultResult());
                }


                if (string.IsNullOrEmpty(dateSelected))
                {
                    return(new Return <Null>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "Date courante non définit.").WithDefaultResult());
                }

                //Récupérer la configuration pour faire un décalage
                //var startHeure, endHeure;
                ConfigurationPraticien configurationPraticien =
                    _configurationPraticienRepository.GetAll().FirstOrDefault(c => c.Praticien.Cin == cinPraticien);

                if (configurationPraticien == null)
                {
                    return(new Return <Null>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "configurationPraticien est null.").WithDefaultResult());
                }
                Praticien praticien = _praticienRepository.GetAll().FirstOrDefault(p => p.Cin.Equals(cinPraticien));

                if (praticien == null)
                {
                    return(new Return <Null>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "praticien est null.").WithDefaultResult());
                }

                int heureFrom  = 0;
                int minuteFrom = 0;

                int heureTo  = 0;
                int minuteTo = 0;

                var splitFrom = from.Split(Convert.ToChar(":"));
                if (splitFrom.Count() == 2)
                {
                    heureFrom  = int.Parse(DeleteZero(splitFrom[0]));
                    minuteFrom = int.Parse(DeleteZero(splitFrom[1]));
                }

                var splitTo = to.Split(Convert.ToChar(":"));
                if (splitTo.Count() == 2)
                {
                    heureTo  = int.Parse(DeleteZero(splitTo[0]));
                    minuteTo = int.Parse(DeleteZero(splitTo[1]));
                }

                bool   isTheEnd  = false;
                string startTime = from;
                IList <CreneauDataModel> creneauDataModelList = new List <CreneauDataModel>();
                while (!(isTheEnd))
                {
                    isTheEnd = (heureFrom == heureTo && minuteFrom >= minuteTo);
                    string dateDebut = startTime;

                    minuteFrom = minuteFrom + configurationPraticien.DecalageMinute;
                    if (minuteFrom >= 60)
                    {
                        minuteFrom = minuteFrom - 60;
                        heureFrom  = heureFrom + 1;
                    }

                    startTime = string.Concat(AddZero(heureFrom.ToString(CultureInfo.InvariantCulture)), ":",
                                              AddZero(minuteFrom.ToString(CultureInfo.InvariantCulture)));


                    var creneau = new CreneauDataModel
                    {
                        PraticienEmail = praticien.Email,
                        CurrentDate    = dateSelected,
                        HeureDebut     = dateDebut,
                        HeureFin       = startTime,
                        Status         = "ND"
                    };

                    creneauDataModelList.Add(creneau);
                }

                PostNewCreneau(creneauDataModelList);

                return
                    (new Return <Null>().OK().WithDefaultResult());
            }

            catch (Exception ex)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        public ResultOfType <CalendrierResultModel> GetCalendrierParPraticienAndDate(
            ConfigurationPraticien configurationPraticien, DateTime?dateSelected)
        {
            Logger.LogInfo("GetCalendrierParPraticienAndDate : Start ");
            if (configurationPraticien == null)
            {
                return(new Return <CalendrierResultModel>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                           null, "La configuration n'a pas été effectué par le praticien.").WithDefaultResult());
            }
            if (dateSelected == null)
            {
                dateSelected = DateTime.UtcNow;
            }

            //Récupérer la liste des rendez vous par date et par praticien

            var listRendezVous =
                _rendezvousRepository.GetAll()
                .Where(
                    x =>

                    x.Praticien.Cin == configurationPraticien.Praticien.Cin);

            IList <CalendrierDataModel> calendrierPraticien = new List <CalendrierDataModel>();
            //Matin
            var startTimeMatin = string.Concat(AddZero(configurationPraticien.HeureDebutMatin), ":",
                                               AddZero(configurationPraticien.MinuteDebutMatin));
            var endTimeMatin = string.Concat(AddZero(configurationPraticien.HeureFinMatin), ":",
                                             AddZero(configurationPraticien.MinuteFinMatin));
            //Midi
            var startTimeMidi = string.Concat(AddZero(configurationPraticien.HeureDebutMidi), ":",
                                              AddZero(configurationPraticien.MinuteDebutMidi));
            var endTimeMidi = string.Concat(AddZero(configurationPraticien.HeureFinMidi), ":",
                                            AddZero(configurationPraticien.MinuteFinMidi));

            var calendrierStatus = new CalendrierDataModel();

            //Si on n'a pas de rendez vous dans ce jour alors on affiche le calendrier vide
            var rendezVousList = listRendezVous as IList <RendezVous> ?? listRendezVous.ToList();

            if (rendezVousList.ToList().Count == 0)
            {
                //C'est disponible
                const string statut = "Pas de rendez vous";
                calendrierPraticien.ToList()
                .AddRange(CalendrierFerie(configurationPraticien, startTimeMatin, endTimeMatin, calendrierStatus,
                                          statut));
                calendrierPraticien.ToList()
                .AddRange(CalendrierFerie(configurationPraticien, startTimeMidi, endTimeMidi, calendrierStatus,
                                          statut));
            }
            else
            {
                calendrierPraticien = CalendrierReservationStatus(configurationPraticien, startTimeMatin, endTimeMatin,
                                                                  calendrierStatus, rendezVousList);
                calendrierPraticien.ToList()
                .AddRange(CalendrierReservationStatus(configurationPraticien, startTimeMidi, endTimeMidi,
                                                      calendrierStatus, rendezVousList));
            }
            var data = new CalendrierResultModel {
                CalendrierPraticien = calendrierPraticien
            };

            Logger.LogInfo("GetCalendrierParPraticienAndDate : End.");
            return(new Return <CalendrierResultModel>().OK().WithResult(data));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// TODO
        /// </summary>
        /// <param name="praticien"></param>
        /// <param name="dateSelected"></param>
        /// <returns></returns>
        public ResultOfType <CalendrierResultModel> GetCalendrierParPraticienForPraticien(string praticien,
                                                                                          string dateSelected)
        {
            Logger.LogInfo("GetCalendrierParPraticienForPraticien : Start.");

            //Afficher tout le calendrier
            if (string.IsNullOrEmpty(praticien))
            {
                return(new Return <CalendrierResultModel>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                           null, "Le cin du praticien est null.").WithDefaultResult());
            }
            if (string.IsNullOrEmpty(dateSelected))
            {
                return(new Return <CalendrierResultModel>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                           null, "La date courante est null.").WithDefaultResult());
            }

            //var startHeure, endHeure;
            ConfigurationPraticien configurationPraticien =
                _configurationPraticienRepository.GetAll().FirstOrDefault(c => c.Praticien.Email == praticien);


            if (configurationPraticien == null)
            {
                return(new Return <CalendrierResultModel>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                           null,
                           "Aucune configuration effectué pour le compte en compte.Veuillez contacter l'administrateur de AlloTabib pour établir une première configuration.")
                       .WithDefaultResult());
            }

            IList <Creneaux> creneauxConfig =
                _creneauRepository.GetAll()
                .Where(cr => cr.Praticien.Email.Equals(praticien) && cr.CurrentDate.Equals(dateSelected)).ToList();
            //Créer la liste d'objets contenant cette éléments qui seront affichés au médecin
            IList <CalendrierDataModel> listCalendrierDataModels = new List <CalendrierDataModel>();


            int decalage  = configurationPraticien.DecalageMinute;
            var jourFerie =
                _jourFerieRepository.GetAll()
                .FirstOrDefault(x => x.JourFerieNom.Equals(dateSelected) && x.Praticien.Email.Equals(praticien));

            if (configurationPraticien.MinuteDebutMatin != null && configurationPraticien.HeureDebutMatin != null &&
                configurationPraticien.MinuteFinMatin != null && configurationPraticien.HeureFinMatin != null)
            {
                int minute = int.Parse(DeleteZero(configurationPraticien.MinuteDebutMatin));
                int heure  = int.Parse(DeleteZero(configurationPraticien.HeureDebutMatin));

                int minuteFinMatin = int.Parse(DeleteZero(configurationPraticien.MinuteFinMatin));
                int heureFinMatin  = int.Parse(DeleteZero(configurationPraticien.HeureFinMatin));



                string startTimeMatin = string.Concat(AddZero(heure.ToString()), ":", AddZero(minute.ToString()));
                string endTimeMatin   = string.Concat(AddZero(heureFinMatin.ToString()), ":",
                                                      AddZero(minuteFinMatin.ToString()));

                AjouterCalendrierPraticien(heure, heureFinMatin, minute, minuteFinMatin, listCalendrierDataModels,
                                           startTimeMatin, endTimeMatin,
                                           decalage);
            }
            //: je garde au mécedin ce crénaux en cas ou il a besoin d'ajouter un rdv urgent dans sa pause
            listCalendrierDataModels.RemoveAt(listCalendrierDataModels.Count - 1);

            if (configurationPraticien.MinuteDebutMidi != null && configurationPraticien.HeureDebutMidi != null)
            {
                int minuteAp = int.Parse(DeleteZero(configurationPraticien.MinuteDebutMidi));
                int heureAp  = int.Parse(DeleteZero(configurationPraticien.HeureDebutMidi));

                int minuteFinAp = int.Parse(DeleteZero(configurationPraticien.MinuteFinMidi));
                int heureFinAp  = int.Parse(DeleteZero(configurationPraticien.HeureFinMidi));

                string startTimeMidi = string.Concat(AddZero(heureAp.ToString()), ":", AddZero(minuteAp.ToString()));
                string endTimeMidi   = string.Concat(AddZero(heureFinAp.ToString()), ":", AddZero(minuteFinAp.ToString()));

                AjouterCalendrierPraticien(heureAp, heureFinAp, minuteAp, minuteFinAp, listCalendrierDataModels,
                                           startTimeMidi, endTimeMidi,
                                           decalage);
            }
            //Supprimer le dernier élément: je garde au mécedin ce crénaux en cas ou il a besoin d'ajouter un rdv urgent dans sa pause
            //listCalendrierDataModels.RemoveAt(listCalendrierDataModels.Count - 1);

            var finalList = new List <CalendrierDataModel>();

            if (creneauxConfig != null && creneauxConfig.ToList().Count > 0)
            {
                foreach (CalendrierDataModel cal in listCalendrierDataModels)
                {
                    if (jourFerie != null)
                    {
                        cal.Statut = "ND";
                        finalList.Add(cal);
                    }
                    else
                    {
                        var creneau =
                            creneauxConfig.FirstOrDefault(
                                cr => cr.HeureDebut == cal.HeureDebutCalendrier && cr.CurrentDate.Equals(dateSelected));
                        if (creneau != null)
                        {
                            //On doit traiter le cas des rendez vous
                            var rdv = _rendezvousRepository.GetAll().FirstOrDefault(c => c.Creneaux.Id == creneau.Id);

                            string status           = creneau.Status;
                            string praticienCin     = string.Empty;
                            string patientCin       = string.Empty;
                            string heurefin         = creneau.HeureFin;
                            string nomPrenomPatient = string.Empty;
                            string telephonePatient = string.Empty;



                            if (rdv != null)
                            {
                                //get patient or praticien of it's a praticien
                                var pat =
                                    _patientRepository.GetAll().FirstOrDefault(p => p.Email.Equals(rdv.Patient.Email));
                                if (pat == null)
                                {
                                    var prat =
                                        _praticienRepository.GetAll()
                                        .FirstOrDefault(pr => pr.Email.Equals(rdv.Patient.Email));

                                    if (prat != null)
                                    {
                                        nomPrenomPatient = prat.NomPrenom;
                                        telephonePatient = prat.Telephone;
                                    }
                                }
                                else
                                {
                                    nomPrenomPatient = pat.NomPrenom;
                                    telephonePatient = pat.Telephone;
                                }
                                // status = rdv.Statut;
                                praticienCin = rdv.Praticien.Cin;
                                patientCin   = rdv.Patient.Email;
                            }

                            var elem =
                                listCalendrierDataModels.FirstOrDefault(
                                    w => w.HeureDebutCalendrier == creneau.HeureDebut);
                            elem.HeureDebutCalendrier = creneau.HeureDebut;
                            elem.HeureFinCalendrier   = heurefin;
                            elem.PatientCin           = patientCin;
                            elem.PraticienCin         = praticienCin;
                            elem.Statut           = status;
                            elem.NomPrenomPatient = nomPrenomPatient;
                            elem.TelephonePatient = telephonePatient;
                            finalList.Add(elem);
                        }
                        else
                        {
                            if (jourFerie != null)
                            {
                                cal.Statut = "ND";
                                finalList.Add(cal);
                            }
                            else
                            {
                                finalList.Add(cal);
                            }
                        }
                    }
                }
            }
            else
            {
                finalList.AddRange(listCalendrierDataModels);
                if (jourFerie != null)
                {
                    finalList.ForEach(cal =>
                    {
                        cal.Statut = "ND";
                    });
                }
            }

            ////On doit traiter le cas des rendez vous
            //if (creneauxConfig != null && creneauxConfig.ToList().Count > 0)
            //{
            //    //ici on doit enlever des heurs les rendez vous prix
            //    foreach (Creneaux cre in creneauxConfig)
            //    {
            //        CalendrierDataModel cal = listCalendrierDataModels.FirstOrDefault(x => x.HeureDebutCalendrier == cre.HeureDebut);
            //        if (cal != null)
            //        {
            //            if (cre.Status.Equals("ND".ToString()))
            //            {
            //                var rdv = _rendezvousRepository.GetAll().FirstOrDefault(c => c.Creneaux.Id == cre.Id);
            //                string status = "ND";
            //                string praticienCin = string.Empty;
            //                string patientCin = string.Empty;
            //                string heurefin = cre.HeureFin;

            //                if (rdv != null)
            //                {
            //                    status = rdv.Statut;
            //                    praticienCin = rdv.Praticien.Cin;
            //                    patientCin = rdv.Patient.Cin;
            //                }

            //                var elem = listCalendrierDataModels.FirstOrDefault(w => w.HeureDebutCalendrier == cre.HeureDebut);
            //                elem.HeureDebutCalendrier = cre.HeureDebut;
            //                elem.HeureFinCalendrier = heurefin;
            //                elem.PatientCin = patientCin;
            //                elem.PraticienCin = praticienCin;
            //                elem.Statut = status;

            //                finalList.Add(elem);

            //            }

            //        }
            //        else
            //            finalList.Add(cal);
            //    }
            //}
            //else
            //{
            //    finalList = listCalendrierDataModels;
            //}

            CalendrierResultModel data = new CalendrierResultModel
            {
                CalendrierPraticien = finalList
            };

            Logger.LogInfo("GetCalendrierParPraticienForPraticien : End. ");
            return(new Return <CalendrierResultModel>().OK().WithResult(data));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// C'est une méthode permettant d'afficher les disponibilités d'un medecin coté patient
        /// </summary>
        /// <param name="praticien"></param>
        /// <param name="dateSelected"></param>
        /// <returns></returns>
        public ResultOfType <CalendrierPatientDataModel> GetCalendrierParPraticienForPatient(string praticien,
                                                                                             string dateSelected)
        {
            try
            {
                Logger.LogInfo("GetCalendrierParPraticienForPatient : Start. ");
                //nous avant la configuration du médecin qui construit la premiere liste
                //puis on tranche de la liste les créneaux non disponible
                if (string.IsNullOrEmpty(praticien))
                {
                    return
                        (new Return <CalendrierPatientDataModel>().Error()
                         .As(EStatusDetail.BadRequest)
                         .AddingGenericError(
                             null, "L'email du praticien est null.").WithDefaultResult());
                }
                if (string.IsNullOrEmpty(dateSelected))
                {
                    return
                        (new Return <CalendrierPatientDataModel>().Error()
                         .As(EStatusDetail.BadRequest)
                         .AddingGenericError(
                             null, "La date courante est null.").WithDefaultResult());
                }

                ConfigurationPraticien configurationPraticien =
                    _configurationPraticienRepository.GetAll().FirstOrDefault(c => c.Praticien.Email == praticien);


                if (configurationPraticien == null)
                {
                    return
                        (new Return <CalendrierPatientDataModel>().Error()
                         .As(EStatusDetail.BadRequest)
                         .AddingGenericError(
                             null,
                             "Aucune configuration effectué pour le compte en compte.Veuillez contacter l'administrateur de AlloTabib pour établir une première configuration.")
                         .WithDefaultResult());
                }

                IList <Creneaux> creneauxConfig =
                    _creneauRepository.GetAll()
                    .Where(cr => cr.Praticien.Email.Equals(praticien) && cr.CurrentDate.Equals(dateSelected))
                    .ToList();

                IList <string> heures   = new List <string>();
                int            decalage = configurationPraticien.DecalageMinute;


                var jourFerie =
                    _jourFerieRepository.GetAll()
                    .FirstOrDefault(x => x.JourFerieNom.Contains(dateSelected) && x.Praticien.Email.Equals(praticien));
                DateTime dateCast;
                DateTime.TryParseExact(dateSelected, "dd/MM/yyyy",
                                       _cultureFr, DateTimeStyles.None,
                                       out dateCast);

                string day = DateTimeFormatInfo.CurrentInfo.GetDayName(dateCast.DayOfWeek);
                CalendrierPatientDataModel data = new CalendrierPatientDataModel();
                if (jourFerie != null || day.Equals(DayOfWeek.Sunday.ToString()))
                {
                    //Do the cast for the date
                    data = new CalendrierPatientDataModel
                    {
                        HeureCalendrier = null,
                        DateCourante    = dateSelected.Substring(0, 5),
                        Jour            = day
                    };
                    //On doit pas afficher ce jour la dans le cas d'un patient
                    return(new Return <CalendrierPatientDataModel>().OK().WithResult(data));
                }
                else
                {
                    //si il n'a aucun créneau dans cette date on affiche toute les disponibilité tous le calendrier au patient
                    //if (creneauxConfig == null)
                    //{
                    if (configurationPraticien.MinuteDebutMatin != null &&
                        configurationPraticien.HeureDebutMatin != null &&
                        configurationPraticien.MinuteFinMatin != null && configurationPraticien.HeureFinMatin != null)
                    {
                        int minute = int.Parse(DeleteZero(configurationPraticien.MinuteDebutMatin));
                        int heure  = int.Parse(DeleteZero(configurationPraticien.HeureDebutMatin));

                        int minuteFinMatin = int.Parse(DeleteZero(configurationPraticien.MinuteFinMatin));
                        int heureFinMatin  = int.Parse(DeleteZero(configurationPraticien.HeureFinMatin));



                        string startTimeMatin = string.Concat(AddZero(heure.ToString()), ":", AddZero(minute.ToString()));

                        AjouterDisponibilitePraticien(heure, heureFinMatin, minute, minuteFinMatin, heures,
                                                      startTimeMatin,
                                                      decalage);
                        heures.RemoveAt(heures.Count - 1);
                    }


                    if (configurationPraticien.MinuteDebutMidi != null && configurationPraticien.HeureDebutMidi != null)
                    {
                        int minuteAp = int.Parse(DeleteZero(configurationPraticien.MinuteDebutMidi));
                        int heureAp  = int.Parse(DeleteZero(configurationPraticien.HeureDebutMidi));

                        int minuteFinAp = int.Parse(DeleteZero(configurationPraticien.MinuteFinMidi));
                        int heureFinAp  = int.Parse(DeleteZero(configurationPraticien.HeureFinMidi));


                        string startTimeMidi = string.Concat(AddZero(heureAp.ToString()), ":",
                                                             AddZero(minuteAp.ToString()));

                        AjouterDisponibilitePraticien(heureAp, heureFinAp, minuteAp, minuteFinAp, heures, startTimeMidi,
                                                      decalage);
                        heures.RemoveAt(heures.Count - 1);
                    }


                    //On doit traiter le cas des rendez vous
                    if (creneauxConfig != null && creneauxConfig.ToList().Count > 0)
                    {
                        //ici on doit enlever des heurs les rendez vous prix
                        foreach (Creneaux cre in creneauxConfig)
                        {
                            //vérifier si ce creneaux est lié à un rdv
                            var rdv = _rendezvousRepository.GetAll().FirstOrDefault(r => r.Creneaux.Id.Equals(cre.Id));
                            if (rdv != null)
                            {
                                if (rdv.Statut.Equals("R")) //Si le rendez vous a été rejeté alors il sera libéré
                                {
                                    if (heures.IndexOf(cre.HeureDebut) != -1)
                                    {
                                        if (cre.Status.Equals("ND".ToString()))
                                        {
                                            heures.Remove(cre.HeureDebut);
                                        }
                                    }
                                }
                            }

                            if (heures.IndexOf(cre.HeureDebut) != -1)
                            {
                                if (cre.Status.Equals("ND".ToString()))
                                {
                                    heures.Remove(cre.HeureDebut);
                                }
                            }
                        }
                    }

                    DateTime.TryParseExact(dateSelected, "dd/MM/yyyy",
                                           _cultureFr, DateTimeStyles.None,
                                           out dateCast);
                    day = DateTimeFormatInfo.CurrentInfo.GetDayName(dateCast.DayOfWeek);

                    //Do the cast for the date
                    data = new CalendrierPatientDataModel
                    {
                        HeureCalendrier = heures,
                        DateCourante    = dateSelected,
                        Jour            = day
                    };
                }
                Logger.LogInfo("GetCalendrierParPraticienForPatient : End .");
                return(new Return <CalendrierPatientDataModel>().OK().WithResult(data));
            }
            catch (Exception ex)
            {
                return
                    (new Return <CalendrierPatientDataModel>().Error()
                     .As(EStatusDetail.BadRequest)
                     .AddingGenericError(
                         null, "Erreur de récupération du jours.").WithDefaultResult());
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Ajouter une nouvelle configuration
        /// </summary>
        /// <param name="configurationToAdd"></param>
        /// <returns></returns>
        public ResultOfType <ConfigurationResultDataModel> PostNewConfiguration(ConfigurationDataModel configurationToAdd)
        {
            try
            {
                Logger.LogInfo("PostNewConfiguration : Start ");
                if (configurationToAdd == null)
                {
                    return
                        (new Return <ConfigurationResultDataModel>().Error()
                         .As(EStatusDetail.BadRequest)
                         .AddingGenericError(
                             null, "Les données sont vides.").WithDefaultResult());
                }
                var validationResult = ValidateNewConfigProperties(configurationToAdd);
                if (validationResult != null)
                {
                    return(validationResult);
                }

                var praticien = _praticienRepository.Get(configurationToAdd.PraticienCin);
                Logger.LogInfo("PostNewConfiguration : End.");

                var configurationPraticien = new ConfigurationPraticien
                {
                    Praticien = praticien,

                    HeureDebutMatin = configurationToAdd.HeureDebutMatin,
                    HeureDebutMidi  = configurationToAdd.HeureDebutMidi,

                    MinuteDebutMatin = configurationToAdd.MinuteDebutMatin,
                    MinuteDebutMidi  = configurationToAdd.MinuteDebutMidi,
                    HeureFinMatin    = configurationToAdd.HeureFinMatin,
                    HeureFinMidi     = configurationToAdd.HeureFinMidi,
                    DecalageMinute   = int.Parse(configurationToAdd.DecalageMinute),
                    MinuteFinMatin   = configurationToAdd.MinuteFinMatin,
                    MinuteFinMidi    = configurationToAdd.MinuteFinMidi
                };

                _configurationPraticienRepository.Add(configurationPraticien);
                return(new Return <ConfigurationResultDataModel>().OK().WithResult(new ConfigurationResultDataModel
                {
                    HeureDebutMatin = configurationPraticien.HeureDebutMatin,
                    HeureDebutMidi = configurationPraticien.HeureDebutMidi,

                    MinuteDebutMatin = configurationPraticien.MinuteDebutMatin,
                    MinuteDebutMidi = configurationPraticien.MinuteDebutMidi,
                    PraticienCin = configurationPraticien.Praticien != null ? configurationPraticien.Praticien.Cin : "",
                    DecalageMinute = configurationToAdd.DecalageMinute,
                    HeureFinMatin = configurationToAdd.HeureFinMatin,
                    HeureFinMidi = configurationToAdd.HeureFinMidi,
                    MinuteFinMatin = configurationToAdd.MinuteFinMatin,
                    MinuteFinMidi = configurationToAdd.MinuteFinMidi
                }));
            }
            catch (Exception ex)
            {
                return(new Return <ConfigurationResultDataModel>()
                       .Error().AsGenericError().AddingException(ex)
                       .WithResult(null));
            }
        }
 public ResultOfType <CalendrierResultModel> GetCalendrierParPraticienAndDate(ConfigurationPraticien configurationPraticien, DateTime?dateSelected)
 {
     return(_calendrierDomainServices.GetCalendrierParPraticienAndDate(configurationPraticien, dateSelected));
 }