public List <string> GetNotificationProviderClassNames(NotificationProviderType type, UserConnection userConnection) { var result = new List <string>(); if (userConnection.GetIsFeatureEnabled("NotificationV2") && type != NotificationProviderType.Visa) { return(result); } var providersSelect = new Select(userConnection) .Column("NotificationProvider", "ClassName") .From("NotificationProvider") .Where("Type").IsEqual(Column.Parameter((int)type)) as Select; using (var dbExecutor = userConnection.EnsureDBConnection()) { using (var dataReader = providersSelect.ExecuteReader(dbExecutor)) { int columnIndex = dataReader.GetOrdinal("ClassName"); while (dataReader.Read()) { result.Add(dataReader.GetString(columnIndex)); } } } return(result); }
private string GetPopupConfig(Guid sysAdminUnitId, NotificationProviderType type, DateTime date) { var methodName = "GetPopupConfig"; var result = string.Empty; List <object> methodResults = GetResult(sysAdminUnitId, type, date, methodName).ToList(); return(string.Join(", ", methodResults.FindAll(a => !string.IsNullOrWhiteSpace((string)a)))); }
private List <string> GetNotificationProviderClassNames(NotificationProviderType type) { bool isFeatureEnabled = _userConnection.GetIsFeatureEnabled("NotificationsOnOneClassJob"); if (isFeatureEnabled) { return(GetNotImplementedProviders(_userConnection, type).ToList()); } return(_notificationUtilities.GetNotificationProviderClassNames(type, _userConnection)); }
private IEnumerable <string> GetNotImplementedProviders(UserConnection userConnection, NotificationProviderType type) { var store = new NotificationStore(); var helper = new ImplementedNotificationProviderHelper(userConnection, store); IDictionary <string, NotificationProviderType> providers = helper.GetNotImplementedProviders(); return(providers .Where(provider => provider.Value.Equals(type)) .Select(provider => provider.Key)); }
private int GetCount(Guid sysAdminUnitId, NotificationProviderType type, DateTime date) { var methodName = "GetCount"; int result = 0; List <object> methodResults = GetResult(sysAdminUnitId, type, date, methodName).ToList(); foreach (object item in methodResults) { result += (int)item; } return(result); }
/// <inheritdoc/> public INotificationProvider GetNotificationProvider(NotificationProviderType type) { switch (type) { case NotificationProviderType.Graph: return((INotificationProvider)this.serviceProvider.GetService(typeof(MSGraphNotificationProvider))); case NotificationProviderType.DirectSend: return((INotificationProvider)this.serviceProvider.GetService(typeof(DirectSendNotificationProvider))); default: return(null); } }
/// <summary> /// Initializes a new instance of the <see cref="NotificationProviderSettings" /> class. /// </summary> /// <param name="Provider">Provider (required).</param> /// <param name="Settings">Settings (required).</param> public NotificationProviderSettings(NotificationProviderType Provider = default(NotificationProviderType), NotificationSettings Settings = default(NotificationSettings)) { // to ensure "Provider" is required (not null) if (Provider == null) { throw new InvalidDataException("Provider is a required property for NotificationProviderSettings and cannot be null"); } else { this.Provider = Provider; } // to ensure "Settings" is required (not null) if (Settings == null) { throw new InvalidDataException("Settings is a required property for NotificationProviderSettings and cannot be null"); } else { this.Settings = Settings; } }
private IEnumerable <object> GetResult(Guid sysAdminUnitId, NotificationProviderType type, DateTime date, string methodName) { var result = new List <object>(); var parameters = new Dictionary <string, object> { { "sysAdminUnitId", sysAdminUnitId }, { "dueDate", date }, { "userConnection", _userConnection } }; List <string> classNames = GetNotificationProviderClassNames(type); object[] objectParams = { parameters }; foreach (string className in classNames) { object methodResult = _notificationUtilities .GetMethodResult(className, methodName, objectParams); result.Add(methodResult); } return(result); }
public string GetMessage(int id, NotificationProviderType notificationProviderType) { throw new NotImplementedException(); }
/// <summary> /// This method gets called by the runtime. Use this method to add services to the container. /// </summary> /// <param name="services">An instance of <see cref="IServiceCollection"/>.</param> public void ConfigureServices(IServiceCollection services) { this.ConfigureServicesCommon(services); _ = services.AddMvc(); _ = services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "NotificationService", Version = "v1" }); }); ITelemetryInitializer[] itm = new ITelemetryInitializer[1]; var envInitializer = new EnvironmentInitializer { Service = this.Configuration[AIConstants.ServiceConfigName], ServiceLine = this.Configuration[AIConstants.ServiceLineConfigName], ServiceOffering = this.Configuration[AIConstants.ServiceOfferingConfigName], ComponentId = this.Configuration[AIConstants.ComponentIdConfigName], ComponentName = this.Configuration[AIConstants.ComponentNameConfigName], EnvironmentName = this.Configuration[AIConstants.EnvironmentName], IctoId = "IctoId", }; itm[0] = envInitializer; NotificationProviders.Common.Logger.LoggingConfiguration loggingConfiguration = new NotificationProviders.Common.Logger.LoggingConfiguration { IsTraceEnabled = true, TraceLevel = (SeverityLevel)Enum.Parse(typeof(SeverityLevel), this.Configuration[ConfigConstants.AITraceLelelConfigKey]), EnvironmentName = this.Configuration[AIConstants.EnvironmentName], }; var tconfig = TelemetryConfiguration.CreateDefault(); tconfig.InstrumentationKey = this.Configuration[ConfigConstants.AIInsrumentationConfigKey]; DependencyTrackingTelemetryModule depModule = new DependencyTrackingTelemetryModule(); depModule.Initialize(tconfig); RequestTrackingTelemetryModule requestTrackingTelemetryModule = new RequestTrackingTelemetryModule(); requestTrackingTelemetryModule.Initialize(tconfig); _ = services.AddSingleton <NotificationProviders.Common.Logger.ILogger>(_ => new NotificationProviders.Common.Logger.AILogger(loggingConfiguration, tconfig, itm)); _ = services.AddScoped <IEmailManager, EmailManager>(s => new EmailManager( this.Configuration, s.GetService <IRepositoryFactory>(), s.GetService <ILogger>(), s.GetService <IMailTemplateManager>(), s.GetService <ITemplateMerge>())) .AddScoped <IEmailServiceManager, EmailServiceManager>(s => new EmailServiceManager(this.Configuration, s.GetService <IRepositoryFactory>(), s.GetService <ICloudStorageClient>(), s.GetService <ILogger>(), s.GetService <INotificationProviderFactory>(), s.GetService <IEmailManager>())) .AddScoped <ITemplateMerge, TemplateMerge>() .AddSingleton <IEmailAccountManager, EmailAccountManager>() .AddScoped <INotificationProviderFactory, NotificationProviderFactory>(); NotificationProviderType providerType = (NotificationProviderType)Enum.Parse(typeof(NotificationProviderType), this.Configuration[ConfigConstants.NotificationProviderType]); if (NotificationProviderType.DirectSend == providerType) { this.ConfigureDirectSendServices(services); } else if (NotificationProviderType.SMTP == providerType) { this.ConfigureSMTPServices(services); } else { this.ConfigureGraphServices(services); } }