Assignment for Location Calculation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

66 lines
1.9 KiB

using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using POCDistance.Models;
using POCDistance.Service;
using System;
using System.Net;
namespace POCDistance.Controllers
{
[EnableCors(SecurityPolicy.SiteCorsPolicy)]
[ApiController]
[Route("api/[controller]")]
public class DistanceController : ControllerBase
{
private readonly ILogger<DistanceController> _logger;
private readonly ILocationService _locationService;
public ErrorModel errorModel;
public DistanceController(ILogger<DistanceController> logger, ILocationService locationService)
{
_logger = logger;
_locationService = locationService;
}
[Route("GetDistance")]
[HttpGet]
public ActionResult GetDistance(string travelFrom, string travelTo)
{
var vResult = new ErrorModel();
var model = _locationService.GetDistanceByZipCode(travelFrom, travelTo);
if (!string.IsNullOrEmpty(model.Distance))
{
return Ok(model);
}
else
{
vResult.Status = Convert.ToInt32(HttpStatusCode.BadRequest);
vResult.Message = "Postal code(s) not found!";
return BadRequest(vResult);
}
}
[Route("GetZipCode")]
[HttpGet]
public ActionResult GetZipCode(string zipCode)
{
var vResult = new ErrorModel();
var model = _locationService.GetManyByZipCode(zipCode);
if (model.Count > 0)
{
return Ok(model);
}
else
{
vResult.Status = Convert.ToInt32(HttpStatusCode.BadRequest);
vResult.Message = "Zip code not found";
return BadRequest(vResult);
}
}
}
}