Пример #1
0
        public async Task UpdateRider(DTO.Rider rider)
        {
            Models.Rider current = await GetRider(rider.IdRider);

            RiderMapper.MapRiderDTO(current, rider);
            await deliveriesDbContext.SaveChangesAsync();
        }
Пример #2
0
        public async Task <int> AddRider(DTO.Rider rider)
        {
            Models.Rider newRider = RiderMapper.MapNewRiderDTO(rider);
            deliveriesDbContext.Rider.Add(newRider);
            await deliveriesDbContext.SaveChangesAsync();

            return(newRider.IdRider);
        }
Пример #3
0
        public async Task <List <Models.Rider> > GetRiders(DTO.RiderFilter filter)
        {
            var result = await deliveriesDbContext.Rider
                         .Where(r => (filter.Active.HasValue && filter.Active.Value == r.Active) || !filter.Active.HasValue)
                         .ToListAsync();

            if (filter.Latitude.HasValue && filter.Longitude.HasValue)
            {
                var pos = new FoodOnKontainers.DTO.Common.Position();
                pos.Latitude  = filter.Latitude.Value;
                pos.Longitude = filter.Longitude.Value;
                IGeometry position = RiderMapper.GetGeometry(pos);
                // TODO: verificare significato distanza (gradi)
                result = result
                         .Where(r => r.StartingPoint != null && r.Range.HasValue && position.IsWithinDistance(r.StartingPoint, r.Range.Value))
                         .OrderBy(r => r.StartingPoint.Distance(position))
                         .ToList();
            }

            return(result);
        }