예제 #1
0
        public IList <JourFerie> PrintHolidays(int intYear, int intMonth, Praticien praticien, DayOfWeek dayOfWeek)
        {
            var lstSundays = new List <JourFerie>();

            int intDaysThisMonth = DateTime.DaysInMonth(intYear, intMonth);

            var conditionDateTime = new DateTime(intYear, intMonth, intDaysThisMonth);

            for (var dt1 = new DateTime(intYear, intMonth, 1); dt1 <= conditionDateTime; dt1 = dt1.AddDays(1))
            {
                if (dt1.DayOfWeek == dayOfWeek)
                {
                    string day       = dt1.ToShortDateString();
                    var    jourferie = new JourFerie
                    {
                        Praticien    = praticien,
                        JourFerieNom = day
                    };

                    //vérifier si ce jour existe déjà dans les jours fériés
                    var ferie =
                        _jourFerieRepository.GetAll()
                        .FirstOrDefault(
                            f =>
                            f.Praticien.Cin.Equals(praticien.Cin) &&
                            f.JourFerieNom.Equals(jourferie.JourFerieNom));
                    if (ferie == null)
                    {
                        _jourFerieRepository.Add(jourferie);
                        lstSundays.Add(jourferie);
                    }
                }
            }

            return(lstSundays);
        }
        /// <summary>
        /// Met à jour l'état en bas pour l'utilisateur
        /// </summary>
        /// <param name="typeEtat">texte : "Filtrage", "Ajout", "Modification", "Suppression", "Look", "" ("" = Chargement)</param>
        /// <param name="dao">un objet Commande_Fournisseur soit pour l'ajouter au listing, soit pour afficher qui a été modifié ou supprimé</param>
        public void MiseAJourEtat(string typeEtat, JourFerie lib)
        {
            //Je racalcul le nombre max d'élements
            this.recalculMax();
            //En fonction de l'libion, j'affiche le message
            if (typeEtat == "Filtrage")
            {
                ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "filtrage des exercices terminé : " + this.listDate.Count() + " / " + this.max;
            }
            else if (typeEtat == "Ajout")
            {
                //J'ajoute la commande_fournisseur dans le linsting
                this.listDate.Add(lib);
                //Je racalcul le nombre max d'élements après l'ajout
                this.recalculMax();
                ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "Ajout d'un jour ferié dénommé '" + lib.Libelle + "' effectué avec succès. Nombre d'élements : " + this.listDate.Count() + " / " + this.max;
            }
            else if (typeEtat == "Modification")
            {
                //Je raffraichis mon datagrid
                this._DataGridMain.Items.Refresh();
                ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "Modification d'un jour ferié dénommé : '" + lib.Libelle + "' effectuée avec succès. Nombre d'élements : " + this.listDate.Count() + " / " + this.max;
            }
            else if (typeEtat == "Suppression")
            {
                //Je supprime de mon listing l'élément supprimé
                this.listDate.Remove(lib);
                //Je racalcul le nombre max d'élements après la suppression
                this.recalculMax();
                ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "Suppression d'un jour ferié dénommé : '" + lib.Libelle + "' effectuée avec succès. Nombre d'élements : " + this.listDate.Count() + " / " + this.max;
            }
            else if (typeEtat == "Look")
            {

            }
            else
            {
                ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "Chargement des jours ferié terminé : " + this.listDate.Count() + " / " + this.max;
            }
            //Je retri les données dans le sens par défaut
            this.triDatas();
            //J'arrete la progressbar
            ((App)App.Current)._theMainWindow.parametreMain.progressBarMainWindow.IsIndeterminate = false;
        }
        /// <summary>
        /// Ajoute une nouvelle tache à la liste à l'aide d'une nouvelle fenêtre
        /// </summary>
        public JourFerie Add()
        {
            //Affichage du message "ajout en cours"
            ((App)App.Current)._theMainWindow.parametreMain.progressBarMainWindow.IsIndeterminate = true;
            ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "Ajout d'un jour ferié en cours ...";

            //Initialisation de la fenêtre
            JourFerieWindow jourferieWindow = new JourFerieWindow();

            //Création de l'objet temporaire
            JourFerie tmp = new JourFerie();

            //Mise de l'objet temporaire dans le datacontext
            jourferieWindow.DataContext = tmp;

            //booléen nullable vrai ou faux ou null
            bool? dialogResult = jourferieWindow.ShowDialog();

            if (dialogResult.HasValue && dialogResult.Value == true)
            {
                //Si j'appuie sur le bouton Ok, je renvoi l'objet banque se trouvant dans le datacontext de la fenêtre
                return (JourFerie)jourferieWindow.DataContext;
            }
            else
            {
                try
                {
                    //On détache la commande
                    ((App)App.Current).mySitaffEntities.Detach((JourFerie)jourferieWindow.DataContext);
                }
                catch (Exception)
                {
                }

                //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout
                ((App)App.Current)._theMainWindow.parametreMain.progressBarMainWindow.IsIndeterminate = false;
                this.recalculMax();
                ((App)App.Current)._theMainWindow.parametreMain.textBlockMainWindow.Text = "Ajout d'un jour ferié annulé : " + this.listDate.Count() + " / " + this.max;

                return null;
            }
        }
예제 #4
0
        public ResultOfType <JourFerieResultDataModel> PostNewJourFerie(JourFerieDataModel jourFerieDto)
        {
            try
            {
                if (jourFerieDto == null)
                {
                    return(new Return <JourFerieResultDataModel>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "Les données sont vides.").WithDefaultResult());
                }

                Logger.LogInfo(string.Format("Post New jour férié : Start --- jour = {0}, praticien mail = {1}",
                                             jourFerieDto.JourFerieNom, jourFerieDto.PraticienEmail));

                if (string.IsNullOrEmpty(jourFerieDto.JourFerieNom))
                {
                    return(new Return <JourFerieResultDataModel>()
                           .Error().AsValidationFailure(null, "Veuillez introduire le jour férié.", "JourFerieNom")
                           .WithDefaultResult());
                }

                if (string.IsNullOrEmpty(jourFerieDto.PraticienEmail))
                {
                    return(new Return <JourFerieResultDataModel>()
                           .Error().AsValidationFailure(null, "Veuillez introduire l'email du praticien.", "PraticienEmail")
                           .WithDefaultResult());
                }
                var praticien = _praticienRepository.GetAll().FirstOrDefault(pr => pr.Email.Equals(jourFerieDto.PraticienEmail));

                if (praticien == null)
                {
                    return(new Return <JourFerieResultDataModel>().Error().As(EStatusDetail.BadRequest).AddingGenericError(
                               null, "Praticien n'existe pas.").WithDefaultResult());
                }

                JourFerie jourferie = new JourFerie
                {
                    JourFerieNom = jourFerieDto.JourFerieNom,
                    Praticien    = praticien
                };

                _jourFerieRepository.Add(jourferie);
                //Mettre tous les rendez vous en statut = R (rejeté)
                var _rendezVous = _rendezVousRepository.GetAll().Where(r => r.Creneaux.CurrentDate.Equals(jourFerieDto.JourFerieNom) && r.Praticien.Email.Equals(jourFerieDto.PraticienEmail)).ToList();
                if (_rendezVous != null && _rendezVous.Count() > 0)
                {
                    _rendezVous.ForEach(rdv => { rdv.Statut = "R";
                                                 _rendezVousRepository.Update(rdv); });
                }

                return(new Return <JourFerieResultDataModel>().OK()
                       .WithResult(new JourFerieResultDataModel
                {
                    JourFerieNom = jourferie.JourFerieNom,
                    PraticienEmail = jourferie.Praticien.Email
                }));
            }
            catch
            {
                throw;
            }
        }