62 lines
2.4 KiB
C#
62 lines
2.4 KiB
C#
using AyCode.Services.Loggers;
|
|
using DevExpress.Office;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Json;
|
|
using System.Threading.Tasks;
|
|
using TIAM.Core.Loggers;
|
|
using TIAMWebApp.Shared.Application.Models;
|
|
using TIAMWebApp.Shared.Application.Models.ClientSide;
|
|
using TIAMWebApp.Shared.Application.Models.PageModels;
|
|
using TIAMWebApp.Shared.Application.Utility;
|
|
|
|
namespace TIAMWebApp.Shared.Application.Services
|
|
{
|
|
public class GooglePlacesService
|
|
{
|
|
private readonly HttpClient _httpClient;
|
|
private readonly ILogger _logger;
|
|
|
|
public GooglePlacesService(HttpClient httpClient, IEnumerable<IAcLogWriterClientBase> logWriters)
|
|
{
|
|
_httpClient = httpClient;
|
|
_logger = new LoggerClient<TransferDataService>(logWriters.ToArray());
|
|
}
|
|
|
|
public async Task<string> ValidateAddressAsync(string address)
|
|
{
|
|
|
|
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GoogleValidateAddress}";
|
|
var response = await _httpClient.PostAsJsonAsync(url, address);
|
|
var result = await response.Content.ReadAsStringAsync();
|
|
//var user = JsonConvert.DeserializeObject<UserModelDto>(result);
|
|
return result;
|
|
}
|
|
|
|
public async Task<string> CalculateRouteAsync(string origin, string destination, DateTime travelTime)
|
|
{
|
|
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GoogleCalculateRoute}";
|
|
|
|
RouteCalculationModel routeCalculationModel = new RouteCalculationModel();
|
|
routeCalculationModel.Origin = origin ;
|
|
routeCalculationModel.Destination = destination ;
|
|
routeCalculationModel.TravelTime = travelTime ;
|
|
var response = await _httpClient.PostAsJsonAsync(url, routeCalculationModel);
|
|
var result = await response.Content.ReadAsStringAsync();
|
|
//var user = JsonConvert.DeserializeObject<UserModelDto>(result);
|
|
return result;
|
|
}
|
|
public async Task<List<string>> GetPlacePredictionsAsync(string input)
|
|
{
|
|
var url = $"{Setting.ApiBaseUrl}/{APIUrls.GoogleAutoComplete}";
|
|
var response = await _httpClient.PostAsJsonAsync(url, input);
|
|
var result = await response.Content.ReadFromJsonAsync(typeof(List<string>));
|
|
//var user = JsonConvert.DeserializeObject<UserModelDto>(result);
|
|
_logger.Debug($"result: {result.GetType().FullName}");
|
|
return (List<string>)result;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|