public IActionResult SearchSchedule([FromBody] SearchScheduleModel model) { var schedules = _customerService.SearchSchedule(model.PickupLocation, model.ReturnLocation, model.Reservations); if (schedules == null) { return(NotFound()); } var results = _mapper.Map <IList <ScheduleModel> >(schedules); foreach (var item in results) { item.RateAverage = _customerService.GetRateAverageOfDriver(item.DriverId); } return(Ok(results)); }
public SearchScheduleReadModel GetAll(int page, int pageSize, SearchScheduleModel scheduleModel) { using (IDbConnection conn = Connection) { string sQuery = @"BEGIN DECLARE @totalRow INT-- tong ban ghi SELECT @totalRow = Count(*) FROM dbo.Schedule WHERE (@Type IS NULL OR RouteManagerType = @Type) AND (@Name IS NULL OR LOWER(Name) LIKE LOWER(@SearchName) ) AND (@DeliveredAt IS NULL OR CAST(DeliveredAt AS DATE) = CAST(@DeliveredAt AS DATE)); Select [Id], [CreatedById], [DeliveredAt], [EstimatedDistance] , [EstimatedDuration], [Name], [Note], [NumberOfCustomers] , [RouteManagerType], [Status], [Weight], [CreatedAt] From dbo.Schedule WHERE (@Type IS NULL OR RouteManagerType = @Type) AND (@Name IS NULL OR LOWER(Name) LIKE LOWER(@SearchName)) AND (@DeliveredAt IS NULL OR CAST(DeliveredAt AS DATE) = CAST(@DeliveredAt AS DATE)); SELECT @page as Page, @pageSize as PageSize, @totalRow as Total; END "; using (var multi = conn.QueryMultiple(sQuery, new { Type = scheduleModel.Type, Name = scheduleModel.Name, SearchName = "%" + scheduleModel.Name + "%", DeliveredAt = scheduleModel.DeliveredAt, page, pageSize })) { var schedules = multi.Read <ScheduleReadModel>(); var pageData = multi.ReadFirstOrDefault <PagingReadModel>(); SearchScheduleReadModel searchSchedule = new SearchScheduleReadModel { Schedules = schedules, PageInfo = pageData }; return(searchSchedule); } } }
public Task <SearchScheduleResponse> GetAll(SearchScheduleRequest request) { var response = new SearchScheduleResponse(); try { var searchScheduleModel = new SearchScheduleModel { DeliveredAt = request.DeliveredAt, Name = request.Name, Type = request.Type }; var result = _scheduleService.GetAll(request.Page, request.PageSize, searchScheduleModel); response.Data = from a in result.Schedules select new { a.CreatedAt, a.CreatedById, a.DeliveredAt, a.EstimatedDistance, a.EstimatedDuration, ID = a.Id, a.Name, a.NumberOfCustomers, a.RouteManagerType, a.Weight, a.Status }; response.Page = result.PageInfo.Page; response.PageSize = result.PageInfo.PageSize; response.Total = result.PageInfo.Total; response.Success = true; } catch (Exception ex) { response.Message = ex.Message; response.Success = false; } return(Task.FromResult(response)); }
public SearchScheduleReadModel GetAll(int page, int pageSize, SearchScheduleModel scheduleModel) { return(_scheduleRepository.GetAll(page, pageSize, scheduleModel)); }