public async Task UpdateRider(DTO.Rider rider) { Models.Rider current = await GetRider(rider.IdRider); RiderMapper.MapRiderDTO(current, rider); await deliveriesDbContext.SaveChangesAsync(); }
public async Task <int> AddRider(DTO.Rider rider) { Models.Rider newRider = RiderMapper.MapNewRiderDTO(rider); deliveriesDbContext.Rider.Add(newRider); await deliveriesDbContext.SaveChangesAsync(); return(newRider.IdRider); }
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); }