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 _logger; private readonly ILocationService _locationService; public ErrorModel errorModel; public DistanceController(ILogger 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); } } } }