public static ViaggioSearch getViaggioSearchParams(ViaggioSearchView searchViewModelParams) { ViaggioSearch searchModelParams = null; if (searchViewModelParams != null) { searchModelParams = new ViaggioSearch() { onlyPubblicati = searchViewModelParams.onlyPubblicati, SearchString = searchViewModelParams.SearchString, DataPartenzaMin = searchViewModelParams.DataPartenzaMin, DataPartenzaMax = searchViewModelParams.DataPartenzaMax, PrezzoMin = searchViewModelParams.PrezzoMin, PrezzoMax = searchViewModelParams.PrezzoMax, PassaDa = getGeoLocationModelFromViewModel(searchViewModelParams.PassaDa), ArrivaA = getGeoLocationModelFromViewModel(searchViewModelParams.ArrivaA), PassaDaTipoSearch = searchViewModelParams.PassaDaTipoSearch, ArrivaATipoSearch = searchViewModelParams.ArrivaATipoSearch }; } return searchModelParams; }
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); } } }