using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using Aitex.Core.Util; namespace Aitex.Core.Account { /// <summary> /// This interface defines operation contracts for user account management. /// </summary> [ServiceContract] public interface IAccountService { /// <summary> /// User calls this method to login the server. /// </summary> /// <param name="accountId"></param> /// <param name="password"></param> [OperationContract] LoginResult Login(string accountId, string password); /// <summary> /// User calls this method to logout from the server. /// </summary> /// <param name="accountId"></param> [OperationContract] void Logout(string accountId); /// <summary> /// Administrator user calls this method to create a new account. /// </summary> /// <param name="newAccount"></param> /// <returns></returns> [OperationContract] CreateAccountResult CreateAccount(Account newAccount); /// <summary> /// Administrator user calls this method to delete an account. /// </summary> /// <param name="accountId"></param> /// <returns></returns> [OperationContract] DeleteAccountResult DeleteAccount(string accountId); /// <summary> /// get current login user's account data /// </summary> /// <returns></returns> //[OperationContract] //Account GetCurrentUser(); /// <summary> /// get user data by accountId /// </summary> /// <param name="accountId"></param> /// <returns></returns> [OperationContract] GetAccountInfoResult GetAccountInfo(string accountId); /// <summary> /// update account /// </summary> /// <param name="account"></param> /// <returns></returns>6 [OperationContract] UpdateAccountResult UpdateAccount(Account account); /// <summary> /// get account list /// </summary> /// <returns></returns> [OperationContract] GetAccountListResult GetAccountList(); /// <summary> /// change account password /// </summary> /// <param name="accountId"></param> /// <param name="newPassword"></param> [OperationContract] ChangePwdResult ChangePassword(string accountId, string newPassword); /// <summary> /// 获取当前登录的用户 /// </summary> /// <returns></returns> [OperationContract] List<Account> GetLoginUsers(); /// <summary> /// 强制注销用户 /// </summary> /// <param name="accountId"></param> /// <param name="reason"></param> [OperationContract] void KickUserOut(string accountId, string reason); /// <summary> /// get all roles' permission /// </summary> /// <param name="accountid"></param> /// <param name="clientip"></param> [OperationContract] SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission(); /// <summary> /// save all roles' permission /// </summary> /// <param name="accountid"></param> /// <param name="clientip"></param> [OperationContract] bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data); /// <summary> /// get all view list /// </summary> /// <param name="accountid"></param> /// <param name="clientip"></param> [OperationContract] SerializableDictionary<string, string> GetAllViewList(); /// <summary> /// Get all roles /// </summary> /// <returns></returns> [OperationContract] IEnumerable<string> GetAllRoles(); /// <summary> /// UI 界面定期发送CheckAlive事件,用于通知AccountManager当前用户仍旧Alive /// 如果连续超过10秒钟没有发送Alive信息,系统自动将该用户注销 /// </summary> /// <returns></returns> //[OperationContract] void CheckAlive(string accountId); /* [OperationContract] void RequestAuthorization(string accountId, string ip); [OperationContract] void AbortAuthorization(); [OperationContract] void GrantAuthorization(bool isGranted); [OperationContract] List<int> LoadInterestedEvents(string accountEmail); [OperationContract] void SaveInterestedEvents(string accountEmail, List<int> events); [OperationContract] int GetMaxInterestedEvents(); [OperationContract] void SaveWarningEvents(List<int> warningEvents); [OperationContract] List<int> LoadWarningEvents(); */ [OperationContract] string GetProcessViewPermission(); [OperationContract] bool SaveProcessViewPermission(string viewXML); } }