public PartialViewResult Dupliquer(int id)
 {
     temps tps = cnx.temps.Where(t => t.id_temps == id).Single();
     DupliquerView dpv = new DupliquerView();
     dpv.dateFin = tps.date_debut.AddDays(1);
     dpv.id_temps = id;
     return PartialView("_formDupliquer", dpv);
 }
 public JsonResult Dupliquer(DupliquerView duplicate)
 {
     if (ModelState.IsValid)
     {
         temps tps = cnx.temps.Where(t => t.id_temps == duplicate.id_temps).Single();
         recurrence rec = new recurrence();
         tps.recurrence = rec;
         DateTime debut = tps.date_debut;
         DateTime fin = tps.date_fin;
         bool absence = tps.type_temps.absence;
         int diffDays = duplicate.frequenceInt;
         while (debut.AddDays(diffDays) < duplicate.dateFin.AddDays(1))
         {
             temps tpsCopie = tps.ClonerPourDupliquer();
             debut = debut.AddDays(diffDays);
             fin = fin.AddDays(diffDays);
             tpsCopie.date_debut = debut;
             tpsCopie.date_fin = fin;
             //verification si on le garde ou pas
             // si c'est un samedi on garde seulement si c'est une astreinte (type_temps=1) ou un congé annuel (type_temps=6)
             if ((debut.DayOfWeek == DayOfWeek.Saturday) && (tpsCopie.id_type_temps != 1)) continue;
             // si c'est un dimanche on garde seulement si c'est une astreinte (type_temps=1)
             if ((debut.DayOfWeek == DayOfWeek.Sunday) && (tpsCopie.id_type_temps != 1)) continue;
             if (this.IsThereAchevauchement(tpsCopie, absence) == false)
             {
                 tpsCopie.recurrence = rec;
                 cnx.AddTotemps(tpsCopie);
             }
         }
         cnx.SaveChanges();
         return Json(new { succes = 1 });
     }
     else
     {
         return Json(new { succes = 0, erreurs = ModelState.ListeErreurs() });
     }
 }