using Business.Reward;
using Common;
using Common.Helper;
using Common.Model.Reward;
using JsonRx.AuthFilter;
using log4net;
using Newtonsoft.Json;
using System;
using System.Web.Http;
namespace JsonRx.Api
{
[RoutePrefix("api/v2")]
public class RewardController : ApiController
{
private readonly IRewardServices requestServices;
private static readonly ILog Log = LogManager.GetLogger(typeof(RewardController));
///
/// Constructor RewardController
///
public RewardController(RewardServices requestServices)
{
this.requestServices = requestServices;
}
///
/// 구매할 수 있는 제품 리스트
///
///
[HttpPost]
[TokenAuthentication]
[Route("reward/productList")]
public IHttpActionResult GetProductList()
{
var url = ApplicationConfig.ReadWebConfig("rootUrl", "");
var jsonResult = requestServices.GetProductLists(url);
return Ok(jsonResult);
}
///
/// 제품 구매 요청
///
///
///
[HttpPost]
[TokenAuthentication]
[Route("reward/productBuy")]
public IHttpActionResult BuyProduct(RequestedOrderDetail orderRequest)
{
JsonRxResponse jxRes = new JsonRxResponse();
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "BuyRewardProduct";
Log.Debug("Log : Reward Product Buy : header : " + JsonConvert.SerializeObject(orderRequest));
if (orderRequest == null)
{
jxRes.ErrorCode = "1";
jxRes.Msg = "Invalid parameters.";
jxRes.Data = new { Message = jxRes.Msg };
return Ok(jxRes);
}
jxRes = requestServices.BuyProduct(orderRequest);
return Ok(jxRes);
}
///
/// 주문한 제품 리스트
///
///
///
[HttpPost]
[TokenAuthentication]
[Route("reward/productOrderedList")]
public IHttpActionResult OrderdProductList(RequestedOrderDetail orderRequest)
{
var jsonResult = requestServices.OrderedProductList(orderRequest);
return Ok(jsonResult);
}
///
///
///
[HttpPost]
[TokenAuthentication]
[Route("reward/branchInfo")]
public IHttpActionResult GetBranchInfos()
{
var jsonResult = requestServices.GetAgentInfo();
return Ok(jsonResult);
}
}
}