public static List <PlageHoraireRetrait> PlageHoraireRetrait(this DateTime date)
        {
            JourExceptionnelDAL        ouvertureDAL          = new JourExceptionnelDAL();
            List <PlageHoraireRetrait> plagesHorairesRetrait = new List <PlageHoraireRetrait> {
                ouvertureDAL.ProchainOuvert(date)
            };
            bool autreCreneau = true;

            while (autreCreneau)
            {
                plagesHorairesRetrait.Add(ouvertureDAL.ProchainOuvert(plagesHorairesRetrait.Last().Dates.Last().AddMinutes(1)));
                TimeSpan diff = plagesHorairesRetrait.Last().Dates.First() - plagesHorairesRetrait.First().Dates.First();
                if (plagesHorairesRetrait.Count >= 4 && diff.Days > 1)
                {
                    autreCreneau = false;
                }
            }
            return(plagesHorairesRetrait);
        }
Exemple #2
0
 public ActionResult FermeturesExceptionnelles(string action, DateTime dateId, DateTime dateDebut, TimeSpan heureDebut, DateTime dateFin, TimeSpan heureFin)
 {
     if (AdminPlanning)
     {
         DateTime            maintenant        = DateTime.Now;
         DateTime            dateDebutComplete = dateDebut + heureDebut;
         DateTime            dateFinComplete   = dateFin + heureFin;
         JourExceptionnelDAL ouvertureDAL      = new JourExceptionnelDAL();
         if (action != "Supprimer" && (dateFinComplete <= dateDebutComplete || dateDebutComplete < maintenant))
         {
             TempData["message"] = new Message("Impossible de valider votre demande. Les dates sont incorrectes.\nMerci de corriger votre saisie", TypeMessage.Erreur);
         }
         else
         {
             JourExceptionnel chevauchement;
             if (action == "Ajouter")
             {
                 chevauchement = ouvertureDAL.AjouterFermeture(dateDebutComplete, dateFinComplete);
                 if (chevauchement == null)
                 {
                     TempData["message"] = new Message("La fermeture a bien été ajoutée", TypeMessage.Ok);
                 }
                 else
                 {
                     string ouvertureFermeture;
                     if (chevauchement.Ouvert)
                     {
                         ouvertureFermeture = "ouverture";
                     }
                     else
                     {
                         ouvertureFermeture = "fermeture";
                     }
                     TempData["message"] = new Message($"Impossible d'ajouter la fermeture.\nElle se chevauche avec une autre {ouvertureFermeture} :\n{chevauchement.DateDebut.ToString()} - {chevauchement.DateFin.ToString()}", TypeMessage.Erreur);
                 }
             }
             else if (action == "Modifier")
             {
                 chevauchement = ouvertureDAL.ModifierFermeture(dateId, dateDebutComplete, dateFinComplete);
                 if (chevauchement == null)
                 {
                     TempData["message"] = new Message("La fermeture a bien été modifiée", TypeMessage.Ok);
                 }
                 else
                 {
                     string ouvertureFermeture;
                     if (chevauchement.Ouvert)
                     {
                         ouvertureFermeture = "ouverture";
                     }
                     else
                     {
                         ouvertureFermeture = "fermeture";
                     }
                     TempData["message"] = new Message($"Impossible de modifier la fermeture.\nElle se chevauche avec une autre {ouvertureFermeture} :\n{chevauchement.DateDebut.ToString()} - {chevauchement.DateFin.ToString()}", TypeMessage.Erreur);
                 }
             }
             else if (action == "Supprimer")
             {
                 if (ouvertureDAL.SupprimerFermeture(dateId))
                 {
                     TempData["message"] = new Message("La suppression de la fermeture a bien été prise en compte", TypeMessage.Ok);
                 }
                 else
                 {
                     TempData["message"] = new Message("Une erreur est survenue lors de la supression de la fermeture.\nVeuillez réessayer plus tard", TypeMessage.Erreur);
                 }
             }
         }
         return(View(ouvertureDAL.FutursFermeturesExceptionnelles()));
     }
     else
     {
         return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
     }
 }