public ActionResult CreateTappa(int tipo, int idViaggio)
 {
     var viaggio = vr.GetById(idViaggio);
     var nuovaTappa = new Tappa()
     {
         Tipo = (TipoTappa)tipo,
         Viaggio = viaggio,
         Ordinamento = CalcolaOrdinamentoPerNuovaTappa(viaggio)
     };
     return PartialView("EditTappa", nuovaTappa);
 }
 public void deleteTappa(Tappa tappa)
 {
     try
     {
         base.delete<Tappa>(tappa);
     }
     catch (Exception ex)
     {
         string msg = String.Format("Errore durante la cancellazione della tappa {0}", tappa);
         logger.ErrorException(msg, ex);
         throw new Exception(msg, ex);
     }
 }
 public void Save(Tappa tappa)
 {
     using (var om = new OperationManager())
     {
         try
         {
             om.BeginOperation();
             var destinazione = tappa.Viaggio.Tappe.Where(t => t.Tipo == TipoTappa.DESTINAZIONE).SingleOrDefault();
             if (destinazione != null)
             {
                 logger.Debug("L'ordinamento della destinazione verrà incrementato di 1 per fare posto alla nuova tappa");
                 destinazione.Ordinamento = tappa.Ordinamento + 1;
                 base.update<Tappa>(destinazione);
             }
             base.update<Tappa>(tappa);
             om.CommitOperation();
             logger.Info("Dati della tappa {0} salvati con successo", tappa);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = "Errore nel salvataggio della tappa";
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
 public ActionResult SearchTappa(int tipo)
 {
     var tappaSearch = new Tappa()
     {
         Tipo = (TipoTappa)tipo,
     };
     return PartialView("SearchTappa", tappaSearch);
 }
 public ActionResult SaveTappa(Tappa tappa)
 {
     if (tappa.Viaggio != null && tappa.Viaggio.Id != 0)
     {
         tappa.Viaggio = vr.GetById(tappa.Viaggio.Id);
     }
     if (!ModelState.IsValid)
     {
         vr.Save(tappa);
         return RedirectToAction("EditTappeViaggio", new { idViaggio = tappa.Viaggio.Id });
     }
     else
     {
         string msg = "Impossibile salvare la tappa modificata o creata";
         throw new Exception(msg);
     }
 }