public async Task <List <ResourceOrder> > GetOpenAvailableOrders(int departmentId) { var orders = new List <ResourceOrder>(); var departmentSettings = await _resourceOrdersRepository.GetOrderSettingByDepartmentId(departmentId); var department = _departmentsService.GetDepartmentById(departmentId); var mapCenterLocation = _departmentSettingsService.GetMapCenterCoordinates(department); // Target department does not want to recieve orders if (departmentSettings != null && departmentSettings.DoNotReceiveOrders) { return(orders); } //var allRangeOrders = await _resourceOrdersRepository.GetAllOpenOrdersByRange(departmentId); var allRangeOrders = await _genericResourceOrderRepository.GetAll() .Where(x => x.DepartmentId != departmentId && x.CloseDate == null && x.Visibility == 0) .ToListAsync(); orders.AddRange(allRangeOrders.Where(x => (x.OriginLocation.GetDistanceTo(new GeoCoordinate(mapCenterLocation.Latitude.Value, mapCenterLocation.Longitude.Value)) / 1609.344) <= x.Range)); //orders.AddRange(await _resourceOrdersRepository.GetAllOpenOrdersUnrestricted(departmentId)); orders.AddRange(await _genericResourceOrderRepository.GetAll().Where(x => x.DepartmentId != departmentId && x.CloseDate == null && x.Visibility == 3).ToListAsync()); orders.AddRange(await _resourceOrdersRepository.GetAllOpenOrdersLinked(departmentId)); return(orders); }