public FuncResult Handler(string userCode, string userPwd, string mobileno, string smsContent) { try { Tsms_Thirdparty daThirdparty = null; string error; if (!SmsUtils.CheckUserCode(userCode, userPwd, mobileno, out daThirdparty, out error)) { return(FuncResult.FailResult(error)); } ISmsProvider sms = SmsServiceFactory.GetSmsServiceByChannel(daThirdparty.Channel_Id, out error); if (sms == null) { return(FuncResult.FailResult(error)); } SmsServiceProvider provider = new SmsServiceProvider(sms, daThirdparty.Appid, mobileno, smsContent); if (!provider.Send()) { return(FuncResult.FailResult(provider.PromptInfo.CustomMessage)); } return(FuncResult.SuccessResult()); } catch (Exception ex) { Log.Error("handler异常", ex); return(FuncResult.FailResult(ex.Message)); } }
public MessageService() { _configurationProvider = new ConfigurationProvider(); _resourceProvider = new ResourceProvider(Fit2WorkDb); _smsProvider = new SmsProvider(_configurationProvider); _emailProvider = new EmailProvider(); }
public SmsServiceProvider(ISmsProvider sms, int appid, string mobileno, string smsContent) { this._sms = sms; this._mobileno = mobileno; this._smsContent = smsContent; this._appid = appid; }
bool IJob.Initialize(IServiceProvider serviceProvider) { _settings = serviceProvider.GetService <ISettingsServiceInternal>(); _addressing = serviceProvider.GetService <IAddressingServiceInternal>(); _provider = ExportedTypeLibrary.Import <ISmsProvider>(_settings.GetSetting(SettingKeys.Provider).GetValue <string>()); return(true); }
public ReportEngineProvider() { _clientTypeManager = GetContainer().Resolve <ICustomerTypeProvider>(); _smsProvider = GetContainer().Resolve <ISmsProvider>(); _callProvider = GetContainer().Resolve <ICallProvider>(); _customerProvider = GetContainer().Resolve <ICustomerProvider>(); _packageProvider = GetContainer().Resolve <IPackageProvider>(); _lineProvider = GetContainer().Resolve <ILineProvider>(); }
/// <summary> /// 静态构造函数 /// </summary> /// <remarks>2013-6-26 杨浩 添加</remarks> static SmsProviderFactory() { // provider = new SMS.Mandao.SmsProvider(); #if !DEBUG provider = new SMS.Mandao.SmsProvider(); #else //provider = new SMS.Strategy.SmsNullProvider(); #endif provider = new Extra.SMS.CBlue.SmsProvider(); }
public MessageService(IFit2WorkDb fit2WorkDb, IConfigurationProvider configurationProvider, IResourceProvider resourceProvider, ISmsProvider smsProvider, IEmailProvider emailProvider) : base(fit2WorkDb) { _configurationProvider = configurationProvider; _resourceProvider = resourceProvider; _smsProvider = smsProvider; _emailProvider = emailProvider; }
bool IJob.Initialize(IServiceProvider serviceProvider) { _settings = serviceProvider.GetService <ISettingsServiceInternal>(); _addressing = serviceProvider.GetService <IAddressingServiceInternal>(); _userName = _settings.GetSetting("SMSJob", "UserName").GetValue <string>(); _password = _settings.GetSetting("SMSJob", "Password").GetValue <string>(); _provider = ExportedTypeLibrary.Import <ISmsProvider>(_settings.GetSetting("SMSJob", "Provider").GetValue <string>()); return(true); }
public SbUserManager(IUserStore <User> store, IOptions <IdentityOptions> optionsAccessor, IPasswordHasher <User> passwordHasher, IEnumerable <IUserValidator <User> > userValidators, IEnumerable <IPasswordValidator <User> > passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider services, ILogger <UserManager <User> > logger, ISmsProvider smsProvider, IQueryBus queryBus) : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger) { _smsProvider = smsProvider; _queryBus = queryBus; }
public CRMProvider() { _obj = new Object(); _customerProvider = ModulesRegistrations.RegisterCRMModule().Resolve <ICustomerProvider>(); _packageProvider = ModulesRegistrations.RegisterCRMModule().Resolve <IPackageProvider>(); _customerTypeProvider = ModulesRegistrations.RegisterCRMModule().Resolve <ICustomerTypeProvider>(); _lineProvider = ModulesRegistrations.RegisterCRMModule().Resolve <ILineProvider>(); _packageIncludeProvider = ModulesRegistrations.RegisterCRMModule().Resolve <IPackageIncludeProvider>(); _selectedNumberProvider = ModulesRegistrations.RegisterCRMModule().Resolve <ISelectedNumberProvider>(); _smsProvider = ModulesRegistrations.RegisterCRMModule().Resolve <ISmsProvider>(); _callProvider = ModulesRegistrations.RegisterCRMModule().Resolve <ICallProvider>(); }
public static ISmsProvider GetSmsServiceByChannel(int channel_id, out string error) { Tsms_Channel daChannel = new Tsms_Channel(); if (!daChannel.SelectByPk(channel_id)) { error = "短信通道配置错误"; return(null); } if (string.IsNullOrEmpty(daChannel.Provider)) { error = "短信通道配置错误"; return(null); } SmsChannel channel = MapProvider.Map <SmsChannel>(daChannel.DataRow); string[] array = null; if (daChannel.Provider.Contains(',')) { array = daChannel.Provider.Split(','); } else { array = new string[] { "SmsCenter.Facade", daChannel.Provider }; } try { Assembly ass = null; ass = Assembly.Load(array[0]); Type t = ass.GetType(array[1]); object inst = Activator.CreateInstance(t); error = null; ISmsProvider sms = inst as ISmsProvider; if (sms == null) { error = "通道配置错误"; return(null); } sms.SetChannel(channel); return(sms); } catch (Exception ex) { error = "通道配置错误,无法激活提供程序"; return(null); } }
public InternalSmsService( ISmsProvider smsProvider, ISmsRepository smsRepository, IReferenceGenerator referenceGenerator, ISmsServiceSettings smsServiceSettings) { Check.If(smsProvider).IsNotNull(); Check.If(smsRepository).IsNotNull(); Check.If(referenceGenerator).IsNotNull(); Check.If(smsServiceSettings).IsNotNull(); _smsProvider = smsProvider; _smsRepository = smsRepository; _referenceGenerator = referenceGenerator; _smsServiceSettings = smsServiceSettings; }
private ISmsProvider GetProvider(SmsProviderType currentProviderType, decimal requiredBalance) { ISmsProvider provider = null; var providerTypesInOrder = GetSmsProviderTypes(currentProviderType); List <string> errors = new List <string>(); foreach (var providerType in providerTypesInOrder) { Type instanceType = ToInstanceType(providerType); var _provider = Activator.CreateInstance(instanceType, systemParameters, logService, unitOfWork, providerType) as ISmsProvider; if (_provider != null && _provider.IsAvailable) { decimal balance = _provider.Balance; decimal toProviderBalance = _provider.ToProviderBalance(requiredBalance); if (balance >= toProviderBalance) { provider = _provider; break; } else { errors.Add(string.Format("簡訊供應商({0}):目前點數 {1},發送所需點數 {2}。", providerType, balance, toProviderBalance)); } // 20160520 Norman, 測試發送大量簡訊,測試完後請移除 //provider = _provider; } } if (provider == null) { string subject = string.Format("點數不足,無法發送簡訊(所需點數 {0})", requiredBalance); string body = string.Join("\n", errors); string[] destinations = new string[] { systemParameters.InsufficientBalanceNotifiee }; //string[] destinations = this.unitOfWork.Repository<ApplicationUser>().GetMany(p => p.Roles.Contains(Role.Administrator)).Select(p => p.Email).ToArray(); BackgroundJob.Enqueue <CommonMailService>(x => x.Send(subject, body, destinations)); this.logService.Error(subject); throw new Exception(subject); } return(provider); }
public void RetrySMS(int sendMessageHistoryId) { UniqueJob uniqueJob = null; try { uniqueJob = this.uniqueJobList.AddOrUpdate("RetrySMS", sendMessageHistoryId); if (uniqueJob == null) { return; // Job 已經存在 } using (var scope = this.unitOfWork.CreateTransactionScope()) { var sendMessageHistory = this.unitOfWork.Repository <SendMessageHistory>().GetById(sendMessageHistoryId); decimal totalMessageCost = sendMessageHistory.MessageCost; string currentProviderType = sendMessageHistory.ProviderName; var providerTypesInOrder = GetSmsProviderTypes(currentProviderType); // 由於使用預設的 Provider 無法發送成功,因此使用下一個 SmsProvider 發送 SmsProviderType userSmsProviderType = providerTypesInOrder[1]; ISmsProvider provider = GetProvider(userSmsProviderType, totalMessageCost); // 如果沒有找到,將會拋出例外 this.tradeService.RetrySMS(sendMessageHistory); // 開始發送簡訊 provider.RetrySMS(sendMessageHistory.Id); scope.Complete(); } } catch (Exception ex) { this.logService.Error(ex); throw; } finally { if (uniqueJob != null) { this.uniqueJobList.Remove(uniqueJob); } } }
public void GetDeliveryReport(string requestId) { UniqueJob uniqueJob = null; try { uniqueJob = this.uniqueJobList.AddOrUpdate("GetDeliveryReport", requestId); if (uniqueJob == null) { return; // Job 已經存在 } using (var scope = this.unitOfWork.CreateTransactionScope()) { var deliveryReportQueueRepository = this.unitOfWork.Repository <DeliveryReportQueue>(); var deliveryReportQueue = deliveryReportQueueRepository.Get(p => p.RequestId == requestId); if (deliveryReportQueue == null) { return; } ISmsProvider provider = GetProvider(deliveryReportQueue.ProviderName); if (provider != null) // 取得DeliveryReport並沒有急迫性,等到簡訊供應商可供連線再取即可。 { provider.GetDeliveryReport(requestId); } scope.Complete(); } //////////////////////////////////////// } catch (Exception ex) { this.logService.Error("GetDeliveryReport({0})", requestId); this.logService.Error(ex); throw; } finally { if (uniqueJob != null) { this.uniqueJobList.Remove(uniqueJob); } } }
bool IJob.Initialize() { _userName = SettingsManager.Instance.GetSetting("SMSJob", "UserName").GetString(); _password = SettingsManager.Instance.GetSetting("SMSJob", "Password").GetString(); _provider = ExportedTypeLibrary.Import<ISmsProvider>(SettingsManager.Instance.GetSetting("SMSJob", "Provider").GetString()); var recipients = AlarmWorkflowConfiguration.Instance.AddressBook.GetCustomObjects<MobilePhoneEntryObject>("MobilePhone"); _recipients.AddRange(recipients.Select(ri => ri.Item2)); if (_recipients.Count == 0) { Logger.Instance.LogFormat(LogType.Error, this, Properties.Resources.NoRecipientsErrorMessage); return false; } return true; }
public void GetSMSConfigForRecipient_WithNoCountryCode_GetsDefault() { // Arrange _mockConfig.Setup(m => m.SMSConfigs).Returns(new List <SMSConfig> { new SMSConfig { CountryCode = 1, IsDefault = true }, new SMSConfig { CountryCode = 2 }, }); // Act _smsProvider = new SmsProvider(_mockConfig.Object); var result = _smsProvider.GetSMSConfigForRecipient("4412345678"); // Assert Assert.IsNotNull(result); Assert.IsTrue(result.IsDefault); }
public void GetSMSConfigForRecipient_WithUSCountryCode() { // Arrange _mockConfig.Setup(m => m.SMSConfigs).Returns(new List <SMSConfig> { new SMSConfig { CountryCode = 44, IsDefault = true }, new SMSConfig { CountryCode = 1 }, }); // Act _smsProvider = new SmsProvider(_mockConfig.Object); var result = _smsProvider.GetSMSConfigForRecipient("16466613630"); // Assert Assert.IsNotNull(result); Assert.AreEqual(1, result.CountryCode); }
private ISmsProvider GetProvider(string providerTypeName, bool mustAvailable = true) { ISmsProvider provider = null; var providerTypesInOrder = GetSmsProviderTypes(providerTypeName); var providerType = providerTypesInOrder.FirstOrDefault(); Type instanceType = ToInstanceType(providerType); if (instanceType != null) { var _provider = Activator.CreateInstance(instanceType, systemParameters, logService, unitOfWork, providerType) as ISmsProvider; if (mustAvailable) { if (_provider != null && _provider.IsAvailable) { provider = _provider; } } else { if (_provider != null) { provider = _provider; } } } if (provider == null) { string message = string.Format("目前無法使用指定簡訊供應商 {0} ", providerTypeName); this.logService.Error(message); // 取得DeliveryReport並沒有急迫性,等到簡訊供應商可供連線再取即可。 // throw new Exception(message); } return(provider); }
public AuthService(ApplicationContext applicationContext, ISmsProvider smsProvider) { dbContext = applicationContext; this.smsProvider = smsProvider; }
protected HttpSmsGateway(ISmsProvider smsProvider, EnRequestMethod requestMethod) : base(smsProvider) { KeepConnectionOpen = false; _requestMethod = requestMethod; }
public AuthService(ApplicationContext applicationContext, ISmsProvider smsProvider) { DbContext = applicationContext; this.SmsProvider = smsProvider; this.EmailService = new EmailService(); }
bool IJob.Initialize(IServiceProvider serviceProvider) { _settings = serviceProvider.GetService<ISettingsServiceInternal>(); _addressing = serviceProvider.GetService<IAddressingServiceInternal>(); _userName = _settings.GetSetting("SMSJob", "UserName").GetValue<string>(); _password = _settings.GetSetting("SMSJob", "Password").GetValue<string>(); _provider = ExportedTypeLibrary.Import<ISmsProvider>(_settings.GetSetting("SMSJob", "Provider").GetValue<string>()); return true; }
public ClickatellProvider(ISmsProvider provider) : base(provider) { IsConnected = false; }
public static SmsProviderModel ToModel(this ISmsProvider entity) { return(Mapper.Map <ISmsProvider, SmsProviderModel>(entity)); }
bool IJob.Initialize(IServiceProvider serviceProvider) { _settings = serviceProvider.GetService<ISettingsServiceInternal>(); _addressing = serviceProvider.GetService<IAddressingServiceInternal>(); _provider = ExportedTypeLibrary.Import<ISmsProvider>(_settings.GetSetting(SettingKeys.Provider).GetValue<string>()); return true; }
public AspsmsProvider(ISmsProvider smsProvider) : base(smsProvider) { }
public InvoiceProvider() { _obj = new Object(); _callProvider = GetContainer().Resolve <ICallProvider>(); _smsProvider = GetContainer().Resolve <ISmsProvider>(); }
public AuthMessageSender(IEmailProvider emailProvider, ISmsProvider smsProvider) { _emailProvider = emailProvider; _smsProvider = smsProvider; }
public SendController(ISmsProvider smsProvider) { _smsProvider = smsProvider; }
public FakeProvider(ISmsProvider provider) : base(provider) { }
public AuthMessageSender(ILogger <AuthMessageSender> logger, IConfiguration configuration, ISmsProvider smsProvider) { _logger = logger; _config = configuration; _smsProvider = smsProvider; }
public void Initialise() { _smsProvider = new SmsProvider(_mockConfig.Object); }
public NewTournamentAddedIntegrationEventHandler(ISmsProvider smsProvider, IPlayerRepository playerRepository) { _smsProvider = smsProvider; _playerRepository = playerRepository; }