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); }
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)); } }