Beispiel #1
0
        public async IAsyncEnumerable <MailMergeMessage> GetMailMergeMessages(ITenantContext tenantContext, ITemplateRenderer renderer, IMailMergeService mailMergeService, IStringLocalizer <EmailResource> localizer, [EnumeratorCancellation] CancellationToken cancellationToken)
        {
            if (Parameters.Email is null || Parameters.NewEmail is null || Parameters.CallbackUrl is null ||
                Parameters.DeadlineUtc is null)
            {
                throw new ArgumentNullException(nameof(Parameters), "One or more required parameters are null");
            }

            {
                using var cs = new CultureSwitcher(Parameters.CultureInfo, Parameters.CultureInfo);

                // First email goes to the new email address

                var model = new ChangeUserAccountModel()
                {
                    Email       = Parameters.NewEmail,
                    CallbackUrl = Parameters.CallbackUrl,
                    Deadline    = Parameters.DeadlineUtc
                };

                var mailMergeMessage = mailMergeService.CreateStandardMessage();
                mailMergeMessage.EnableFormatter = false;
                mailMergeMessage.Subject         = localizer["Please confirm your new primary email"].Value;

                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.From, tenantContext.SiteContext.Email.GeneralFrom.DisplayName, tenantContext.SiteContext.Email.GeneralFrom.Address));
                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.To, Parameters.NewEmail));

                mailMergeMessage.PlainText = await renderer.RenderAsync(TemplateName.ConfirmNewPrimaryEmailTxt, model,
                                                                        Parameters.CultureInfo.TwoLetterISOLanguageName);

                mailMergeMessage.HtmlText = await renderer.RenderAsync(TemplateName.ConfirmNewPrimaryEmailHtml, model,
                                                                       Parameters.CultureInfo.TwoLetterISOLanguageName);

                yield return(mailMergeMessage);

                // Second email goes to the current email address

                model = new ChangeUserAccountModel()
                {
                    Email       = Parameters.NewEmail,
                    CallbackUrl = string.Empty, // not used in the template
                    Deadline    = null          // not used in the template
                };

                mailMergeMessage = mailMergeService.CreateStandardMessage();
                mailMergeMessage.EnableFormatter = false;
                mailMergeMessage.Subject         = localizer["Your primary email is about to be changed"].Value;

                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.From, tenantContext.SiteContext.Email.GeneralFrom.DisplayName, tenantContext.SiteContext.Email.GeneralFrom.Address));
                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.To, Parameters.Email));

                mailMergeMessage.PlainText = await renderer.RenderAsync(TemplateName.NotifyCurrentPrimaryEmailTxt, model,
                                                                        Parameters.CultureInfo.TwoLetterISOLanguageName);

                mailMergeMessage.HtmlText = await renderer.RenderAsync(TemplateName.NotifyCurrentPrimaryEmailHtml, model,
                                                                       Parameters.CultureInfo.TwoLetterISOLanguageName);

                yield return(mailMergeMessage);
            }
        }
Beispiel #2
0
        public UnitTestHelpers()
        {
            _configPath = DirectoryLocator.GetTargetConfigurationPath();
            var msSqlPath = Path.Combine(DirectoryLocator.GetTargetProjectPath(typeof(Program)), @"..\..\MsSqlDb");

            // For the unit tests we
            _tenantContext = new TenantContext
            {
                DbContext =
                {
                    Catalog       = "LeagueIntegration",
                    Schema        = "dbo",
                    ConnectionKey = "dummy"
                }
            };
            _tenantContext.DbContext.ConnectionString =
                $"Server=(LocalDB)\\MSSQLLocalDB;AttachDbFilename={msSqlPath}\\LeagueIntegrationTest.mdf;Database={_tenantContext.DbContext.Catalog};Integrated Security=true";

            // Make sure we can connect to the database
            using (var connection = new Microsoft.Data.SqlClient.SqlConnection(_tenantContext.DbContext.ConnectionString))
                try
                {
                    connection.Open();
                }
                finally
                {
                    connection.Close();
                }

            InitializeLlBlGenPro();
        }
Beispiel #3
0
        /// <inheritdoc />
        public async Task <ExecutionResult> ExecuteAsync(string operationName, string query, Inputs variables, IDictionary <string, object> context,
                                                         IServiceProvider requestServices, CancellationToken cancellationToken = new CancellationToken())
        {
            ITenantContext tenantContext = null;

            if (context is GraphQLUserContext userContext)
            {
                tenantContext = userContext.TenantContext;
            }
            else if (context is MessageHandlingContext messageHandlingContext)
            {
                tenantContext = messageHandlingContext.Get <ITenantContext>(Statics.TenantContext);
            }

            // Client tried to use an invalid tenant
            if (tenantContext == null)
            {
                return(new ExecutionResult
                {
                    Errors = new ExecutionErrors
                    {
                        new ExecutionError("Invalid request. Please check your client configuration.")
                    }
                });
            }


            Schema = await _schemaContext.GetOrCreateAsync(tenantContext);

            var executer = new DefaultGraphQLExecuter <OspSchema>(Schema, _documentExecuter, _options, _listeners, _validationRules);

            return(await executer.ExecuteAsync(operationName, query, variables, context, requestServices, cancellationToken));
        }
Beispiel #4
0
 public AccountController(
     UserSettings userSettings,
     DateTimeSettings dateTimeSettings,
     MediaSettings mediaSettings,
     IAuthenticationService authenticationService,
     IUserAccountModelFactory userAccountModelFactory,
     IUserRegistrationService userRegistrationService,
     IUserService userService,
     IUserActivityService userActivityService,
     IGenericAttributeService genericAttributeService,
     INotificationService notificationService,
     IWorkContext workContext,
     ITenantContext tenantContext,
     IEmailSender emailSender,
     IPictureService pictureService)
 {
     _userSettings            = userSettings;
     _dateTimeSettings        = dateTimeSettings;
     _mediaSettings           = mediaSettings;
     _authenticationService   = authenticationService;
     _userAccountModelFactory = userAccountModelFactory;
     _userRegistrationService = userRegistrationService;
     _userService             = userService;
     _userActivityService     = userActivityService;
     _genericAttributeService = genericAttributeService;
     _notificationService     = notificationService;
     _workContext             = workContext;
     _tenantContext           = tenantContext;
     _emailSender             = emailSender;
     _pictureService          = pictureService;
 }
Beispiel #5
0
 public HomeNavigationTreeBuilder(ITenantContext tenantContext, ILogger <HomeNavigationTreeBuilder> logger, IStringLocalizer <NavigationResource> localizer, IUrlHelper urlHelper)
 {
     _tenantContext = tenantContext;
     _logger        = logger;
     _localizer     = localizer;
     _urlHelper     = urlHelper;
 }
Beispiel #6
0
        protected ITenantContext CreateContext()
        {
            ITenantContext context = null;

            foreach (var provider in _providers)
            {
                try
                {
                    context = provider.CreateContext() ?? context;

                    if ((context?.Tenant?.UniqueId ?? DefaultTenantContextProvider.DEFAULT_CONTEXT_ID) !=
                        DefaultTenantContextProvider.DEFAULT_CONTEXT_ID)
                    {
                        return(context);
                    }
                }
                catch (Exception ex)
                {
                    _logger.Trace($"Failed to load Tenant Context from Provider {provider.GetType()}: {ex.Message} ({ex.GetType()})");
                }
            }

            if (context == null)
            {
                _logger.Warn($"Failed to load Tenant Context from any Provider!");
            }

            return(context);
        }
        protected override void Context()
        {
            _repository = Resolve<ISequenceRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
        }
Beispiel #8
0
        public TeamValidatorTests()
        {
            #region *** Mocks ***

            var tenantContextMock = TestMocks.GetTenantContextMock();
            var appDbMock         = TestMocks.GetAppDbMock();

            var teamRepoMock = TestMocks.GetRepo <TeamRepository>();
            teamRepoMock
            .Setup(rep => rep.TeamNameExistsAsync(It.IsAny <TeamEntity>(), It.IsAny <CancellationToken>()))
            .Callback(() => { }).Returns((TeamEntity teamEntity, CancellationToken cancellationToken) =>
            {
                return(Task.FromResult(teamEntity.Id < 10 ? teamEntity.Name : null));
            });
            appDbMock.Setup(a => a.TeamRepository).Returns(teamRepoMock.Object);

            var dbContextMock = TestMocks.GetDbContextMock();
            dbContextMock.SetupAppDb(appDbMock);

            tenantContextMock.SetupDbContext(dbContextMock);

            _tenantContext = tenantContextMock.Object;

            _appDb = appDbMock.Object;

            #endregion
        }
Beispiel #9
0
 public static ServiceProvider GetTextTemplatingServiceProvider(ITenantContext tenantContext)
 {
     return(new ServiceCollection()
            .AddLogging(builder =>
     {
         builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
         builder.AddNLog(new NLogProviderOptions
         {
             CaptureMessageTemplates = true,
             CaptureMessageProperties = true
         });
     })
            .AddLocalization()
            .AddSingleton(sp => new Axuno.Tools.DateAndTime.TimeZoneConverter(
                              sp.GetRequiredService <NodaTime.TimeZones.DateTimeZoneCache>(), "Europe/Berlin",
                              CultureInfo.CurrentCulture,
                              NodaTime.TimeZones.Resolvers.LenientResolver))
            .AddTransient <ITenantContext>(sp => tenantContext)
            .AddTextTemplatingModule(vfs =>
     {
         // The complete Templates folder is embedded in the project file
         vfs.FileSets.AddEmbedded <Startup>(nameof(League) + ".Templates");
         // vfs.FileSets.AddPhysical(Path.Combine(Directory.GetCurrentDirectory(), "Templates"));
     },
                                     locOpt =>
     {
     },
                                     renderOptions =>
     {
         renderOptions.MemberNotFoundAction = RenderErrorAction.ThrowError;
         renderOptions.VariableNotFoundAction = RenderErrorAction.ThrowError;
     })
            .BuildServiceProvider());
 }
Beispiel #10
0
 public RoleStore(ITenantContext tenantContext, ILogger <UserStore> logger, ILookupNormalizer keyNormalizer, IdentityErrorDescriber identityErrorDescriber)
 {
     _appDb                  = tenantContext.DbContext.AppDb;
     _logger                 = logger;
     _keyNormalizer          = keyNormalizer;
     _identityErrorDescriber = identityErrorDescriber as MultiLanguageIdentityErrorDescriber;
 }
Beispiel #11
0
 public Error(ILogger <Error> logger, IStringLocalizer <Error> localizer, IWebHostEnvironment environment, ITenantContext tenantContext)
 {
     _logger        = logger;
     _environment   = environment;
     _tenantContext = tenantContext;
     _localizer     = localizer;
 }
Beispiel #12
0
        public async IAsyncEnumerable <MailMergeMessage> GetMailMergeMessages(ITenantContext tenantContext, ITemplateRenderer renderer, IMailMergeService mailMergeService, IStringLocalizer <EmailResource> localizer, [EnumeratorCancellation] CancellationToken cancellationToken)
        {
            if (Parameters.Email is null || Parameters.Subject is null || Parameters.CallbackUrl is null ||
                Parameters.TemplateNameTxt is null || Parameters.TemplateNameHtml is null ||
                Parameters.DeadlineUtc is null)
            {
                throw new ArgumentNullException(nameof(Parameters), "One or more required parameters are null");
            }

            var model = new ChangeUserAccountModel()
            {
                Email       = Parameters.Email,
                CallbackUrl = Parameters.CallbackUrl,
                Deadline    = Parameters.DeadlineUtc
            };

            {
                using var cs = new CultureSwitcher(Parameters.CultureInfo, Parameters.CultureInfo);

                var mailMergeMessage = mailMergeService.CreateStandardMessage();
                mailMergeMessage.EnableFormatter = false;
                mailMergeMessage.Subject         = Parameters.Subject; // already localized

                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.From, tenantContext.SiteContext.Email.GeneralFrom.DisplayName, tenantContext.SiteContext.Email.GeneralFrom.Address));
                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.To, Parameters.Email));

                mailMergeMessage.PlainText = await renderer.RenderAsync(Parameters.TemplateNameTxt, model,
                                                                        Parameters.CultureInfo.TwoLetterISOLanguageName);

                mailMergeMessage.HtmlText = await renderer.RenderAsync(Parameters.TemplateNameHtml, model,
                                                                       Parameters.CultureInfo.TwoLetterISOLanguageName);

                yield return(mailMergeMessage);
            }
        }
Beispiel #13
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="tenantContext"></param>
 public GraphTypesCache(ITenantContext tenantContext)
 {
     _tenantContext   = tenantContext;
     _types           = new ConcurrentDictionary <string, RtEntityDtoType>();
     _inputTypes      = new ConcurrentDictionary <string, RtEntityDtoInputType>();
     _connectionTypes = new ConcurrentDictionary <IGraphType, DynamicConnectionType>();
 }
        public TenantRepositoryFilterTests()
        {
            tenantContext = Substitute.For <ITenantContext>();

            entities.AddRange(new[]
            {
                new TestEntity()
                {
                    Id = Guid.NewGuid(), TenantId = null
                },
                new TestEntity()
                {
                    Id = Guid.NewGuid(), TenantId = tenantId1
                },
                new TestEntity()
                {
                    Id = Guid.NewGuid(), TenantId = tenantId2
                }
            });

            entitiesUnfiltered.AddRange(new[]
            {
                new TestEntity2()
                {
                    Id = Guid.NewGuid()
                }
            });

            tenant = Substitute.For <ITenant>();

            sut = new TenantRepositoryFilter(tenantContext);
        }
Beispiel #15
0
        public async IAsyncEnumerable <MailMergeMessage> GetMailMergeMessages(ITenantContext tenantContext, ITemplateRenderer renderer, IMailMergeService mailMergeService, IStringLocalizer <EmailResource> localizer, [EnumeratorCancellation] CancellationToken cancellationToken)
        {
            if (Parameters.ContactForm is null)
            {
                throw new ArgumentNullException(nameof(Parameters.ContactForm), "One or more required parameters are null");
            }

            var model = new { Form = Parameters.ContactForm };

            {
                using var cs = new CultureSwitcher(Parameters.CultureInfo, Parameters.CultureInfo);

                var mailMergeMessage = mailMergeService.CreateStandardMessage();
                mailMergeMessage.EnableFormatter = false;
                mailMergeMessage.Subject         = model.Form.Subject; // user-generated, cannot localize!

                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.From, tenantContext.SiteContext.Email.ContactFrom.Address));
                mailMergeMessage.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.To, tenantContext.SiteContext.Email.ContactTo.Address));

                mailMergeMessage.PlainText = await renderer.RenderAsync(Templates.Email.TemplateName.ContactFormTxt, model,
                                                                        Parameters.CultureInfo.TwoLetterISOLanguageName);

                yield return(mailMergeMessage);
            }
        }
Beispiel #16
0
 /// <summary>
 /// CTOR.
 /// </summary>
 /// <param name="webHostEnvironment"></param>
 /// <param name="tenantContext"></param>
 /// <param name="logger"></param>
 public TeamPhotoStaticFile(IWebHostEnvironment webHostEnvironment, ITenantContext tenantContext, ILogger <TeamPhotoStaticFile> logger) : base(logger)
 {
     _webHostEnvironment = webHostEnvironment;
     _tenantContext      = tenantContext;
     _logger             = logger;
     _folder             = _tenantContext.SiteContext.Photos.TeamPhotoFolder;
 }
Beispiel #17
0
        private void SetMostRecentTenantCookie(ITenantContext tenant)
        {
            if (_httpContext == null)
            {
                return;
            }

            if (tenant.SiteContext.UrlSegmentValue == string.Empty)
            {
                _httpContext.Response.Cookies.Delete(CookieNames.MostRecentTenant);
            }

            _httpContext.Response.Cookies.Append(
                CookieNames.MostRecentTenant,
                tenant.SiteContext.UrlSegmentValue,
                new CookieOptions
            {
                Path        = "/",
                HttpOnly    = false,
                Secure      = false,
                Expires     = DateTimeOffset.Now.AddYears(1),
                IsEssential = true
            }
                );
        }
 public virtual ITenantContext GetTenantContext()
 {
     if (_tenantContext == null)
     {
         _tenantContext = CreateTenantContext();
     }
     return(_tenantContext);
 }
        protected override void Context()
        {
            _handler = Resolve<ClientHandlers>();
            _clientRepository = Resolve<IClientRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
        }
 private int expiresInMinutes = 5 * 60; //5 hrs
 public UserService(IUserRepository userRepository,
                    ITenantRepository tenantRepository,
                    ITenantContext tenantContext)
 {
     _userRepository   = userRepository;
     _tenantRepository = tenantRepository;
     _tenant           = tenantContext.GetTenant();
 }
        protected override void Context()
        {
            _timeregistrationHandler = Resolve<TimeRegistrationHandlers>();
            _timeregistrationRepository = Resolve<ITimeRegistrationRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
        }
Beispiel #22
0
 public SendEmailTask(IMailMergeService mailMergeService, ITemplateRenderer renderer, ITenantContext tenantContext, IStringLocalizer <EmailResource> localizer, ILogger <SendEmailTask> logger)
 {
     _mailMergeService = mailMergeService;
     _renderer         = renderer;
     _localizer        = localizer;
     _tenantContext    = tenantContext;
     _logger           = logger;
 }
 public virtual async Task <ITenantContext> GetTenantContextAsync(CancellationToken cancellationToken = default)
 {
     if (_tenantContext == null)
     {
         _tenantContext = await CreateTenantContextAsync(cancellationToken);
     }
     return(_tenantContext);
 }
        public UserRequiresTwoFactorAuthenticationValidator(ITenantContext tenantContext, IRequireTwoFactorAuthenticationFactory factory)
        {
            _tenantContext      = tenantContext;
            _2faRequiredFactory = factory;
#if DEBUG
            _autoEnable = !tenantContext.TenantConfigurations.Get <bool>(Constants.Ignore2faWhileDebugging);
#endif
        }
Beispiel #25
0
 internal AvailableMatchDates(ITenantContext tenantContext,
                              Axuno.Tools.DateAndTime.TimeZoneConverter timeZoneConverter, ILogger <AvailableMatchDates> logger)
 {
     _tenantContext     = tenantContext;
     _appDb             = tenantContext.DbContext.AppDb;
     _timeZoneConverter = timeZoneConverter;
     _logger            = logger;
 }
        protected override void Context()
        {
            _projectHandler = Resolve<ProjectHandlers>();
            _projectRepository = Resolve<IProjectRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
        }
Beispiel #27
0
 public Ranking(ITenantContext tenantContext, IWebHostEnvironment webHostEnvironment, IStringLocalizer <Ranking> localizer, ILogger <Ranking> logger, IMemoryCache memoryCache)
 {
     _tenantContext      = tenantContext;
     _appDb              = tenantContext.DbContext.AppDb;
     _webHostEnvironment = webHostEnvironment;
     _logger             = logger;
     _memoryCache        = memoryCache;
 }
        protected override void Context()
        {
            _repository = Resolve<ISequenceRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
            _repository.Add(new Sequence { Id = _id, Result = "1", Version = 1 }, 1);
        }
Beispiel #29
0
 public ApiSettingModelFactory(
     ISettingService settingService,
     IClientService clientService,
     ITenantContext tenantContext)
 {
     _settingService = settingService;
     _clientService  = clientService;
     _tenantContext  = tenantContext;
 }
        protected override void Context()
        {
            _handler = Resolve<ClientHandlers>();
            _clientRepository = Resolve<IClientRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
            _handler.AsDynamic().Handle(new ClientCreated(_id, "John Doe BVBA", DateTime.UtcNow) { Version = 1 });
        }
Beispiel #31
0
        private static RtSystemNotificationMessage CreateRtEntity(NotificationMessageDto notificationMessageDto,
                                                                  ITenantContext tenantContext)
        {
            var rtEntity = tenantContext.Repository.CreateTransientRtEntity <RtSystemNotificationMessage>();

            ApplyDtoData(notificationMessageDto, rtEntity);

            return(rtEntity);
        }
Beispiel #32
0
        public ByTenantEntityStorage(IEntityStorage <T> inner, ITenantContext context)
        {
            _inner   = inner;
            _context = context;

            if (_context.CurrentTenant == Guid.Empty)
            {
                throw new InvalidOperationException();
            }
        }
Beispiel #33
0
 /// <summary>
 /// CTOR.
 /// </summary>
 /// <param name="tenantContext"></param>
 /// <param name="timeZoneConverter"></param>
 /// <param name="loggerFactory"></param>
 public MatchPlanner(ITenantContext tenantContext,
                     Axuno.Tools.DateAndTime.TimeZoneConverter timeZoneConverter, ILoggerFactory loggerFactory)
 {
     _tenantContext       = tenantContext;
     _appDb               = tenantContext.DbContext.AppDb;
     _timeZoneConverter   = timeZoneConverter;
     _availableMatchDates = new AvailableMatchDates(tenantContext, timeZoneConverter, loggerFactory.CreateLogger <AvailableMatchDates>());
     _loggerFactory       = loggerFactory;
     _logger              = loggerFactory.CreateLogger <MatchPlanner>();
 }
Beispiel #34
0
 public Home(ITenantContext tenantContext, TenantStore tenantStore, Axuno.BackgroundTask.IBackgroundQueue queue, SendEmailTask sendEmailTask, ILogger <Home> logger, IStringLocalizer <Account> localizer)
 {
     _tenantContext = tenantContext;
     _tenantStore   = tenantStore;
     _appDb         = _tenantContext.DbContext.AppDb;
     _queue         = queue;
     _sendEmailTask = sendEmailTask;
     _logger        = logger;
     _localizer     = localizer;
     _tenantContext = tenantContext;
 }
        protected override void Context()
        {
            _bus = Resolve<IServiceBus>();
            _sequenceRepository = Resolve<ISequenceRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _bus.PublishDomainUpdate(new [] { new SequenceNumberAdded(_id, 1) { Version = 1 }},
                                     Metadata(1));

        
        }
Beispiel #36
0
 public LeagueMemoryTreeCache(IMemoryCache cache, ITenantContext tenantContext, IOptions <TreeCacheOptions> optionsAccessor = null)
 {
     _tenantContext = tenantContext;
     _cache         = cache ?? throw new ArgumentNullException(nameof(cache));
     _options       = optionsAccessor?.Value;
     if (_options != null)
     {
         return;
     }
     _options = new TreeCacheOptions(); // TreeCacheOptions contains property CacheDurationInSeconds (defaults to 300)
 }
        protected override void Context()
        {
            _clientHandler = Resolve<ClientHandlers>();
            _projectHandler = Resolve<ProjectHandlers>();
            _projectRepository = Resolve<IProjectRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
            _clientHandler.AsDynamic().Handle(new ClientCreated(_clientId, "John Doe BVBA", DateTime.UtcNow) { Version = 1 });
            _projectHandler.AsDynamic().Handle(new ProjectCreated(_projectId, "Project 1", "A test project", _clientId, DateTime.UtcNow) { Version = 1 });
        }
        public async Task Invoke(HttpContext context, ITenantContext tenantContext)
        {
            var tenantHeaderValue = context.Request.Headers[_options.TenantHeaderName].FirstOrDefault();

            if (Guid.TryParse(tenantHeaderValue, out var tenantId))
            {
                tenantContext.TenantId = tenantId;
            }

            await _next(context);
        }
        protected override void Context()
        {
            _clientHandler = Resolve<ClientHandlers>();
            _projectHandler = Resolve<ProjectHandlers>();
            _projectRepository = Resolve<IProjectRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
            _clientHandler.AsDynamic().Handle(new ClientCreated(_clientId, "John Doe BVBA", DateTime.UtcNow) { Version = 1 });
            _projectHandler.AsDynamic().Handle(new ProjectCreated(_projectId, "Project 1", "A test project", _clientId, DateTime.UtcNow) { Version = 1 });
            _projectHandler.AsDynamic().Handle(new ProjectTasksChanged(_projectId, new Dtos.Task[]
            {
                new Dtos.Task{ Name = "Initial task", Rate = 50M },
            }) { Version = 2 });
        }
        protected override void Context()
        {
            _clientHandler = Resolve<ClientHandlers>();
            _projectHandler = Resolve<ProjectHandlers>();
            _timeregistrationHandler = Resolve<TimeRegistrationHandlers>();
            _timeregistrationRepository = Resolve<ITimeRegistrationRepository>();
            _tenantContext = Resolve<ITenantContext>();

            _tenantContext.SetTenantId(_tenant);
            _clientHandler.AsDynamic().Handle(new ClientCreated(_clientId, "John Doe BVBA", DateTime.UtcNow) { Version = 1 });
            _projectHandler.AsDynamic().Handle(new ProjectCreated(_projectId, "Project 1", "A test project", _clientId, DateTime.UtcNow) { Version = 1 });
            _timeregistrationHandler.AsDynamic().Handle(new TimeRegistrationCreated(_timeregistrationId, _clientId, _projectId,
                                                "Development", 50M, "Doing some work",
                                                Date.Parse("2012-01-30"),
                                                Time.Parse("12:00"), Time.Parse("14:00"),
                                                DateTime.UtcNow) { Version = 1 });
        }
Beispiel #41
0
 /// <summary>
 /// Creates a new instance of <see cref="AutomaticDataMigrations"/>.
 /// </summary>
 /// <param name="tenantContext">The <see cref="ITenantContext"/>.</param>
 /// <param name="dataContext">The <see cref="DataContext"/>.</param>
 public AutomaticDataMigrations(ITenantContext tenantContext, DataContext dataContext)
 {            
     _tenantContext = tenantContext;
     _dataContext = dataContext;
 }
 public DomainUpdateServiceBusHandlerHook(IMongoContext mongoContext, ITenantContext tenantContext)
 {
     _tenantContext = tenantContext;
 }
 public MultiTenantSessionFactoryKeyProvider(ITenantContext tenantContext)
 {
     _tenantContext = tenantContext;
 }
 protected override void Context()
 {
     _repository = Resolve<ISequenceRepository>();
     _tenantContext = Resolve<ITenantContext>();
     _handler = Resolve<SequenceAddNumberHandlers>();
 }