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.
 
 
 
 
 

165 lines
5.1 KiB

using EasyBL;
using EasyBL.WebApi;
using EasyBL.WebApi.Common;
using EasyBL.WebApi.Filters;
using EasyBL.WebApi.Message;
using EasyBL.WEBAPP;
using EasyBL.WEBAPP.SYS;
using Entity.ShowEasyDtos;
using Entity.Sugar;
using Entity.ViewModels;
using Newtonsoft.Json;
using SqlSugar.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
namespace WebApp.Controllers
{
public class BookingOnlineController : ApiController
{
/// <summary>
/// 子類別查詢API (服務有包含該類別才列出)
/// </summary>
/// <param name="argumentClassID"></param>
/// <returns></returns>
[HttpGet]
[SEApiSecurityFilter]
public HttpResponseMessage BookingCategoryList(string Lang)
{
var SEToken = SETokenUtil.GetToken(this.Request);
return new BookingOnlineService().GetBookingCategory(SEToken.Account, Lang);
}
/// <summary>
/// 子類別查詢API (服務有包含該類別才列出)
/// </summary>
/// <param name="argumentClassID"></param>
/// <returns></returns>
[HttpGet]
[SEApiSecurityFilter]
public HttpResponseMessage BookingCardList(string Lang, int PageIndex, int PageSize, string SubCategoryIDs, string BookingStatuses, string PaymentStatuses, string Query)
{
var SEToken = SETokenUtil.GetToken(this.Request);
var sAccount = SEToken.Email;
List<string> rsSubCategoryIDs = new List<string>();
List<string> rsBookingStatuses = new List<string>();
List<string> rsPaymentStatuses = new List<string>();
if (!string.IsNullOrEmpty(SubCategoryIDs))
{
rsSubCategoryIDs = JsonConvert.DeserializeObject<List<string>>(SubCategoryIDs);
}
if (!string.IsNullOrEmpty(BookingStatuses))
{
rsBookingStatuses = JsonConvert.DeserializeObject<List<string>>(BookingStatuses);
}
if (!string.IsNullOrEmpty(PaymentStatuses))
{
rsPaymentStatuses = JsonConvert.DeserializeObject<List<string>>(PaymentStatuses);
}
return new BookingOnlineService().BookingCardList(Lang, sAccount, PageIndex, PageSize, rsSubCategoryIDs, rsBookingStatuses, rsPaymentStatuses, Query);
}
/// <summary>
/// 上傳匯款單
/// </summary>
/// <param name="argumentClassID"></param>
/// <returns></returns>
[HttpPost]
[SEApiSecurityFilter]
public HttpResponseMessage UploadRemittance(string BookingID)
{
var SEToken = SETokenUtil.GetToken(this.Request);
return new BookingOnlineService().UploadRemittance(SEToken.OrgID, SEToken.Account, BookingID);
}
/// <summary>
/// 導向後台
/// </summary>
/// <param name="argumentClassID"></param>
/// <returns></returns>
[HttpGet]
public HttpResponseMessage RedirectToBackend(string BookingNo)
{
var result = new BookingOnlineService().RedirectToBackend(BookingNo);
var Server = Common.ConfigGetValue("", "ida:RedirectUri");
if (result.ReasonPhrase == "OK")
{
result = Request.CreateResponse(HttpStatusCode.Moved);
result.Headers.Location = new Uri(Server);
}
return result;
}
/// <summary>
/// 取消訂單
/// </summary>
/// <param name="argumentClassID"></param>
/// <returns></returns>
[HttpPost]
[SEApiSecurityFilter]
public HttpResponseMessage CancelBooking(string BookingID, string Lang)
{
var SEToken = SETokenUtil.GetToken(this.Request);
return new BookingOnlineService().CancelBooking(SEToken.Account, BookingID, Lang);
}
/// <summary>
/// 用訂單編號查
/// </summary>
/// <param name="argumentClassID"></param>
/// <returns></returns>
[HttpGet]
[SEApiSecurityFilter]
public HttpResponseMessage Booking(string Lang, string BookingID, string BookingNo)
{
var SEToken = SETokenUtil.GetToken(this.Request);
return new BookingOnlineService().GetOneDetailBooking(Lang, SEToken.Account, BookingID, BookingNo);
}
[HttpPost]
[SEApiSecurityFilter]
public HttpResponseMessage BookingStatus(string BookingID, string BookingStatus)
{
var SEToken = SETokenUtil.GetToken(this.Request);
return new BookingOnlineService().SaveBookingStatus(BookingID, BookingStatus);
}
[HttpGet]
[SEApiSecurityFilter]
public HttpResponseMessage FindBookingID(string Lang, string BookingNo)
{
var SEToken = SETokenUtil.GetToken(this.Request);
return new BookingOnlineService().FindBookingID(Lang, SEToken.Account, BookingNo);
}
}
}