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.
 
 
 

67 lines
2.2 KiB

using DealerSelection.Api.Interface;
using DealerSelection.WebApi.Models;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;
using System.ComponentModel.DataAnnotations;
using Model = DealerSelection.Api.Models;
using Microsoft.AspNetCore.Authorization;
using DealerSelection.Api.Infrastructure.Mulesoft;
using Microsoft.Extensions.Caching.Memory;
namespace DealerSelection.WebApi.Controllers;
[ApiController]
[Route("Mulesoft")]
public class MulesoftController : ControllerBase
{
private readonly ILogger _logger;
private readonly IMemoryCache _memoryCache;
private IMulesoftApi Api { get; }
public MulesoftController(IMemoryCache memoryCache, IMulesoftApi api,
ILogger<MulesoftController> logger)
{
Api = api;
_memoryCache = memoryCache;
_logger = logger;
}
/// <summary>
/// Get Dealers
/// </summary>
/// <param name="buId"></param>
/// <param name="buUnit"></param>
/// <param name="latitude"></param>
/// <param name="longitude"></param>
/// <returns></returns>
[Authorize]
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(string))]
[SwaggerOperation(Tags = new[] { "Mulesoft" })]
[Route("GetDealers")]
public async Task<ActionResult<string>> GetDealers([Required] int buId,[Required] string buUnit,[Required] string latitude,[Required] string longitude)
{
Model.MulesoftResponse responseApi = await Api.GetDealers(buId, buUnit, latitude, longitude);
return responseApi.Result;
}
/// <summary>
/// Get Delear Master Details
/// </summary>
/// <param name="buId"></param>
/// <param name="dealerCode"></param>
/// <returns></returns>
[Authorize]
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(string))]
[SwaggerOperation(Tags = new[] { "Mulesoft" })]
[Route("GetDealersDetail")]
public async Task<ActionResult<string>> GetDealersDetail([Required] int buId,[Required] string dealerCode)
{
Model.MulesoftResponse responseApi = await Api.GetAndInsertDealerDetails(buId, dealerCode);
return responseApi.Result;
}
}