示例#1
0
 public IList<Utente> GetAllUtenti(string q, string ini)
 {
     using (var manager = new OperationManager())
     {
         try
         {
             var session = manager.BeginOperation();
             var res = session.Query<Utente>()
                             .Where(u => u.Cognome.ToLower().StartsWith(ini) &&
                                 u.Cognome.ToLower().Contains(u.Cognome.ToLower()))
                             .OrderBy(u => u.Cognome)
                             .ToList();
             manager.CommitOperation();
             return res;
         }
         catch (Exception ex)
         {
             manager.RollbackOperation();
             string message = String.Format("Errore nel recupero della lista degli utenti con iniziale '{0}' e contenenti '{1}'",
                 ini, q);
             logger.ErrorException(message, ex);
             throw new Exception(message, ex);
         }
     }
 }
示例#2
0
 public void DeleteDepliant(int idDepliant)
 {
     logger.Debug("Richiesta di eliminazione del depliant {0}", idDepliant);
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var viaggio = GetViaggioByDepliant(idDepliant);
             logger.Debug("Il viaggio da cui il depliant {0} sarà rimosso è {1}", idDepliant, viaggio);
             var depliant = viaggio.Depliant;
             viaggio.Depliant = null;
             DeleteAllegato(viaggio, depliant);
             om.CommitOperation();
             logger.Info("Il depliant {0} relativo al viaggio {1} è stato eliminato", idDepliant, viaggio);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile eliminare il depliant {0}", idDepliant);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#3
0
 public void DeletePromoImage(int idPromoImage)
 {
     logger.Debug("Richiesta di eliminazione dell'immagine promozionale {0}", idPromoImage);
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var viaggio = GetViaggioByPromoImage(idPromoImage);
             logger.Debug("Il viaggio da cui l'immagine promozionale {0} sarà rimossa è {1}", idPromoImage, viaggio);
             var promoImg = viaggio.PromoImage;
             viaggio.PromoImage = null;
             DeleteAllegato(viaggio, promoImg);
             om.CommitOperation();
             logger.Info("L'immagine promozionale {0} relativa al viaggio {1} è stata eliminato", idPromoImage, viaggio);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile eliminare l'immagine promozionale {0}", idPromoImage);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#4
0
 public void Delete(Flyer flyer)
 {
     using (var manager = new OperationManager())
     {
         try
         {
             manager.BeginOperation();
             base.delete<Flyer>(flyer);
             manager.CommitOperation();
             logger.Info("Flyer {0} eliminato con successo", flyer.Id);
         }
         catch (Exception ex)
         {
             string message = "Errore nella cancellazione del flyer";
             logger.ErrorException(message, ex);
             throw new Exception(message, ex);
         }
     }
 }
示例#5
0
 public void Delete(Utente utente)
 {
     using (var manager = new OperationManager())
     {
         try
         {
             manager.BeginOperation();
             base.delete<Utente>(utente);
             manager.CommitOperation();
             logger.Info("Utente {0} eliminato con successo", utente);
         }
         catch (Exception ex)
         {
             string message = "Errore nella cancellazione dell'utente";
             logger.ErrorException(message, ex);
             throw new Exception(message, ex);
         }
     }
 }
示例#6
0
 public Agenzia GetAgenziaByIdUtente(int id)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var agenzia = session.Load<Utente>(id).Agenzia;
             om.CommitOperation();
             return agenzia;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare l'agenzia relativa all'utente {0}", id);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#7
0
 public IList<Agenzia> GetAllAgenzie()
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var result = base.getAll<Agenzia>().ToList();
             om.CommitOperation();
             return result;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = "Errore durante il recupero delle agenzie";
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#8
0
 public IList<Viaggio> GetListaViaggiVisibili(Agenzia agenzia)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var result = GetViaggiVisibili(agenzia).ToList();
             om.CommitOperation();
             return result;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Error {0}", null);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#9
0
 public int CalcolaNumeroViaggiOrganizzati(Agenzia agenzia)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var num = session.Query<Viaggio>()
                         .Count(v => v.Agenzia.Id == agenzia.Id);
             om.CommitOperation();
             return num;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile calcolare il numero di viaggi proposti dall'agenzia {0}", agenzia);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#10
0
 public Utente GetByUsername(string username)
 {
     using (var manager = new OperationManager())
     {
         try
         {
             var session = manager.BeginOperation();
             var res = session.Query<Utente>()
                             .Where(u => u.Username.ToLower().Equals(username)).SingleOrDefault();
             manager.CommitOperation();
             return res;
         }
         catch (Exception ex)
         {
             manager.RollbackOperation();
             string message = String.Format("Impossibile recuperare l'utente con username = {0}", username);
             logger.ErrorException(message, ex);
             throw new Exception(message, ex);
         }
     }
 }
示例#11
0
 public Model.Allegato GetAllegatoWithFileById(int id)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var allegato = base.getDomainObjectById<Model.Allegato>(id);
             HydrateAllegato(allegato);
             om.CommitOperation();
             return allegato;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Error {0}", null);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#12
0
 public IList<Flyer> GetFlyersPerAgenzia(int idAgenzia, int limtResults)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var flyers = session.Query<Flyer>().Where(p => p.Agenzia.Id == idAgenzia).OrderByDescending(p => p.Id).Take(limtResults).ToList();
             om.CommitOperation();
             logger.Debug("Per l'agenzia {0} sono state trovate {1} flyers", idAgenzia, flyers.Count);
             return flyers;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare i flyers per l'agenzia {0}", idAgenzia);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#13
0
 public int CalcolaKmViaggiPartecipati(Agenzia agenzia)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var km = session.Query<Partecipazione>()
                         .Where(p => p.Utente.Agenzia.Id == agenzia.Id)
                         .Sum(p => (int?)p.Viaggio.DistanzaPercorsa) ?? 0;
             om.CommitOperation();
             return km;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile calcolare i km di viaggio a cui ha partecipato l'agenzia {0}", agenzia);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#14
0
 public IList<Messaggio> GetMessaggiByDestinatario(int idDestinatario)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var messaggi = getAll<Messaggio>()
                            .Where(u => u.Destinatario.Id == idDestinatario)
                            .ToList();
             om.CommitOperation();
             return messaggi;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Errore durante il recupero dei messaggi per il destinatario {0}", idDestinatario);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#15
0
 public int CalcolaKmViaggiOrganizzati(Agenzia agenzia)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var km = session.Query<Viaggio>()
                         .Where(v => v.Agenzia.Id == agenzia.Id)
                         .Sum(v => (int?) v.DistanzaPercorsa) ?? 0;
             om.CommitOperation();
             return km;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile calcolare i km di viaggio proposti dall'agenzia {0}", agenzia);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
 public Partecipazione GetPartecipazioneUtente(int idUtente, int idViaggio)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var partecipazione = session.Query<Partecipazione>()
                                  .Where(p => p.Viaggio.Id == idViaggio)
                                  .Where(v => v.Utente.Id == idUtente)
                                  .SingleOrDefault();
             om.CommitOperation();
             return partecipazione;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile verificare la partecipazione per il viaggio {0} e utente {1}", idViaggio, idUtente);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
 public IList<Partecipazione> GetPartecipazioniAlViaggio(int idViaggio)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var partecipazioni = session.Query<Partecipazione>()
                                  .Where(p => p.Viaggio.Id == idViaggio)
                                  .ToList();
             om.CommitOperation();
             logger.Debug("Per il viaggio {0} sono state trovate {1} partecipazioni", idViaggio, partecipazioni.Count);
             return partecipazioni;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile verificare le partecipazioni per il viaggio {0}", idViaggio);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#18
0
 public IList<Agenzia> GetAllAgenzie(string q, string ini)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var result = session.Query<Agenzia>()
                             .Where(a => a.Nome.ToLower().StartsWith(ini) && a.Nome.ToLower().Contains(q.ToLower()))
                             .OrderBy(a => a.Nome)
                             .ToList();
             om.CommitOperation();
             return result;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare l'elenco delle agenzie con iniziare '{0}' e contenenti '{1}'",
                 ini, q);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#19
0
 public void Save(Viaggio viaggio)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             vr.Save(viaggio);
             // serve per valorizzare gli ID generati dal DB
             session.Flush();
             if (viaggio.Depliant != null && viaggio.Depliant.RawFile != null)
             {
                 SaveDepliant(viaggio);
             }
             if (viaggio.PromoImage != null && viaggio.PromoImage.RawFile != null)
             {
                 SavePromoImage(viaggio);
             }
             om.CommitOperation();
             logger.Info("Dati del viaggio {0} salvati con successo", viaggio);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Errore nel salvataggio del viaggio {0}", viaggio);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#20
0
 public Viaggio GetViaggioByPromoImage(int idPromoImage)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var viaggio = session.Query<Viaggio>()
                             .Where(v => v.PromoImage.Id == idPromoImage)
                             .Single();
             om.CommitOperation();
             logger.Debug("L'immagine promozionale {0} si riferisce al viaggio {1}", idPromoImage, viaggio);
             return viaggio;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare il viaggio a cui è associata l'immagine promozionale {0}", idPromoImage);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#21
0
 public Viaggio GetViaggioByDepliant(int idDepliant)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var viaggio = session.Query<Viaggio>()
                             .Where(v => v.Depliant.Id == idDepliant)
                             .Single();
             om.CommitOperation();
             logger.Debug("Il depliant {0} si riferisce al viaggio {1}", idDepliant, viaggio);
             return viaggio;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare il viaggio a cui è associato il depliant {0}", idDepliant);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#22
0
 public IList<Viaggio> GetProposteAgenzia(Agenzia agenzia)
 {
     var ar = new AgenziaRepository();
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             logger.Info("Recupero dei viaggi proposti dall'agenzia {0}", agenzia);
             var viaggi = session.Query<Viaggio>()
                             .Where(v => v.Agenzia.Id == agenzia.Id)
                             .ToList();
             logger.Debug("Viaggi proposti: {0}", viaggi.Count);
             om.CommitOperation();
             return viaggi;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare i viaggi proposti dall'agenzia {0}", agenzia);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#23
0
 public IList<Viaggio> GetPartecipazioniAgenzia(Agenzia agenzia)
 {
     var ar = new AgenziaRepository();
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             logger.Info("Recupero dei viaggi a cui l'agenzia {0} ha partecipato", agenzia);
             var viaggi = session.Query<Partecipazione>()
                             .Where(p => p.Utente.Agenzia.Id == agenzia.Id)
                             .Select(p => p.Viaggio)
                             .ToList();
             logger.Debug("Viaggi trovati: {0}", viaggi.Count);
             om.CommitOperation();
             return viaggi;
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile recuperare i viaggi a cui l'agenzia {0} ha partecipato", agenzia);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#24
0
 public void Save(Utente utente)
 {
     using (var manager = new OperationManager())
     {
         try
         {
             manager.BeginOperation();
             base.update<Utente>(utente);
             manager.CommitOperation();
             logger.Info("Dati dell'utente {0} salvati con successo", utente);
         }
         catch (Exception ex)
         {
             manager.RollbackOperation();
             string message = "Errore nel salvataggio dell'utente";
             logger.ErrorException(message, ex);
             throw new Exception(message, ex);
         }
     }
 }
示例#25
0
        public List<Viaggio> Search(ViaggioSearch searchParams, Agenzia agenzia)
        {
            using (var om = new OperationManager())
            {
                try
                {
                    var session = om.BeginOperation();
                    var viaggiFound = vr.GetViaggiVisibili(agenzia);

                    if (searchParams != null)
                    {
                        if (searchParams.onlyPubblicati)
                            viaggiFound = viaggiFound.Where(v => v.DataPubblicazione != null);
                        if (!String.IsNullOrEmpty(searchParams.SearchString))
                            viaggiFound = viaggiFound.Where(v => v.Nome.ToUpper().StartsWith(searchParams.SearchString.ToUpper()));
                        if (searchParams.DataPartenzaMin != null)
                            viaggiFound = viaggiFound.Where(v => v.DataPartenza >= searchParams.DataPartenzaMin);
                        if (searchParams.DataPartenzaMax != null)
                            viaggiFound = viaggiFound.Where(v => v.DataPartenza <= searchParams.DataPartenzaMax);
                        if (searchParams.PrezzoMin != null)
                            viaggiFound = viaggiFound.Where(v => v.PrezzoStandard >= searchParams.PrezzoMin);
                        if (searchParams.PrezzoMax != null)
                            viaggiFound = viaggiFound.Where(v => v.PrezzoStandard <= searchParams.PrezzoMax);
                        if (searchParams.PassaDa != null)
                            viaggiFound = AddTappaSearchFilter(viaggiFound, searchParams.PassaDa, searchParams.PassaDaTipoSearch, TipoTappa.PICK_UP_POINT);
                        if (searchParams.ArrivaA != null)
                            viaggiFound = AddTappaSearchFilter(viaggiFound, searchParams.ArrivaA, searchParams.ArrivaATipoSearch, TipoTappa.DESTINAZIONE);
                    }
                    var result = viaggiFound.ToList();
                    om.CommitOperation();
                    return result;
                }
                catch (Exception ex)
                {
                    om.RollbackOperation();
                    string msg = String.Format("Errore nella ricerca viaggio");
                    logger.ErrorException(msg, ex);
                    throw new Exception(msg, ex);
                }
            }
        }
示例#26
0
 public void Save(Messaggio messaggio)
 {
     using (var om = new OperationManager())
     {
         try
         {
             om.BeginOperation();
             base.update<Messaggio>(messaggio);
             om.CommitOperation();
             logger.Info("Dati del messaggio {0} salvati con successo", messaggio.Id);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = "Errore nel salvataggio del messaggio";
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#27
0
 private void DeleteAllegato(Viaggio viaggio, AllegatoViaggio targetAllegato)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var fullImgPath = targetAllegato.FullName;
             System.IO.File.Delete(fullImgPath);
             vr.Save(viaggio);
             vr.deleteAllegato(targetAllegato);
             om.CommitOperation();
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Impossibile eliminare l'allegato {0}", targetAllegato.Id);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#28
0
 public void DeleteTappa(int idTappa)
 {
     using (var om = new OperationManager())
     {
         try
         {
             var session = om.BeginOperation();
             var tappa = vr.GetTappaById(idTappa);
             var viaggio = tappa.Viaggio;
             viaggio.Tappe.Remove(tappa);
             vr.deleteTappa(tappa);
             Reorder(viaggio.Tappe);
             vr.Save(viaggio);
             om.CommitOperation();
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = String.Format("Errore durante l'eliminazione della tappa {0}", idTappa);
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#29
0
 public void Save(Flyer flyer)
 {
     using (var om = new OperationManager())
     {
         try
         {
             om.BeginOperation();
             base.update<Flyer>(flyer);
             om.CommitOperation();
             logger.Info("Dati del flyer {0} salvati con successo", flyer.Id);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = "Errore nel salvataggio del flyer";
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }
示例#30
0
 public void Save(Agenzia agenzia)
 {
     using (var om = new OperationManager())
     {
         try
         {
             om.BeginOperation();
             base.update<Agenzia>(agenzia);
             om.CommitOperation();
             logger.Info("Dati dell'agenzia {0} salvati con successo", agenzia);
         }
         catch (Exception ex)
         {
             om.RollbackOperation();
             string msg = "Errore nel salvataggio dell'agenzia";
             logger.ErrorException(msg, ex);
             throw new Exception(msg, ex);
         }
     }
 }