示例#1
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MkSmtpMailer" /> class.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="historyStore">The history store.</param>
 public MkSmtpMailer(
     MkSmtpMailerSettings settings,
     ILogger <MkSmtpMailer> logger = null,
     IHistoryStore historyStore    = null)
     : this(new SmtpClient(), settings, logger, historyStore)
 {
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="SendGridMailer" /> class.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="historyStore">The history store.</param>
 public SendGridMailer(
     SendGridMailerSettings settings,
     ILogger <SendGridMailer> logger = null,
     IHistoryStore historyStore      = null)
     : this(new SendGridClient(settings.ApiKey), settings, logger, historyStore)
 {
 }
示例#3
0
 public WebSocketMessageBroadcaster(IHistoryStore hs, BroadcastMessageQueue q)
 {
     _hs = hs;
     _q  = q;
     _ts = new CancellationTokenSource();
     Task.Factory.StartNew((tk) =>
     {
         var ct = (CancellationToken)tk;
         while (!ct.IsCancellationRequested)
         {
             var messages = _q.DequeueOrWait(ct);
             if (messages == null || messages.Count == 0)
             {
                 continue;
             }
             var bs = messages.FindAll(x => string.IsNullOrEmpty(x.ClientId)).Select(x => x.Message).ToList();
             this.BroadcastMessageAsync(bs).Wait();
             messages.FindAll(x => !string.IsNullOrEmpty(x.ClientId)).ForEach(x =>
             {
                 this.SendMessageAsync(this.GetSocketById(x.ClientId), new List <IMessage>()
                 {
                     x.Message
                 }).Wait();
             });
         }
     }, _ts.Token, _ts.Token);
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="SendGridMailer" /> class.
 /// </summary>
 /// <param name="client">The client.</param>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="historyStore">The history store.</param>
 public SendGridMailer(
     SendGridClient client,
     SendGridMailerSettings settings,
     ILogger <SendGridMailer> logger = null,
     IHistoryStore historyStore      = null)
     : base(settings, logger, historyStore)
 {
     MailClient = client;
 }
示例#5
0
 /// <summary>
 ///     Configures the history store logger.
 /// </summary>
 /// <param name="historyStore">The history store.</param>
 /// <returns>IHistoryStore.</returns>
 public IHistoryStore ConfigureHistoryStoreLogger(IHistoryStore historyStore)
 {
     historyStore = historyStore ?? DefaultHistoryStore;
     if (DefaultLoggerFactory != null && historyStore?.Logger is NullLogger)
     {
         historyStore.Logger = DefaultLoggerFactory.CreateLogger(historyStore.GetType());
     }
     return(historyStore);
 }
示例#6
0
 public JobService(IEnumerable <IJobDescriber> describers, IQueue q, IJobWorkerManager workerManager, ILifetimeScope scope, IHistoryStore hs)
 {
     _describers           = describers;
     _q                    = q;
     _decreaseSignalHolder = new List <ISignal>();
     _workerManager        = workerManager;
     _scope                = scope;
     _hs                   = hs;
 }
示例#7
0
        protected virtual IFhirServiceExtension GetHistory()
        {
            IHistoryStore historyStore = fhirStoreBuilder.GetStore <IHistoryStore>();

            if (historyStore != null)
            {
                return(new HistoryService(historyStore));
            }
            return(null);
        }
 /// <summary>
 ///     Registers a null mailer with the factory.
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public static void AddNullMailer(
     this MailerFactory factory,
     NullMailerSettings mailerSettings,
     ILogger <NullMailer> logger = null,
     IHistoryStore store         = null)
 {
     factory.Register <NullMailer, NullMailerSettings>(mailerSettings,
                                                       logger ?? factory.DefaultLoggerFactory?.CreateLogger <NullMailer>(),
                                                       factory.ConfigureHistoryStoreLogger(store));
 }
示例#9
0
 /// <summary>
 ///     Register a SendGrid mailer with the factory
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The history store.</param>
 public static void AddSendGridMailer(
     this MailerFactory factory,
     SendGridMailerSettings mailerSettings,
     ILogger <SendGridMailer> logger = null,
     IHistoryStore store             = null)
 {
     factory.Register(() => new SendGridMailer(
                          mailerSettings,
                          logger ?? factory.DefaultLoggerFactory?.CreateLogger <SendGridMailer>(),
                          factory.ConfigureHistoryStoreLogger(store)));
 }
示例#10
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MkSmtpMailer" /> class.
 /// </summary>
 /// <param name="client">The client.</param>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="historyStore">The history store.</param>
 public MkSmtpMailer(
     SmtpClient client,
     MkSmtpMailerSettings settings,
     ILogger <MkSmtpMailer> logger = null,
     IHistoryStore historyStore    = null)
     : base(settings, logger, historyStore)
 {
     MailClient = client;
     if (!settings.EnableSslServerCertificateValidation)
     {
         MailClient.ServerCertificateValidationCallback = (s, c, ch, e) => true;
     }
 }
示例#11
0
 /// <summary>
 ///     Register a MailKit mailer with the factory.
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="clientFunc">The client function.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The history store.</param>
 public static void AddMkSmtpMailer(
     this MailerFactory factory,
     Func <SmtpClient> clientFunc,
     MkSmtpMailerSettings mailerSettings,
     ILogger <MkSmtpMailer> logger = null,
     IHistoryStore store           = null)
 {
     factory.Register(() =>
                      new MkSmtpMailer(
                          clientFunc(),
                          mailerSettings,
                          logger ?? factory.DefaultLoggerFactory?.CreateLogger <MkSmtpMailer>(),
                          factory.ConfigureHistoryStoreLogger(store)));
 }
示例#12
0
 public JobWorker(ILifetimeScope scope,
                  IJobDescriber describer,
                  CancellationToken tk,
                  IQueue q,
                  IJobContext context,
                  IHistoryStore hs)
 {
     this.ID    = context.WorkerId;
     _scope     = scope;
     Describer  = describer;
     _linkedCTS = CancellationTokenSource.CreateLinkedTokenSource(tk);
     _q         = q;
     _context   = context;
     _logger    = LogManager.GetLogger(Describer.Name);
 }
 /// <summary>
 /// Registers a safety mailer proxy for a MailKit mailer.
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The history store.</param>
 public static void AddSafetyMailer(
     this MailerFactory factory,
     SafetyMailerSettings safetyMailerSettings,
     MkSmtpMailerSettings mailerSettings,
     ILogger <MkSmtpMailer> logger = null,
     IHistoryStore store           = null)
 {
     factory.Register(() => new SafetyMailer <MkSmtpMailer>(
                          new MkSmtpMailer
                          (
                              mailerSettings,
                              logger ?? factory.DefaultLoggerFactory?.CreateLogger <MkSmtpMailer>(),
                              factory.ConfigureHistoryStoreLogger(store)
                          ),
                          safetyMailerSettings));
 }
示例#14
0
 /// <summary>
 ///     Registers the specified mailer type.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="TSettings">The type of the t settings.</typeparam>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public virtual void Register <T, TSettings>(TSettings settings, ILogger logger = null,
                                             IHistoryStore store = null)
     where TSettings : class, IMailerSettings
     where T : Mailer <TSettings>
 {
     Register(() =>
     {
         var ctor = typeof(T).GetConstructor(new[] { typeof(TSettings), typeof(ILogger), typeof(IHistoryStore) });
         return((T)ctor.Invoke(
                    new object[]
         {
             settings,
             logger ?? DefaultLoggerFactory?.CreateLogger(typeof(T)) ?? NullLogger.Instance,
             ConfigureHistoryStoreLogger(store)
         }));
     });
 }
示例#15
0
 /// <summary>
 ///     Registers a safety mailer proxy for the specified mailer type.
 /// </summary>
 /// <typeparam name="TMailer">The type of the t mailer.</typeparam>
 /// <typeparam name="TMailerSettings">The type of the t mailer settings.</typeparam>
 /// <param name="factory">The factory.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public static void AddSafetyMailer <TMailer, TMailerSettings>
 (
     this MailerFactory factory,
     SafetyMailerSettings safetyMailerSettings,
     TMailerSettings mailerSettings,
     ILogger <NullMailer> logger = null,
     IHistoryStore store         = null
 )
     where TMailer : class, IMailer <TMailerSettings>
     where TMailerSettings : class, IMailerSettings
 {
     factory.Register <SafetyMailer <TMailer>, SafetyMailerSettings, TMailer, TMailerSettings>(
         safetyMailerSettings,
         mailerSettings,
         logger ?? factory.DefaultLoggerFactory?.CreateLogger <NullMailer>(),
         factory.ConfigureHistoryStoreLogger(store));
 }
示例#16
0
 /// <summary>
 /// Registers a safety mailer proxy for a SendGridMailer.
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="clientFunc">The client function.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public static void AddSafetyMailer
 (
     this MailerFactory factory,
     SafetyMailerSettings safetyMailerSettings,
     Func <SendGridClient> clientFunc,
     SendGridMailerSettings mailerSettings,
     ILogger <SendGridMailer> logger = null,
     IHistoryStore store             = null
 )
 {
     factory.Register(() => new SafetyMailer <SendGridMailer>(
                          new SendGridMailer
                          (
                              clientFunc(),
                              mailerSettings,
                              logger ?? factory.DefaultLoggerFactory?.CreateLogger <SendGridMailer>(),
                              factory.ConfigureHistoryStoreLogger(store)
                          ),
                          safetyMailerSettings));
 }
示例#17
0
 public AsyncFhirService(
     IResourceStorageService storageService,
     IPagingService pagingService,
     ISearchService searchService,
     ITransactionService transactionService,
     ICapabilityStatementService capabilityStatementService,
     IHistoryStore historyService,
     IFhirResponseFactory responseFactory,
     ICompositeServiceListener serviceListener,
     IPatchService patchService)
 {
     _storageService             = storageService;
     _pagingService              = pagingService;
     _searchService              = searchService;
     _transactionService         = transactionService;
     _capabilityStatementService = capabilityStatementService;
     _historyService             = historyService;
     _responseFactory            = responseFactory;
     _serviceListener            = serviceListener;
     _patchService = patchService;
 }
示例#18
0
        public JobWorker StartNew(ILifetimeScope scope,
                                  IJobDescriber describer,
                                  CancellationToken tk,
                                  IQueue q,
                                  IHistoryStore hs)
        {
            _ss.Wait();

            var context = new JobContext(describer, Guid.NewGuid(), _broadcaster);
            var worker  = new JobWorker(scope, describer, tk, q, context, hs);

            worker.Work(w =>
            {
                Workers.TryRemove(w.ID, out JobWorker k);
                _ss.Release();
                //this.broadcastServiceStatics();
            });
            Workers.TryAdd(worker.ID, worker);
            //this.broadcastServiceStatics();
            return(worker);
        }
示例#19
0
 /// <summary>
 /// Registers the specified mailer type using a safety mailer proxy.
 /// </summary>
 /// <typeparam name="TProxy">The type of the t proxy.</typeparam>
 /// <typeparam name="TProxySettings">The type of the t proxy settings.</typeparam>
 /// <typeparam name="TMailer">The type of the t mailer.</typeparam>
 /// <typeparam name="TMailerSettings">The type of the t settings.</typeparam>
 /// <param name="settings">The settings.</param>
 /// <param name="proxySettings">The proxy settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public virtual void Register <TProxy, TProxySettings, TMailer, TMailerSettings>(
     IProxyMailerSettings proxySettings,
     TMailerSettings settings,
     ILogger logger      = null,
     IHistoryStore store = null)
     where TProxy : class, IProxyMailer <TProxySettings, TMailer>, IMailer
     where TProxySettings : class, IProxyMailerSettings
     where TMailer : class, IMailer <TMailerSettings>
     where TMailerSettings : class, IMailerSettings
 {
     Register(() =>
     {
         var mailerCtor = typeof(TMailer).GetConstructor(new[]
         {
             typeof(TMailerSettings),
             typeof(ILogger), typeof(IHistoryStore)
         });
         var realMailer = (TMailer)mailerCtor?.Invoke(
             new object[]
         {
             settings,
             logger ?? DefaultLoggerFactory?.CreateLogger(typeof(TMailer)) ?? NullLogger.Instance,
             ConfigureHistoryStoreLogger(store)
         });
         var proxyCtor = typeof(TProxy).GetConstructor(new[]
         {
             typeof(TMailer),
             typeof(TProxySettings)
         });
         return((TProxy)proxyCtor?.Invoke(
                    new object[]
         {
             realMailer,
             proxySettings
         }));
     });
 }
 public SendGridMailerFake(IOptions <SendGridMailerSettings> settings, ILogger <SendGridMailer> logger = null,
                           IHistoryStore historyStore = null) : base(settings.Value, logger, historyStore)
 {
 }
示例#21
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="NullMailer" /> class.
 /// </summary>
 /// <param name="settings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="historyStore">The history store.</param>
 public NullMailer(NullMailerSettings settings, ILogger logger = null,
                   IHistoryStore historyStore = null) : base(settings, logger, historyStore)
 {
 }
示例#22
0
 public DropDb(AnsiConsole console, IHistoryStore history) : base(console)
 {
     Context = ((EntityHistoryStore <SqlHistoryContext>)history).GetHistoryContext();
 }
示例#23
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="MailerFactory" /> class.
        /// </summary>
        /// <param name="defaultLoggerFactory">The default logger factory.</param>
        /// <param name="defaultHistoryStore">The default history store.</param>
        public MailerFactory(ILoggerFactory defaultLoggerFactory = null, IHistoryStore defaultHistoryStore = null)
        {
            DefaultLoggerFactory = defaultLoggerFactory;

            DefaultHistoryStore = defaultHistoryStore ?? NullHistoryStore.Instance;
        }
示例#24
0
 public Client(IHistoryStore historyStore)
 {
     this.HistoryStore = historyStore;
 }
示例#25
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="Mailer" /> class.
 /// </summary>
 /// <param name="settings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="historyStore">The history store.</param>
 protected Mailer(TSettings settings, ILogger logger = null, IHistoryStore historyStore = null)
 {
     Settings     = settings;
     Logger       = logger ?? NullLogger.Instance;
     HistoryStore = historyStore ?? NullHistoryStore.Instance;
 }
示例#26
0
 public HistoryService(IHistoryStore historyStore)
 {
     this.historyStore = historyStore;
 }