コード例 #1
0
        public void GuestInfoAddedAfterInvite(UserInfo newUserInfo)
        {
            if (!CoreContext.UserManager.UserExists(newUserInfo.ID))
            {
                return;
            }

            INotifyAction notifyAction;
            var           footer = "social";

            if (TenantExtra.Enterprise)
            {
                var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault;
                notifyAction = defaultRebranding ? Actions.EnterpriseGuestWelcomeV10 : Actions.EnterpriseWhitelabelGuestWelcomeV10;
                footer       = null;
            }
            else if (TenantExtra.Opensource)
            {
                notifyAction = Actions.OpensourceGuestWelcomeV11;
                footer       = "opensource";
            }
            else
            {
                notifyAction = Actions.SaasGuestWelcomeV115;
            }

            Func <string> greenButtonText = () => TenantExtra.Enterprise
                                      ? WebstudioNotifyPatternResource.ButtonAccessYourPortal
                                      : WebstudioNotifyPatternResource.ButtonAccessYouWebOffice;

            client.SendNoticeToAsync(
                notifyAction,
                null,
                StudioNotifyHelper.RecipientFromEmail(newUserInfo.Email, false),
                new[] { EMailSenderName },
                null,
                new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode()),
                new TagValue(Tags.MyStaffLink, GetMyStaffLink()),
                TagValues.GreenButton(greenButtonText, CommonLinkUtility.GetFullAbsolutePath("~").TrimEnd('/')),
                new TagValue(CommonTags.Footer, footer));
        }
コード例 #2
0
        public void SendMsgRestoreCompleted(bool notifyAllUsers)
        {
            var users = notifyAllUsers
                    ? CoreContext.UserManager.GetUsers(EmployeeStatus.Active)
                    : new[] { CoreContext.UserManager.GetUsers(CoreContext.TenantManager.GetCurrentTenant().OwnerId) };

            foreach (var user in users)
            {
                var hash            = CoreContext.Authentication.GetUserPasswordStamp(user.ID).ToString("s");
                var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(user.Email, ConfirmType.PasswordChange, hash);

                Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonSetPassword;

                client.SendNoticeToAsync(
                    Actions.RestoreCompletedV115,
                    null,
                    new IRecipient[] { user },
                    new[] { EMailSenderName },
                    null,
                    TagValues.GreenButton(greenButtonText, confirmationUrl));
            }
        }
コード例 #3
0
        public void GuestInfoActivation(UserInfo newUserInfo)
        {
            if (newUserInfo.IsActive)
            {
                throw new ArgumentException("User is already activated!");
            }

            INotifyAction notifyAction;
            var           analytics = string.Empty;
            var           footer    = "social";

            if (TenantExtra.Enterprise)
            {
                var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault;
                notifyAction = defaultRebranding ? Actions.EnterpriseGuestActivationV10 : Actions.EnterpriseWhitelabelGuestActivationV10;
                footer       = null;
            }
            else
            {
                notifyAction = Actions.SaasGuestActivationV10;
                var tenant = CoreContext.TenantManager.GetCurrentTenant();
                analytics = StudioNotifyHelper.GetNotifyAnalytics(tenant.TenantId, notifyAction, false, false, false, true);
            }

            var confirmationUrl = GenerateActivationConfirmUrl(newUserInfo);

            Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonAccept;

            client.SendNoticeToAsync(
                notifyAction,
                null,
                StudioNotifyHelper.RecipientFromEmail(newUserInfo.Email, false),
                new[] { EMailSenderName },
                null,
                TagValues.GreenButton(greenButtonText, confirmationUrl),
                new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode()),
                new TagValue(CommonTags.Footer, footer),
                new TagValue(CommonTags.Analytics, analytics));
        }
コード例 #4
0
        public void SendRegData(UserInfo u)
        {
            try
            {
                if (!TenantExtra.Saas || !CoreContext.Configuration.CustomMode)
                {
                    return;
                }

                var salesEmail = AdditionalWhiteLabelSettings.Instance.SalesEmail ?? SetupInfo.SalesEmail;

                if (string.IsNullOrEmpty(salesEmail))
                {
                    return;
                }

                var recipient = new DirectRecipient(salesEmail, null, new[] { salesEmail }, false);

                client.SendNoticeToAsync(
                    Actions.SaasCustomModeRegData,
                    null,
                    new IRecipient[] { recipient },
                    new[] { EMailSenderName },
                    null,
                    new TagValue(Tags.UserName, u.FirstName.HtmlEncode()),
                    new TagValue(Tags.UserLastName, u.LastName.HtmlEncode()),
                    new TagValue(Tags.UserEmail, u.Email.HtmlEncode()),
                    new TagValue(Tags.Phone, u.MobilePhone != null ? u.MobilePhone.HtmlEncode() : "-"),
                    new TagValue(Tags.Date, u.CreateDate.ToShortDateString() + " " + u.CreateDate.ToShortTimeString()),
                    new TagValue(CommonTags.Footer, null),
                    TagValues.WithoutUnsubscribe());
            }
            catch (Exception error)
            {
                LogManager.GetLogger("ASC.Notify").Error(error);
            }
        }