コード例 #1
0
        private void InitializeLocalizableStrings()
        {
            // We need to create localizable strings for all tenants,
            //  but at this point there will only be 1 tenant, because this is initialization for the DB.
            //  TODO: When admin user creates a new tenant, we need to insert localized strings for it. Probably in TenantApiController somewhere...
            int tenantId      = Tenants.First().Id;
            var languagePacks = EngineContext.Current.ResolveAll <ILanguagePack>();

            var toInsert = new HashSet <LocalizableString>();

            foreach (var languagePack in languagePacks)
            {
                foreach (var localizedString in languagePack.LocalizedStrings)
                {
                    toInsert.Add(new LocalizableString
                    {
                        Id          = Guid.NewGuid(),
                        TenantId    = tenantId,
                        CultureCode = languagePack.CultureCode,
                        TextKey     = localizedString.Key,
                        TextValue   = localizedString.Value
                    });
                }
            }
            LocalizableStrings.AddRange(toInsert);
            SaveChanges();
        }
コード例 #2
0
        /// <summary>
        /// Resolves a tenant request using hostname
        /// </summary>
        /// <param name="request">The request</param>
        /// <returns>The tenant or null</returns>
        public ITenant Resolve(IOwinRequest request)
        {
            var httpContext = request.Context.Get <HttpContextWrapper>("System.Web.HttpContextBase");
            var routeData   = RouteTable.Routes.GetRouteData(httpContext);

            if (routeData == null || routeData.Values.ContainsKey(RouteName) == false)
            {
                return(Tenants.First());
            }

            var tenant = Tenants.FirstOrDefault(x => x.Name == routeData.Values[RouteName].ToString());

            return(tenant ?? Tenants.First());
        }
コード例 #3
0
ファイル: Controller.cs プロジェクト: SkillsWorkflow/HRLink
        public async Task ExecuteAsync()
        {
            Console.WriteLine("<Controller:Execute> Starting");
            try
            {
                var datetimeNow     = DateTime.UtcNow;
                var tenantCompanies = await GetTenantCompanies();

                if (tenantCompanies.Count == 0)
                {
                    return;
                }
                var mailBodyList = new List <MailBodyDto>();
                Console.WriteLine("<Controller:Execute> Delete Log");
                await DeleteLogAsync(tenantCompanies);
                await ImportUsersAsync(tenantCompanies, mailBodyList);

                Console.WriteLine("<Controller:Execute> Update Integrated On");
                foreach (var tenantCompany in tenantCompanies)
                {
                    foreach (var company in tenantCompany.Companies)
                    {
                        await CompanyIntegrationHelper.UpdateAsync(tenantCompany.Api, company.CompanyIntegrationId, datetimeNow);
                    }
                }
                foreach (var tenantCompany in tenantCompanies)
                {
                    var contextDto = await ApiHelper.GetContextDtoAsync(tenantCompany.Api);

                    foreach (var company in tenantCompany.Companies)
                    {
                        var administratorMail = string.IsNullOrEmpty(company.AdministratorMail) ? MailDto.AdministratorMail : company.AdministratorMail;
                        await SendEmailAsync(mailBodyList, contextDto, company.Code, administratorMail);
                    }
                }
            }
            catch (Exception exception)
            {
                var contextDto = await ApiHelper.GetContextDtoAsync(Tenants.First());

                var groupId = contextDto.TenantId.ToString() + "-" + Updater.MyStatusId.ToString();
                await MailHelper.SendEmailAsync(MailDto, "Error executing HrLink job.", MailHelper.GetBodyTextOf(contextDto, exception.InnerException?.Message ?? exception.Message), MailDto.AdministratorMail, null, true, groupId);

                throw;
            }
            Console.WriteLine("<Controller:Execute> Ending");
        }