Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Aitex/Core/Account/AccountService.cs

254 lines
6.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using Aitex.Common.Util;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Key;
using Aitex.Core.RT.Log;
using Aitex.Core.Util;
using MECF.Framework.Common.Account;
using MECF.Framework.Common.Account.Extends;
namespace Aitex.Core.Account
{
public sealed class AccountService : IAccountService
{
public string Module = "System";
public LoginResult Login(string accountId, string accountPwd)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not login");
return new LoginResult
{
ActSucc = false,
Description = "Software is expired"
};
}
EV.PostInfoLog(Module, $"User {accountId} try to login System.");
return AccountManager.Login(accountId, accountPwd);
}
public void Logout(string accountId)
{
EV.PostInfoLog(Module, $"User {accountId} logout sytem.");
try
{
}
catch
{
}
AccountManager.Logout(accountId);
}
public GetAccountInfoResult GetAccountInfo(string accountId)
{
return AccountManager.GetAccountInfo(accountId);
}
public void RegisterViews(List<string> views)
{
AccountManager.RegisterViews(views);
}
public ChangePwdResult ChangePassword(string accountId, string newPassword)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new ChangePwdResult();
}
EV.PostInfoLog(Module, $"Change user {accountId} password.");
LOG.Write($"Account operation, change user {accountId} password.");
return AccountManager.ChangePassword(accountId, newPassword);
}
public CreateAccountResult CreateAccount(Account newAccount)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new CreateAccountResult();
}
EV.PostInfoLog(Module, $"Create account{newAccount}.");
LOG.Write($"Account operation, Create user {newAccount.AccountId}.");
return AccountManager.CreateAccount(newAccount);
}
public DeleteAccountResult DeleteAccount(string accountId)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new DeleteAccountResult();
}
EV.PostInfoLog(Module, $"Delete account {accountId}.");
return AccountManager.DeleteAccount(accountId);
}
public UpdateAccountResult UpdateAccount(Account account)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new UpdateAccountResult();
}
EV.PostInfoLog(Module, $"Update {account} account information.");
return AccountManager.UpdateAccount(account);
}
public GetAccountListResult GetAccountList()
{
return AccountManager.GetAccountList();
}
public List<Account> GetLoginUsers()
{
return AccountManager.GetLoginUserList();
}
public void KickUserOut(string accountId, string kickoutReason)
{
EV.PostInfoLog(Module, $"Force user {accountId} logout systemreason{kickoutReason}.");
try
{
}
catch
{
}
AccountManager.Kickout(accountId, kickoutReason);
}
public SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission()
{
return AccountManager.GetAllRolesPermission();
}
public bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return false;
}
return AccountManager.SaveAllRolesPermission(data);
}
public SerializableDictionary<string, string> GetAllViewList()
{
return AccountManager.GetAllViewList();
}
public IEnumerable<string> GetAllRoles()
{
return AccountManager.GetAllRoles();
}
public void CheckAlive(string accountId)
{
AccountManager.CheckAlive(accountId);
}
public string GetProcessViewPermission()
{
string filename = Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
XmlDocument xmlDocument = new XmlDocument();
try
{
xmlDocument.Load(filename);
return xmlDocument.InnerXml;
}
catch (Exception ex)
{
LOG.Write(ex);
return "<Aitex></Aitex>";
}
finally
{
}
}
public bool SaveProcessViewPermission(string viewXML)
{
try
{
string filename = Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(viewXML);
XmlTextWriter xmlTextWriter = new XmlTextWriter(filename, null);
xmlTextWriter.Formatting = Formatting.Indented;
xmlDocument.Save(xmlTextWriter);
xmlTextWriter.Close();
return true;
}
catch (Exception ex)
{
LOG.Write(ex);
return false;
}
}
public List<Role> GetAllRoleList()
{
return Singleton<AccountExManager>.Instance.RoleLoader.RoleList;
}
public List<AccountEx> GetAllAccountExList()
{
return Singleton<AccountExManager>.Instance.RoleLoader.AccountList;
}
public List<Role> GetRoles()
{
return Singleton<AccountExManager>.Instance.RoleLoader.GetRoles();
}
public List<AccountEx> GetAccounts()
{
return Singleton<AccountExManager>.Instance.RoleLoader.GetAccounts();
}
public bool UpdateRole(Role role)
{
return Singleton<AccountExManager>.Instance.RoleLoader.UpdateRole(role);
}
public bool DeleteRole(string roleId)
{
return Singleton<AccountExManager>.Instance.RoleLoader.DeleteRole(roleId);
}
public List<AppMenu> GetMenusByRole(string roleId, List<AppMenu> lstMenu)
{
return Singleton<AccountExManager>.Instance.RoleLoader.GetMenusByRole(roleId, lstMenu);
}
public int GetMenuPermission(string roleId, string menuName)
{
return Singleton<AccountExManager>.Instance.RoleLoader.GetMenuPermission(roleId, menuName);
}
public bool UpdateAccountEx(AccountEx account)
{
return Singleton<AccountExManager>.Instance.RoleLoader.UpdateAccount(account);
}
public bool DeleteAccountEx(string accountId)
{
return Singleton<AccountExManager>.Instance.RoleLoader.DeleteAccount(accountId);
}
public LoginResult LoginEx(string accountId, string password, string role)
{
return Singleton<AccountExManager>.Instance.AuthLogin(accountId, password, role);
}
public void LogoutEx(string accountId, string loginId)
{
Singleton<AccountExManager>.Instance.Logout(accountId, loginId);
}
}
}