Example #1
0
        // TODO Write Unit Tests
        private Dictionary <string, string> GetEmailTemplatePlaceholderDictionary(EmailTemplatePlaceholdersGeneratorRequestModel data)
        {
            try
            {
                var user = data.UserName != null?_userService.GetUser(data.UserName) : null;

                var companyId = user?.CompanyId ?? data.CompanyId;

                var CustomSecurePanel = data.CustomSecurePanelId != 0 ? _customSecureControlPanelService.GetCustomSecurePanel(data.CustomSecurePanelId) : null;

                var company = _companyService.GetCompany(companyId);
                if (company == null)
                {
                    throw new Exception($"No Comapny with id {companyId}");
                }
                var parentCompanyId = company.ParentId ?? throw new Exception($"Comapny {company.Name} has no Parent Company Id");

                var parentCompany = _companyService.GetCompany(parentCompanyId);

                var companySupportSiteUrl = company.SupportSiteUrl == "" ? parentCompany.SupportSiteUrl : company.SupportSiteUrl;

                if (parentCompany == null)
                {
                    throw new Exception($"No Parent Comapny with id {parentCompanyId}");
                }

                var dictionary = new Dictionary <string, string>
                {
                    { EmailTemplatePlaceholdersConstants.UserDisplayName, user?.DisplayName ?? "" },
                    { EmailTemplatePlaceholdersConstants.UserLogin, user?.Email ?? "" },
                    { EmailTemplatePlaceholdersConstants.UserPasswordTempLink, data.TempResetLink },
                    { EmailTemplatePlaceholdersConstants.Password, data.Password },
                    { EmailTemplatePlaceholdersConstants.ARecordIp, _notificationServiceSettings.ARecordIp },
                    { EmailTemplatePlaceholdersConstants.CompanyName, company.Name ?? "" },
                    {
                        EmailTemplatePlaceholdersConstants.CompanyPrimaryDomain,
                        company.Domains.FirstOrDefault(d => d.IsPrimary)?.Name ?? ""
                    },
                    { EmailTemplatePlaceholdersConstants.CompanyControlPanelUrl, company.ControlPanelSiteUrl ?? "" },
                    { EmailTemplatePlaceholdersConstants.CompanySupportUrl, companySupportSiteUrl ?? "" },
                    { EmailTemplatePlaceholdersConstants.CompanyContactPhone, company.PhoneNumber ?? "" },
                    { EmailTemplatePlaceholdersConstants.ParentCompanyName, parentCompany.Name ?? "" },
                    { EmailTemplatePlaceholdersConstants.ParentCompanyWebSite, parentCompany.Website ?? "" },
                    { EmailTemplatePlaceholdersConstants.ParentCompanyControlPanelUrl, parentCompany.ControlPanelSiteUrl ?? "" },
                    { EmailTemplatePlaceholdersConstants.ParentCompanySupportUrl, parentCompany.SupportSiteUrl ?? "" },
                    { EmailTemplatePlaceholdersConstants.ParentCompanyContactPhone, parentCompany.PhoneNumber ?? "" },
                    { EmailTemplatePlaceholdersConstants.ParentCompanyLogo, _configurationManager.GetByKey("ImageServerLogoPath") + "/CompanyLogo/" + parentCompany.LogoUrl },
                    { EmailTemplatePlaceholdersConstants.Domain, data.Domain },
                    { EmailTemplatePlaceholdersConstants.TxtRecord, data.TxtRecord },

                    { EmailTemplatePlaceholdersConstants.ControlPanelAddressStreet, CustomSecurePanel.CompanyAddressStreet ?? "" },
                    { EmailTemplatePlaceholdersConstants.ControlPanelAddressCity, CustomSecurePanel.CompanyAddressCity ?? "" },
                    { EmailTemplatePlaceholdersConstants.ControlPanelAddressState, CustomSecurePanel.CompanyAddressState ?? "" },
                    { EmailTemplatePlaceholdersConstants.ControlPanelAddressZip, CustomSecurePanel.CompanyAddressZipCode ?? "" },
                    { EmailTemplatePlaceholdersConstants.ControlPanelCompanyId, Convert.ToString(data.CompanyId) ?? "" },
                    { EmailTemplatePlaceholdersConstants.ControlPanelContactPhone, CustomSecurePanel.ContactPhone ?? "" },
                    { EmailTemplatePlaceholdersConstants.ControlPanelContactName, CustomSecurePanel.ContactPerson ?? "" },
                    { EmailTemplatePlaceholdersConstants.CustomSecureControlPanelURL, CustomSecurePanel.CustomSecureControlPanelURL ?? "" },
                };

                return(dictionary);
            }
            catch (Exception ex)
            {
                this.Log().Error("Error occured on GetEmailTemplatePlaceholderDictionary!", ex);
                throw;
            }
        }