public int CompareTo(Search other) { int i = DefaultSearch.CompareTo(other.DefaultSearch); if (i == 0) { return(Name.CompareTo(other.Name)); } return(i); }
public IActionResult GetAttraction([FromQuery] AttractionSM attractionSM, [FromQuery] DefaultSearch defaultSearch) { try { var list = _IAtrractionService.GetAllAtrraction(null, _ => _.City, _ => _.Category); if (!String.IsNullOrWhiteSpace(attractionSM.City)) { list = list.Where(_ => _.City.Name.ToLower() == attractionSM.City.ToLower()); } if (!String.IsNullOrWhiteSpace(attractionSM.Name)) { list = list.Where(_ => _.Name.ToLower().Contains(attractionSM.Name.ToLower())); } if (attractionSM.IsTemporarityClosed != null) { list = list.Where(_ => _.IsTemporarityClosed == attractionSM.IsTemporarityClosed); } if (!String.IsNullOrWhiteSpace(attractionSM.Category)) { list = list.Where(_ => _.Category.Name.ToLower() == attractionSM.Category.ToLower()); } int total = list.ToList().Count(); switch (defaultSearch.SortBy) { case "name": list = GenericSorter.Sort(list, _ => _.Name, defaultSearch.SortDir); break; case "category": list = GenericSorter.Sort(list, _ => _.Category.Name, defaultSearch.SortDir); break; case "city": list = GenericSorter.Sort(list, _ => _.City.Name, defaultSearch.SortDir); break; default: list = GenericSorter.Sort(list, _ => _.CreateAt, defaultSearch.SortDir); break; } var data = list.Skip(defaultSearch.PageIndex) .Take(defaultSearch.PageSize) .Select(_ => _mapper.Map <AttractionVM>(_)) .ToList(); return(Ok(new { data, total })); } catch (Exception e) { return(BadRequest(e.Message)); } }
public IActionResult GetCategory([FromQuery] String Name, [FromQuery] DefaultSearch defaultSearch) { try { var list = _ICategoryService.GetAllCategory(); if (!String.IsNullOrWhiteSpace(Name)) { list = list.Where(_ => _.Name.ToLower().Contains(Name.ToLower())); } int total = list.Count(); var data = list.Skip(defaultSearch.PageIndex) .Take(defaultSearch.PageSize) .ToList(); return(Ok(new { data, total })); } catch (Exception e) { return(BadRequest(e.Message)); } }
public IActionResult GetPass(decimal priceFrom, decimal priceTo, String name, int cityId, Guid?ticketTypeId, [FromQuery] DefaultSearch defaultSearch) { try { name = name ?? ""; var ticketTypeInCollection = _iTicketTypeInCollectionService.GetAllTicketTypeInCollection(null, _ => _.TicketType.Atrraction.City); var b = ticketTypeInCollection.ToList(); if (cityId != 0) { // get list collectionId where that collection belong to CityId ticketTypeInCollection = ticketTypeInCollection .Where(_ => _.TicketType.Atrraction.City.Id == cityId); } if (ticketTypeId != null) { // get list collectionId where that collection belong to CityId ticketTypeInCollection = ticketTypeInCollection .Where(_ => _.TicketTypeId == ticketTypeId); var a = ticketTypeInCollection.ToList(); } var collectionId = ticketTypeInCollection.GroupBy(_ => _.CollectionId).Select(_ => _.Key).ToList(); //var list = new List<Pass>(); //var listCollection = new List<Collection>(); var listPassId = _iCollectionService.GetAllCollection(_ => collectionId.Contains(_.Id)).Select(_ => _.PassId).Distinct(); //collectionId.ForEach(id => //{ // listCollection.Add(_iCollectionService.GetCollectionById(id)); //}); //var listPassId = listCollection.GroupBy(_ => _.PassId).Select(_ => _.Key).ToList(); //listPassId.ForEach(id => //{ // list.Add(_iPassService.GetPassById(id)); //}); var list = _iPassService.GetAllPass(_ => listPassId.Contains(_.Id)); list = list.Where(_ => _.Name.ToLower().Contains(name.ToLower())); if (priceFrom != 0 && priceTo != 0) { list = list.Where(_ => _.Price >= priceFrom && _.Price <= priceTo); } int total = list.ToList().Count(); if (defaultSearch.SortDir > 0) { switch (defaultSearch.SortBy) { case "name": list = list.OrderByDescending(_ => _.Name); break; case "price": list = list.OrderByDescending(_ => _.Price); break; default: list = list.OrderByDescending(_ => _.CreateAt); break; } } else { switch (defaultSearch.SortBy) { case "name": list = list.OrderBy(_ => _.Name); break; case "price": list = list.OrderBy(_ => _.Price); break; default: list = list.OrderBy(_ => _.CreateAt); break; } } list = list.Skip(defaultSearch.PageIndex) .Take(defaultSearch.PageSize); var data = new List <PassVM>(); list.ToList().ForEach(v => { var pass = _iPassService.GetAllPass(_ => _.Id == v.Id).Include(_ => _.UserPasses).Include(_ => _.Collections).ThenInclude(_ => _.TicketTypeInCollections).FirstOrDefault(); var userPassRate = pass.UserPasses.Where(_ => _.Rate != 0); var rateSum = userPassRate.Sum(_ => _.Rate); var totalRate = userPassRate.Count(); var NumberOfTicketType = pass.Collections.Sum(_ => _.TicketTypeInCollections.Count); var passVM = _mapper.Map <PassVM>(v); passVM.Rate = totalRate != 0 ? (double)rateSum / (double)totalRate : 5; passVM.NumberOfTicketType = NumberOfTicketType; data.Add(passVM); }); return(Ok(new { data, total })); } catch (Exception e) { return(BadRequest(e.Message)); } }
public IActionResult GetTicketType([FromQuery] TicketTypeSM ticketType, [FromQuery] DefaultSearch defaultSearch) { try { var list = _ITicketTypeService.GetAllTicketType(_ => _.IsDelete == ticketType.IsDelete, _ => _.Atrraction, _ => _.Atrraction.City, _ => _.Atrraction.Category, _ => _.Tickets); if (!String.IsNullOrWhiteSpace(ticketType.Name)) { list = list.Where(_ => _.Name.ToLower().Contains(ticketType.Name.ToLower())); } if (!String.IsNullOrWhiteSpace(ticketType.Attraction)) { list = list.Where(_ => _.Atrraction.Name.ToLower().Contains(ticketType.Attraction.ToLower())); } if (!String.IsNullOrWhiteSpace(ticketType.City)) { list = list.Where(_ => _.Atrraction.City.Name.ToLower().Contains(ticketType.City.ToLower())); } if (ticketType.CategoryId != 0) { list = list.Where(_ => _.Atrraction.Category.Id == ticketType.CategoryId); } if (ticketType.PriceFrom != 0 && ticketType.PriceTo != 0) { list = list.Where(_ => _.AdultPrice >= ticketType.PriceFrom && _.AdultPrice <= ticketType.PriceTo); } int total = list.Count(); switch (defaultSearch.SortBy) { case "name": list = GenericSorter.Sort(list, _ => _.Name, defaultSearch.SortDir); break; case "attraction": list = GenericSorter.Sort(list, _ => _.Atrraction.Name, defaultSearch.SortDir); break; case "city": list = GenericSorter.Sort(list, _ => _.Atrraction.City.Name, defaultSearch.SortDir); break; case "adultPrice": list = GenericSorter.Sort(list, _ => _.AdultPrice, defaultSearch.SortDir); break; case "childrenPrice": list = GenericSorter.Sort(list, _ => _.ChildrenPrice, defaultSearch.SortDir); break; default: list = GenericSorter.Sort(list, _ => _.CreateAt, defaultSearch.SortDir); break; } var data = list.Skip(defaultSearch.PageIndex) .Take(defaultSearch.PageSize) .Select(_ => _mapper.Map <TicketTypeVM>(_)) .ToList(); return(Ok(new { data, total })); } catch (Exception e) { return(BadRequest(e.Message)); } }
private IQueryable <DocEntityDefault> _ExecSearch(DefaultSearch request, DocQuery query) { request = InitSearch <Default, DefaultSearch>(request); IQueryable <DocEntityDefault> entities = null; query.Run(session => { entities = query.SelectAll <DocEntityDefault>(); if (!DocTools.IsNullOrEmpty(request.FullTextSearch)) { var fts = new DefaultFullTextSearch(request); entities = GetFullTextSearch <DocEntityDefault, DefaultFullTextSearch>(fts, entities); } if (null != request.Ids && request.Ids.Any()) { entities = entities.Where(en => en.Id.In(request.Ids)); } if (!DocTools.IsNullOrEmpty(request.Updated)) { entities = entities.Where(e => null != e.Updated && e.Updated.Value.Date == request.Updated.Value.Date); } if (!DocTools.IsNullOrEmpty(request.UpdatedBefore)) { entities = entities.Where(e => null != e.Updated && e.Updated <= request.UpdatedBefore); } if (!DocTools.IsNullOrEmpty(request.UpdatedAfter)) { entities = entities.Where(e => null != e.Updated && e.Updated >= request.UpdatedAfter); } if (!DocTools.IsNullOrEmpty(request.Created)) { entities = entities.Where(e => null != e.Created && e.Created.Value.Date == request.Created.Value.Date); } if (!DocTools.IsNullOrEmpty(request.CreatedBefore)) { entities = entities.Where(e => null != e.Created && e.Created <= request.CreatedBefore); } if (!DocTools.IsNullOrEmpty(request.CreatedAfter)) { entities = entities.Where(e => null != e.Created && e.Created >= request.CreatedAfter); } if (true == request.Archived?.Any() && currentUser.HasProperty(DocConstantModelName.DEFAULT, nameof(Reference.Archived), DocConstantPermission.VIEW)) { entities = entities.Where(en => en.Archived.In(request.Archived)); } else { entities = entities.Where(en => !en.Archived); } if (true == request.Locked?.Any()) { entities = entities.Where(en => en.Locked.In(request.Locked)); } if (!DocTools.IsNullOrEmpty(request.DiseaseState) && !DocTools.IsNullOrEmpty(request.DiseaseState.Id)) { entities = entities.Where(en => en.DiseaseState.Id == request.DiseaseState.Id); } if (true == request.DiseaseStateIds?.Any()) { entities = entities.Where(en => en.DiseaseState.Id.In(request.DiseaseStateIds)); } if (!DocTools.IsNullOrEmpty(request.Role) && !DocTools.IsNullOrEmpty(request.Role.Id)) { entities = entities.Where(en => en.Role.Id == request.Role.Id); } if (true == request.RoleIds?.Any()) { entities = entities.Where(en => en.Role.Id.In(request.RoleIds)); } if (!DocTools.IsNullOrEmpty(request.Scope) && !DocTools.IsNullOrEmpty(request.Scope.Id)) { entities = entities.Where(en => en.Scope.Id == request.Scope.Id); } if (true == request.ScopeIds?.Any()) { entities = entities.Where(en => en.Scope.Id.In(request.ScopeIds)); } if (!DocTools.IsNullOrEmpty(request.TherapeuticArea) && !DocTools.IsNullOrEmpty(request.TherapeuticArea.Id)) { entities = entities.Where(en => en.TherapeuticArea.Id == request.TherapeuticArea.Id); } if (true == request.TherapeuticAreaIds?.Any()) { entities = entities.Where(en => en.TherapeuticArea.Id.In(request.TherapeuticAreaIds)); } entities = ApplyFilters <DocEntityDefault, DefaultSearch>(request, entities); if (request.Skip > 0) { entities = entities.Skip(request.Skip.Value); } if (request.Take > 0) { entities = entities.Take(request.Take.Value); } if (true == request?.OrderBy?.Any()) { entities = entities.OrderBy(request.OrderBy); } if (true == request?.OrderByDesc?.Any()) { entities = entities.OrderByDescending(request.OrderByDesc); } }); return(entities); }
public object Get(DefaultSearch request) => GetSearchResultWithCache <Default, DocEntityDefault, DefaultSearch>(DocConstantModelName.DEFAULT, request, _ExecSearch);
public object Post(DefaultSearch request) => Get(request);