예제 #1
0
        public static ViaggioSearch getViaggioSearchParams(ViaggioSearchViewModel searchViewModelParams)
        {
            ViaggioSearch searchModelParams = null;

            if (searchViewModelParams != null)
            {
                searchModelParams = new ViaggioSearch()
                {
                    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,
                    idAgenzia         = searchViewModelParams.idAgenzia,
                    searchApproved    = searchViewModelParams.searchApproved,
                    searchUnapproved  = searchViewModelParams.searchUnapproved,
                    searchMine        = searchViewModelParams.searchMine,
                    searchTheirs      = searchViewModelParams.searchTheirs
                };
            }

            return(searchModelParams);
        }
예제 #2
0
        public List <Viaggio> Search(ViaggioSearch searchParams)
        {
            using (var om = new OperationManager())
            {
                try
                {
                    var session     = om.BeginOperation();
                    var viaggiFound = getAll <Viaggio>();

                    if (searchParams != null)
                    {
                        if (!(searchParams.searchApproved && searchParams.searchUnapproved))
                        {
                            if (searchParams.searchApproved)
                            {
                                viaggiFound = viaggiFound.Where(v => v.Approvato == true);
                            }
                            if (searchParams.searchUnapproved)
                            {
                                viaggiFound = viaggiFound.Where(v => v.Approvato == false);
                            }
                        }
                        if (!(searchParams.searchMine && searchParams.searchTheirs))
                        {
                            if (searchParams.searchMine)
                            {
                                viaggiFound = viaggiFound.Where(v => v.Agenzia.Id == searchParams.idAgenzia);
                            }
                            if (searchParams.searchTheirs)
                            {
                                viaggiFound = viaggiFound.Where(v => v.Agenzia.Id != searchParams.idAgenzia);
                            }
                        }

                        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);
                }
            }
        }