using JiShe.CollectBus;
using JiShe.CollectBus.FreeRedis;
using JiShe.CollectBus.FreeSql;
using JiShe.CollectBus.Localization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Threading;

namespace JiShe.CollectBusEPO
{
    /* Inherit your application services from this class.
     */
    [Authorize]
    [ApiExplorerSettings(GroupName = CollectBusDomainSharedConsts.Business)]
    public abstract class CollectBusEPOAppService : ApplicationService
    {
        public IFreeSqlProvider SqlProvider => LazyServiceProvider.LazyGetRequiredService<IFreeSqlProvider>();
        protected IFreeRedisProvider FreeRedisProvider => LazyServiceProvider.LazyGetService<IFreeRedisProvider>()!;
        private ICancellationTokenProvider CancellationTokenProvider =>
          LazyServiceProvider.LazyGetService<ICancellationTokenProvider>(NullCancellationTokenProvider.Instance);

        protected CollectBusEPOAppService()
        {
            LocalizationResource = typeof(CollectBusResource);
            ObjectMapperContext = typeof(CollectBusEPOApplicationModule);
        }

         

    }
}
