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); } } }