102 lines
3.0 KiB
C#
102 lines
3.0 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using 報到系統客戶端.Models;
|
|
|
|
namespace 報到系統客戶端.Services
|
|
{
|
|
/// <summary>
|
|
/// 登入服務客戶端
|
|
/// 呼叫後端 Services/LoginService.asmx
|
|
/// </summary>
|
|
public class LoginService
|
|
{
|
|
private const string SERVICE_PATH = "/Services/LoginService.asmx";
|
|
|
|
/// <summary>
|
|
/// 登入
|
|
/// </summary>
|
|
/// <param name="username">使用者名稱</param>
|
|
/// <param name="password">密碼</param>
|
|
/// <param name="rememberMe">是否記住密碼</param>
|
|
/// <returns>登入結果</returns>
|
|
public static BaseResponse Login(string username, string password, bool rememberMe = false)
|
|
{
|
|
var parameters = new
|
|
{
|
|
username = username,
|
|
password = password,
|
|
rememberMe = rememberMe
|
|
};
|
|
|
|
return ApiService.Instance.Post(SERVICE_PATH, "Login", parameters);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登入(非同步版本)
|
|
/// </summary>
|
|
public static async Task<BaseResponse> LoginAsync(string username, string password, bool rememberMe = false)
|
|
{
|
|
var parameters = new
|
|
{
|
|
username = username,
|
|
password = password,
|
|
rememberMe = rememberMe
|
|
};
|
|
|
|
return await ApiService.Instance.PostAsync(SERVICE_PATH, "Login", parameters);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登出
|
|
/// </summary>
|
|
/// <returns>登出結果</returns>
|
|
public static BaseResponse Logout()
|
|
{
|
|
return ApiService.Instance.Post(SERVICE_PATH, "Logout", null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登出(非同步版本)
|
|
/// </summary>
|
|
//public static async Task<BaseResponse> LogoutAsync()
|
|
//{
|
|
// return await ApiService.Instance.PostAsync(SERVICE_PATH, "Logout", null);
|
|
//}
|
|
|
|
/// <summary>
|
|
/// 檢查 Session(當作心跳使用)
|
|
/// </summary>
|
|
/// <returns>檢查結果</returns>
|
|
public static BaseResponse CheckSession()
|
|
{
|
|
return ApiService.Instance.Post(SERVICE_PATH, "CheckSession", null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 檢查 Session(非同步版本)
|
|
/// </summary>
|
|
//public static async Task<BaseResponse> CheckSessionAsync()
|
|
//{
|
|
// return await ApiService.Instance.PostAsync(SERVICE_PATH, "CheckSession", null);
|
|
//}
|
|
|
|
/// <summary>
|
|
/// 清除 Session
|
|
/// </summary>
|
|
public static void ClearSession()
|
|
{
|
|
ApiService.Instance.ClearSession();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 測試是否能連線
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static bool Ping()
|
|
{
|
|
var pingResult = ApiService.Instance.Post(SERVICE_PATH, "Ping", null);
|
|
return pingResult != null;
|
|
}
|
|
}
|
|
}
|