2023-09-13 17:31:22 +08:00
|
|
|
using System;
|
2023-04-13 11:51:03 +08:00
|
|
|
using System.Collections.Generic;
|
2023-09-07 23:30:33 +08:00
|
|
|
using System.Threading.Tasks;
|
2023-04-13 11:51:03 +08:00
|
|
|
using Aitex.Core.Account;
|
|
|
|
using Aitex.Core.Util;
|
|
|
|
using Aitex.Core.WCF;
|
|
|
|
using MECF.Framework.Common.Account.Extends;
|
2023-09-21 11:41:43 +08:00
|
|
|
using MECF.Framework.Common.Account.Permissions;
|
2023-04-13 11:51:03 +08:00
|
|
|
|
|
|
|
namespace MECF.Framework.UI.Core.Accounts
|
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
public class AccountServiceClient : IAccountService
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
#region Constructors
|
|
|
|
|
2023-04-13 11:51:03 +08:00
|
|
|
public AccountServiceClient()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region Accounts Operations
|
|
|
|
|
2023-04-13 11:51:03 +08:00
|
|
|
public GetAccountInfoResult GetAccountInfo(string accountId)
|
|
|
|
{
|
|
|
|
GetAccountInfoResult result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
result = svc.GetAccountInfo(accountId);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public List<AccountEx> GetAccountsIncludeSuper()
|
|
|
|
{
|
|
|
|
var result = new List<AccountEx>();
|
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
|
|
|
{
|
|
|
|
result = svc.GetAccountsIncludeSuper();
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public List<AccountEx> GetAccounts()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = new List<AccountEx>();
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetAccounts();
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
2023-09-20 17:25:51 +08:00
|
|
|
return result;
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public ChangePwdResult ChangePassword(string accountId, string newPassword)
|
|
|
|
{
|
|
|
|
ChangePwdResult result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
result = svc.ChangePassword(accountId, newPassword);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-22 11:04:49 +08:00
|
|
|
public bool CheckPassword(string accountId, string passwordMD5)
|
|
|
|
{
|
|
|
|
var result = false;
|
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
|
|
|
{
|
|
|
|
result = svc.CheckPassword(accountId, passwordMD5);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-04-13 11:51:03 +08:00
|
|
|
public CreateAccountResult CreateAccount(Account newAccount)
|
|
|
|
{
|
|
|
|
CreateAccountResult result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
result = svc.CreateAccount(newAccount);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
public DeleteAccountResult DeleteAccount(string accountId)
|
|
|
|
{
|
|
|
|
DeleteAccountResult result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
result = svc.DeleteAccount(accountId);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
public UpdateAccountResult UpdateAccount(Account account)
|
|
|
|
{
|
|
|
|
UpdateAccountResult result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
result = svc.UpdateAccount(account);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public bool UpdateAccountEx(AccountEx account)
|
|
|
|
{
|
|
|
|
var result = false;
|
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
|
|
|
{
|
|
|
|
result = svc.UpdateAccountEx(account);
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public bool DeleteAccountEx(string accountId)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = false;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.DeleteAccountEx(accountId);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region Login Sessions Operations
|
2023-04-13 11:51:03 +08:00
|
|
|
|
|
|
|
public List<Account> GetLoginUsers()
|
|
|
|
{
|
|
|
|
List<Account> result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
result = svc.GetLoginUsers();
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void KickUserOut(string accountId, string kickoutReason)
|
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
|
|
|
svc.KickUserOut(accountId, kickoutReason);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public async Task<LoginResult> LoginEx(string userName, string password, string role,
|
|
|
|
LoginClientInfo clientInfo)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
LoginResult result = default;
|
|
|
|
await WCFProxy.AsyncUsing(async delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = await svc.LoginEx(userName, password, role, clientInfo);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
2023-09-20 17:25:51 +08:00
|
|
|
|
2023-04-13 11:51:03 +08:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public void CancelLoginRequest(string userName)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
svc.CancelLoginRequest(userName);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public void ConfirmLoginRequest(string userName)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
svc.ConfirmLoginRequest(userName);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public void RejectLoginRequest(string userName)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
svc.RejectLoginRequest(userName);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public void LogoutEx(Guid myToken)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
svc.LogoutEx(myToken);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public CredentialKeepAliveCheckResult KeepAlive(Guid myToken)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = new CredentialKeepAliveCheckResult();
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.KeepAlive(myToken);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region Roles Operations
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public IEnumerable<Role> GetRolesIncludeSuper()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
IEnumerable<Role> result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetRolesIncludeSuper();
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public List<Role> GetRoles()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = new List<Role>();
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetRoles();
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public bool UpdateRole(Role role)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = false;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.UpdateRole(role);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public bool DeleteRole(string roleId)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = false;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.DeleteRole(roleId);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
/// <inheritdoc />
|
|
|
|
public string GetAvailableRoleID()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = "";
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetAvailableRoleID();
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public Role GetRoleByID(string id)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
Role result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetRoleByID(id);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-05 10:20:23 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public Role GetRoleByName(string name)
|
2023-09-05 10:20:23 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
Role result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-09-05 10:20:23 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetRoleByName(name);
|
2023-09-05 10:20:23 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public bool CheckRoleNotDuplicated(string id, string name)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = false;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.CheckRoleNotDuplicated(id, name);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
#endregion
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
#region Common Operations
|
|
|
|
|
|
|
|
public List<AppMenu> GetAllMenus()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = new List<AppMenu>();
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetAllMenus();
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public void RegisterViews(List<string> views)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
svc.RegisterViews(views);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
public SerializableDictionary<string, string> GetAllViewList()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
SerializableDictionary<string, string> result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetAllViewList();
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
2023-09-07 23:30:33 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public bool SaveProcessViewPermission(string viewXML)
|
2023-09-07 23:30:33 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = false;
|
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-09-07 23:30:33 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.SaveProcessViewPermission(viewXML);
|
2023-09-07 23:30:33 +08:00
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public string GetProcessViewPermission()
|
2023-09-07 23:30:33 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
string result = null;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetProcessViewPermission();
|
2023-09-07 23:30:33 +08:00
|
|
|
});
|
2023-09-20 17:25:51 +08:00
|
|
|
return result;
|
2023-09-07 23:30:33 +08:00
|
|
|
}
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region Permission Operations
|
2023-09-13 17:31:22 +08:00
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data)
|
2023-09-13 17:31:22 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = false;
|
2023-09-13 17:31:22 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.SaveAllRolesPermission(data);
|
2023-09-13 17:31:22 +08:00
|
|
|
});
|
2023-09-20 17:25:51 +08:00
|
|
|
return result;
|
2023-09-13 17:31:22 +08:00
|
|
|
}
|
|
|
|
|
2023-09-20 17:25:51 +08:00
|
|
|
public List<AppMenu> GetAccessibleMenusByRole(string roleid)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
var result = new List<AppMenu>();
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetAccessibleMenusByRole(roleid);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
2023-09-20 17:25:51 +08:00
|
|
|
return result;
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|
|
|
|
|
2023-09-21 11:41:43 +08:00
|
|
|
public MenuPermissionEnum GetMenuPermission(string roleId, string menuName)
|
2023-09-20 17:25:51 +08:00
|
|
|
{
|
2023-09-21 11:41:43 +08:00
|
|
|
var result = MenuPermissionEnum.MP_NONE;
|
2023-09-07 23:30:33 +08:00
|
|
|
WCFProxy.Using(delegate(IAccountService svc)
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-09-20 17:25:51 +08:00
|
|
|
result = svc.GetMenuPermission(roleId, menuName);
|
2023-04-13 11:51:03 +08:00
|
|
|
});
|
2023-09-12 18:11:47 +08:00
|
|
|
return result;
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|
2023-09-20 17:25:51 +08:00
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|
|
|
|
}
|