Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 public SearchScheduleReadModel GetAll(int page, int pageSize, SearchScheduleModel scheduleModel)
 {
     return(_scheduleRepository.GetAll(page, pageSize, scheduleModel));
 }