示例#1
0
        public virtual IHttpActionResult SaveCurrentLocation([FromBody] LocationRequest locationRequest)
        {
            var response        = new InsertLocationResponse();
            var requestValidate = new ValidateRequestEngine(locationRequest);

            try
            {
                if (requestValidate.IsValid)
                {
                    LocationDa da = new LocationDa();
                    da.SaveChanges(LocationConverter.Convert(locationRequest));
                    response.Success = true;
                    response.Message = "Saved Location.";
                    da.Dispose();
                }
                else
                {
                    response.Success = false;
                    response.Message = requestValidate.Message;
                    return(new HttpActionResult(HttpStatusCode.BadRequest, response));
                }
            }
            catch (Exception ex)
            {
            }
            return(new HttpActionResult(HttpStatusCode.OK, response));
        }
        public void EnsureLocationConverterConvertsToAGeoCoordinate()
        {
            Location location = new Location() { Latitude = TestLatitude, Longitude = TestLongitude };
            LocationConverter converter = new LocationConverter();
            GeoCoordinate coord = converter.Convert(location, typeof(GeoCoordinate), null, null) as GeoCoordinate;

            Assert.AreEqual(location.Latitude, coord.Latitude, "Expected same Latitude");
            Assert.AreEqual(location.Longitude, coord.Longitude, "Expected same Longitude");
        }
示例#3
0
        public void EnsureLocationConverterConvertsToAGeoCoordinate()
        {
            Location location = new Location()
            {
                Latitude = TestLatitude, Longitude = TestLongitude
            };
            LocationConverter converter = new LocationConverter();
            GeoCoordinate     coord     = converter.Convert(location, typeof(GeoCoordinate), null, null) as GeoCoordinate;

            Assert.AreEqual(location.Latitude, coord.Latitude, "Expected same Latitude");
            Assert.AreEqual(location.Longitude, coord.Longitude, "Expected same Longitude");
        }
        /// <summary>
        /// Creates a new location.
        /// </summary>
        /// <param name="locationViewModel"></param>
        /// <param name="ct"></param>
        /// <returns>LocationViewModel</returns>
        public async Task <LocationViewModel> AddLocationAsync(LocationRequestViewModel locationRequestViewModel, CancellationToken ct = default(CancellationToken))
        {
            var location = new Location
            {
                Longitude = (double)locationRequestViewModel.Longitude,
                Latitude  = (double)locationRequestViewModel.Latitude,
                VehicleId = (int)locationRequestViewModel.VehicleId,
                CreatedAt = DateTime.Now
            };

            location = await _repository.AddAsync(location, ct);

            var locationViewModel = LocationConverter.Convert(location);

            return(locationViewModel);
        }
示例#5
0
    private static async Task <IEnumerable <ML.Location> > QueryDataAsync(OwntracksSettings owntracksSettings, CancellationToken cancellationToken = default)
    {
        using var messageHandler = new HttpClientHandler { Credentials = new NetworkCredential(owntracksSettings.HttpUserName, owntracksSettings.HttpPassword) };
        using var httpClient     = new HttpClient(messageHandler)
              {
                  BaseAddress = owntracksSettings.Uri
              };

        var            apiClient = new OwntracksApiClient(httpClient);
        GetUsersResult?users     = await apiClient.GetUsersAsync(cancellationToken).ConfigureAwait(false);

        var result = new List <ML.Location>();

        if (users == null)
        {
            return(result);
        }

        foreach (string?user in users.Results)
        {
            GetDevicesResult?devices = await apiClient.GetDevicesAsync(user, cancellationToken).ConfigureAwait(false);

            if (devices == null)
            {
                continue;
            }

            foreach (string?device in devices.Results)
            {
                GetLocationsResult?locationsResult = await apiClient.GetLocationsAsync(user, device, DateTimeOffset.UtcNow.AddYears(-42), cancellationToken : cancellationToken).ConfigureAwait(false);

                if (locationsResult == null)
                {
                    continue;
                }

                IEnumerable <ML.Location>?convertedLocationResults = locationsResult.Data.Select(l => LocationConverter.Convert(user, device, l));
                result.AddRange(convertedLocationResults);
            }
        }

        return(result);
    }
示例#6
0
        public void EnsureLocationConverterReturnsNullForBadType()
        {
            LocationConverter converter = new LocationConverter();

            Assert.IsNull(converter.Convert(string.Empty, null, null, null), "Expected null result");
        }
 public void EnsureLocationConverterReturnsNullForBadType()
 {
     LocationConverter converter = new LocationConverter();
     Assert.IsNull(converter.Convert(string.Empty, null, null, null), "Expected null result");
 }
        /// <summary>
        /// Get the current location for a vehicle.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public async Task <LocationViewModel> GetLocationByVehicleIdAsync(int id, CancellationToken ct = default(CancellationToken))
        {
            var location = await _repository.GetCurrentByVehicleIdAsync(id, ct);

            return(LocationConverter.Convert(location));
        }
示例#9
0
        public LocationBO Create(LocationBO location)
        {
            Location loc = converter.Convert(location);

            if (loc == null)
            {
                return(null);
            }
            _context.Locations.Add(loc);
            _context.SaveChanges();
            return(converter.Convert(loc));
        }