using System; using System.Threading.Tasks; using Abp.Runtime.Caching; using Abp.Runtime.Session; using Abp.UI; using WeApp.Authorization.Users; using WeApp.CommonManager.AppGuids; using WeApp.CommonManager.Notifications; using WeApp.CommonManager.States; using WeApp.MultiTenancy; using IwbZero.AppServiceBase; namespace WeApp { public abstract class IwbAppServiceBase : IwbZeroAppServiceBase { protected IwbAppServiceBase(ICacheManager cacheManager = null) { CacheManager = cacheManager; StatesManager = NullStatesManager.Instance; AppGuidManager = NullAppGuidManager.Instance; NoticeManager = NullNotificationManager.Instance; } public TenantManager TenantManager { get; set; } public UserManager UserManager { get; set; } public INotificationManager NoticeManager { get; set; } public IStatesManager StatesManager { get; set; } public IAppGuidManager AppGuidManager { get; set; } protected virtual async Task GetCurrentUserAsync() { var user = await UserManager.FindByIdAsync(AbpSession.GetUserId()); if (user == null) { throw new ApplicationException("There is no current user!"); } return user; } protected virtual Task GetCurrentTenantAsync() { return TenantManager.GetByIdAsync(AbpSession.GetTenantId()); } protected override void CheckErrors(string error) { throw new UserFriendlyException(error); } } }