示例#1
0
        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;
        }
示例#2
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);
                }
            }
        }