예제 #1
0
        public async Task <ActionResult> AdvancedSearch(AdvancedSearchDTO searchDTO, int?page)
        {
            ViewBag.SearchBox      = searchDTO.SearchBox;
            ViewBag.Category       = searchDTO.Category;
            ViewBag.MinimumPrice   = searchDTO.MinimumPrice;
            ViewBag.MaximumPrice   = searchDTO.MaximumPrice;
            ViewBag.AuctionEndTime = searchDTO.AuctionEndTime;

            string content = JsonConvert.SerializeObject(searchDTO);

            Byte[]           buffer      = System.Text.Encoding.UTF8.GetBytes(content);
            ByteArrayContent byteContent = new ByteArrayContent(buffer);

            byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            HttpResponseMessage responseMessage = await client.PutAsync(apiUrl + "/GetListingsByStringAdvanced", byteContent);

            if (responseMessage.StatusCode == HttpStatusCode.OK)
            {
                string responseData = responseMessage.Content.ReadAsStringAsync().Result;

                List <ListingDTO> listingList = JsonConvert.DeserializeObject <List <ListingDTO> >(responseData);

                int pageSize   = 5;
                int pageNumber = (page ?? 1);

                return(View(listingList.OrderByDescending(l => l.AuctionEndTime).ToPagedList(pageNumber, pageSize)));
            }

            return(View("Error"));
        }
        public IActionResult AdvancedSearchExamination(AdvancedSearchDTO advancedSearchDTO)
        {
            var available = _availableExaminationService.AdvancedSearch(advancedSearchDTO).Select(
                e => e.ToUnscheduledExaminationDTO());

            return(Ok(available));
        }
예제 #3
0
        // Movie,Series,VideoGame, Book advanced searcing

        public AdvancedSearchDTO AdvancedSearch(string search)
        {
            var result = new AdvancedSearchDTO();

            result.MovieList = (from m in _context.Movies
                                join c in _context.Categories
                                on m.CategoryId equals c.Id
                                where m.MovieName.Contains(search)
                                select new MovieShortDetailsDTO
            {
                Id = m.Id,
                MovieName = m.MovieName,
                ImageURL = m.ImageURL,
                CategoryName = c.CategoryName,
                IMDBScore = m.IMDBScore
            }).AsNoTracking().ToList();

            result.SerieList = (from s in _context.Series
                                join c in _context.Categories
                                on s.CategoryId equals c.Id
                                where s.SeriesName.Contains(search)
                                select new SeriesShortDetailsDTO
            {
                Id = s.Id,
                SeriesName = s.SeriesName,
                ImageURL = s.ImageURL,
                CategoryName = c.CategoryName,
                IMDBScore = s.IMDBScore
            }).AsNoTracking().ToList();

            result.VideoGameList = (from v in _context.VideoGames
                                    join c in _context.Categories
                                    on v.CategoryId equals c.Id
                                    where v.VideoGameName.Contains(search)
                                    select new VideoGameShortDetailsDTO
            {
                Id = v.Id,
                VideoGameName = v.VideoGameName,
                ImageURL = v.ImageURL,
                CategoryName = c.CategoryName,
                IMDBScore = v.IMDBScore
            }).AsNoTracking().ToList();

            result.BookList = (from b in _context.Books
                               join c in _context.Categories
                               on b.CategoryId equals c.Id
                               where b.BookName.Contains(search)
                               select new BookShortDetailsDTO
            {
                Id = b.Id,
                BookName = b.BookName,
                ImageURL = b.ImageURL,
                CategoryName = c.CategoryName
            }).AsNoTracking().ToList();
            return(result);
        }
 private IAdvancedSearchStrategy GetAdvancedSearchStrategy(AdvancedSearchDTO advancedSearchDTO)
 {
     if (advancedSearchDTO.Priority == SearchPriority.Time)
     {
         ICollection <string> doctors = _doctorRepository.GetIdsBySpecialty(advancedSearchDTO.SpecialtyId);
         return(new TimeHasPriorityStrategy(advancedSearchDTO.InitialParameters, doctors));
     }
     else
     {
         return(new DoctorHasPriorityStrategy(advancedSearchDTO.InitialParameters, 5));
     }
 }
예제 #5
0
        public IActionResult PrioritySearchAppointments(AdvancedSearchDTO parameters)
        {
            var patientJmbg = HttpContext.User.FindFirst("Jmbg").Value;

            parameters.InitialParameters.PatientJmbg      = patientJmbg;
            parameters.InitialParameters.EarliestDateTime = InitializeEarliestTime(
                parameters.InitialParameters.EarliestDateTime);
            parameters.InitialParameters.LatestDateTime = InitializeLatestTime(
                parameters.InitialParameters.LatestDateTime);

            return(RequestAdapter.SendRequestWithBody(_serviceSettings.ScheduleServiceUrl, "/api/examination/search-free/advanced", parameters));
        }
        public IEnumerable <Examination> AdvancedSearch(AdvancedSearchDTO advancedSearchDTO)
        {
            IEnumerable <Examination> examinations = BasicSearch(advancedSearchDTO.InitialParameters);

            if (examinations.Any())
            {
                return(examinations);
            }

            IAdvancedSearchStrategy strategy = GetAdvancedSearchStrategy(advancedSearchDTO);

            return(ApplyStrategy(strategy));
        }
예제 #7
0
 public List <ListingDTO> GetListingsByStringAdvanced(AdvancedSearchDTO searchDTO)
 {
     return(listingRepo.GetListingsByStringAdvanced(searchDTO.SearchBox, searchDTO.Category, searchDTO.MaximumPrice, searchDTO.MinimumPrice, searchDTO.AuctionEndTime).Select(l => mapper.CreateListingDTO(l)).ToList());
 }