using CZFW.Core; using CZFW.Core.Json; using CZFW.Framework.Model.Common; using System; namespace CZFW.Framework.Model { public class OperatorProvider { public static OperatorProvider Provider => new OperatorProvider(); private const string LoginUserKey = "CZFW_loginuserkey_2017"; private readonly string _loginProvider = ConfigHelper.Configs["Framework:LoginProvider"]; public OperatorModel GetCurrent() { OperatorModel operatorModel; if (_loginProvider == "Session") { if (string.IsNullOrEmpty(WebHelper.GetSession(LoginUserKey))) { return null; } operatorModel = WebHelper.GetSession(LoginUserKey).ToObject(); } else { if (string.IsNullOrEmpty(WebHelper.GetCookie(LoginUserKey))) { return null; } operatorModel = WebHelper.GetCookie(LoginUserKey).ToObject(); } return operatorModel ?? (new OperatorModel()); } public void AddCurrent(OperatorModel operatorModel, int expireMinutes = 60) { if (_loginProvider == "Session") { WebHelper.WriteSession(LoginUserKey, operatorModel.ToJson()); } else { WebHelper.WriteCookie(LoginUserKey, operatorModel.ToJson(), expireMinutes); } } public void RemoveCurrent() { if (_loginProvider == "Session") { WebHelper.RemoveSession(LoginUserKey.Trim()); } else { WebHelper.RemoveCookie(LoginUserKey.Trim()); } } public int CurrentId { get { if(CZHttpContext.Current==null) return ConfigHelper.GetValue("Framework:DefaultUserId"); var user = GetCurrent(); if (user != null) return user.UserId; return ConfigHelper.GetValue("Framework:DefaultUserId"); } } public static IServiceProvider serviceProvider; #region 物流管理系统登录用户 private const string LoginUserInfoKey = "WLGL_LoginUserKey"; public UserModel GetUser() { UserModel userModel; if (!string.IsNullOrEmpty(WebHelper.GetSession(LoginUserKey))) { userModel = WebHelper.GetSession(LoginUserKey).ToObject(); } else { if (string.IsNullOrEmpty(WebHelper.GetCookie(LoginUserKey))) { return null; } userModel = WebHelper.GetCookie(LoginUserKey).ToObject(); } return userModel ?? (new UserModel()); } public void AddUser(UserModel userModel, int expireMinutes = 60 * 24 * 5) { WebHelper.WriteSession(LoginUserKey, userModel.ToJson()); WebHelper.WriteCookie(LoginUserKey, userModel.ToJson(), expireMinutes); } public void RemoveUser() { WebHelper.RemoveSession(LoginUserKey.Trim()); WebHelper.RemoveCookie(LoginUserKey.Trim()); } #endregion } }