public void SendInvitePersonal(string email, string additionalMember = "") { var newUserInfo = CoreContext.UserManager.GetUserByEmail(email); if (CoreContext.UserManager.UserExists(newUserInfo.ID)) { return; } var lang = CoreContext.Configuration.CustomMode ? "ru-RU" : Thread.CurrentThread.CurrentUICulture.Name; var culture = SetupInfo.GetPersonalCulture(lang); var confirmUrl = CommonLinkUtility.GetConfirmationUrl(email, ConfirmType.EmpInvite, (int)EmployeeType.User) + "&emplType=" + (int)EmployeeType.User + "&lang=" + culture.Key + additionalMember; client.SendNoticeToAsync( CoreContext.Configuration.CustomMode ? Actions.PersonalCustomModeConfirmation : Actions.PersonalConfirmation, null, StudioNotifyHelper.RecipientFromEmail(email, false), new[] { EMailSenderName }, null, new TagValue(Tags.InviteLink, confirmUrl), new TagValue(CommonTags.Footer, CoreContext.Configuration.CustomMode ? "personalCustomMode" : "personal"), new TagValue(CommonTags.Culture, Thread.CurrentThread.CurrentUICulture.Name)); }
public void SendMailboxCreated(List <string> toEmails, string username, string address, string server, string encyption, int portImap, int portSmtp, string login, bool skipSettings = false) { var tags = new List <ITagValue> { new TagValue(Tags.UserName, username ?? string.Empty), new TagValue(Tags.Address, address ?? string.Empty) }; if (!skipSettings) { var link = string.Format("{0}/addons/mail/#accounts/changepwd={1}", CommonLinkUtility.GetFullAbsolutePath("~").TrimEnd('/'), address); tags.Add(new TagValue(Tags.MyStaffLink, link)); tags.Add(new TagValue(Tags.Server, server)); tags.Add(new TagValue(Tags.Encryption, encyption ?? string.Empty)); tags.Add(new TagValue(Tags.ImapPort, portImap.ToString(CultureInfo.InvariantCulture))); tags.Add(new TagValue(Tags.SmtpPort, portSmtp.ToString(CultureInfo.InvariantCulture))); tags.Add(new TagValue(Tags.Login, login)); } client.SendNoticeToAsync( skipSettings ? Actions.MailboxWithoutSettingsCreated : Actions.MailboxCreated, null, StudioNotifyHelper.RecipientFromEmail(toEmails, false), new[] { EMailSenderName }, null, tags.ToArray()); }
public void UserInfoAddedAfterInvite(UserInfo newUserInfo) { if (!CoreContext.UserManager.UserExists(newUserInfo.ID)) { return; } INotifyAction notifyAction; var footer = "social"; if (CoreContext.Configuration.Personal) { if (CoreContext.Configuration.CustomMode) { notifyAction = Actions.PersonalCustomModeAfterRegistration1; footer = "personalCustomMode"; } else { notifyAction = Actions.PersonalAfterRegistration1; footer = "personal"; } } else if (TenantExtra.Enterprise) { var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault; notifyAction = defaultRebranding ? Actions.EnterpriseUserWelcomeV10 : CoreContext.Configuration.CustomMode ? Actions.EnterpriseWhitelabelUserWelcomeCustomMode : Actions.EnterpriseWhitelabelUserWelcomeV10; footer = null; } else if (TenantExtra.Opensource) { notifyAction = Actions.OpensourceUserWelcomeV11; footer = "opensource"; } else { notifyAction = Actions.SaasUserWelcomeV115; } 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), new TagValue(CommonTags.MasterTemplate, CoreContext.Configuration.Personal ? "HtmlMasterPersonal" : "HtmlMaster")); }
public void SendAdminWelcome(UserInfo newUserInfo) { if (!CoreContext.UserManager.UserExists(newUserInfo.ID)) { return; } if (!newUserInfo.IsActive) { throw new ArgumentException("User is not activated yet!"); } INotifyAction notifyAction; var tagValues = new List <ITagValue>(); if (TenantExtra.Enterprise) { var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault; notifyAction = defaultRebranding ? Actions.EnterpriseAdminWelcomeV10 : Actions.EnterpriseWhitelabelAdminWelcomeV10; tagValues.Add(TagValues.GreenButton(() => WebstudioNotifyPatternResource.ButtonAccessControlPanel, CommonLinkUtility.GetFullAbsolutePath("~" + SetupInfo.ControlPanelUrl))); } else { notifyAction = Actions.SaasAdminWelcomeV10; tagValues.Add(TagValues.GreenButton(() => WebstudioNotifyPatternResource.ButtonConfigureRightNow, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetAdministration(ManagementType.General)))); var tenant = CoreContext.TenantManager.GetCurrentTenant(); var analytics = StudioNotifyHelper.GetNotifyAnalytics(tenant.TenantId, notifyAction, false, true, false, false); tagValues.Add(new TagValue(CommonTags.Analytics, analytics)); tagValues.Add(TagValues.TableTop()); tagValues.Add(TagValues.TableItem(1, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-regional-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_regional, null, null)); tagValues.Add(TagValues.TableItem(2, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-brand-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_brand, null, null)); tagValues.Add(TagValues.TableItem(3, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-customize-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_customize, null, null)); tagValues.Add(TagValues.TableItem(4, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-security-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_security, null, null)); tagValues.Add(TagValues.TableItem(5, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-usertrack-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_usertrack, null, null)); tagValues.Add(TagValues.TableItem(6, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-backup-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_backup, null, null)); tagValues.Add(TagValues.TableItem(7, null, null, StudioNotifyHelper.GetNotificationImageUrl("tips-welcome-telephony-50.png"), () => WebstudioNotifyPatternResource.pattern_saas_admin_welcome_v10_item_telephony, null, null)); tagValues.Add(TagValues.TableBottom()); tagValues.Add(new TagValue(CommonTags.Footer, "common")); } tagValues.Add(new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode())); client.SendNoticeToAsync( notifyAction, null, StudioNotifyHelper.RecipientFromEmail(newUserInfo.Email, false), new[] { EMailSenderName }, null, tagValues.ToArray()); }
public void SendMailboxPasswordChanged(List <string> toEmails, string username, string address) { client.SendNoticeToAsync( Actions.MailboxPasswordChanged, null, StudioNotifyHelper.RecipientFromEmail(toEmails, false), new[] { EMailSenderName }, null, new TagValue(Tags.UserName, username ?? string.Empty), new TagValue(Tags.Address, address ?? string.Empty)); }
public void SendUserWelcomePersonal(UserInfo newUserInfo) { client.SendNoticeToAsync( CoreContext.Configuration.CustomMode ? Actions.PersonalCustomModeAfterRegistration1 : Actions.PersonalAfterRegistration1, null, StudioNotifyHelper.RecipientFromEmail(newUserInfo.Email, true), new[] { EMailSenderName }, null, new TagValue(CommonTags.Footer, CoreContext.Configuration.CustomMode ? "personalCustomMode" : "personal"), new TagValue(CommonTags.MasterTemplate, "HtmlMasterPersonal")); }
public void SendMsgTfaReset(UserInfo userInfo) { var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(userInfo.Email.ToLower(), ConfirmType.TfaActivation); Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonChangeTfa; client.SendNoticeToAsync( Actions.TfaChange, null, StudioNotifyHelper.RecipientFromEmail(userInfo.Email, false), new[] { EMailSenderName }, null, TagValues.GreenButton(greenButtonText, confirmationUrl)); }
public void SendMsgRestoreStarted(bool notifyAllUsers) { var owner = CoreContext.UserManager.GetUsers(CoreContext.TenantManager.GetCurrentTenant().OwnerId); var users = notifyAllUsers ? StudioNotifyHelper.RecipientFromEmail(CoreContext.UserManager.GetUsers(EmployeeStatus.Active).Where(r => r.ActivationStatus == EmployeeActivationStatus.Activated).Select(u => u.Email).ToList(), false) : owner.ActivationStatus == EmployeeActivationStatus.Activated ? StudioNotifyHelper.RecipientFromEmail(owner.Email, false) : new IDirectRecipient[0]; client.SendNoticeToAsync( Actions.RestoreStarted, null, users, new[] { EMailSenderName }, null); }
public void SendCongratulations(UserInfo u) { try { INotifyAction notifyAction; var footer = "common"; var analytics = string.Empty; if (TenantExtra.Enterprise) { var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault; notifyAction = defaultRebranding ? Actions.EnterpriseAdminActivationV10 : Actions.EnterpriseWhitelabelAdminActivationV10; footer = null; } else if (TenantExtra.Opensource) { notifyAction = Actions.OpensourceAdminActivation; footer = "opensource"; } else { notifyAction = Actions.SaasAdminActivationV10; var tenant = CoreContext.TenantManager.GetCurrentTenant(); analytics = StudioNotifyHelper.GetNotifyAnalytics(tenant.TenantId, notifyAction, false, true, false, false); } var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(u.Email, ConfirmType.EmailActivation); confirmationUrl += "&first=true"; Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonConfirm; client.SendNoticeToAsync( notifyAction, null, StudioNotifyHelper.RecipientFromEmail(u.Email, false), new[] { EMailSenderName }, null, new TagValue(Tags.UserName, u.FirstName.HtmlEncode()), new TagValue(Tags.MyStaffLink, GetMyStaffLink()), TagValues.GreenButton(greenButtonText, confirmationUrl), new TagValue(CommonTags.Footer, footer), new TagValue(CommonTags.Analytics, analytics)); } catch (Exception error) { LogManager.GetLogger("ASC.Notify").Error(error); } }
public void SendJoinMsg(string email, EmployeeType emplType) { var inviteUrl = CommonLinkUtility.GetConfirmationUrl(email, ConfirmType.EmpInvite, (int)emplType) + String.Format("&emplType={0}", (int)emplType); Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonJoin; client.SendNoticeToAsync( Actions.JoinUsers, null, StudioNotifyHelper.RecipientFromEmail(email, true), new[] { EMailSenderName }, null, new TagValue(Tags.InviteLink, inviteUrl), TagValues.GreenButton(greenButtonText, inviteUrl)); }
public void SendEmailActivationInstructions(UserInfo user, string email) { var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(email, ConfirmType.EmailActivation); Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonActivateEmail; client.SendNoticeToAsync( Actions.ActivateEmail, null, StudioNotifyHelper.RecipientFromEmail(email, false), new[] { EMailSenderName }, null, new TagValue(Tags.InviteLink, confirmationUrl), TagValues.GreenButton(greenButtonText, confirmationUrl), new TagValue(Tags.UserDisplayName, (user.DisplayUserName() ?? string.Empty).Trim())); }
public void SendAdminWelcome(UserInfo newUserInfo) { if (!CoreContext.UserManager.UserExists(newUserInfo.ID)) { return; } if (!newUserInfo.IsActive) { throw new ArgumentException("User is not activated yet!"); } INotifyAction notifyAction; var tagValues = new List <ITagValue>(); if (TenantExtra.Enterprise) { var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault; notifyAction = defaultRebranding ? Actions.EnterpriseAdminWelcomeV10 : Actions.EnterpriseWhitelabelAdminWelcomeV10; tagValues.Add(TagValues.GreenButton(() => WebstudioNotifyPatternResource.ButtonAccessControlPanel, CommonLinkUtility.GetFullAbsolutePath(SetupInfo.ControlPanelUrl))); } else if (TenantExtra.Opensource) { notifyAction = Actions.OpensourceAdminWelcomeV11; tagValues.Add(new TagValue(CommonTags.Footer, "opensource")); tagValues.Add(new TagValue(Tags.ControlPanelUrl, CommonLinkUtility.GetFullAbsolutePath(SetupInfo.ControlPanelUrl).TrimEnd('/'))); } else { notifyAction = Actions.SaasAdminWelcomeV115; //tagValues.Add(TagValues.GreenButton(() => WebstudioNotifyPatternResource.ButtonConfigureRightNow, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetAdministration(ManagementType.General)))); tagValues.Add(new TagValue(CommonTags.Footer, "common")); } tagValues.Add(new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode())); client.SendNoticeToAsync( notifyAction, null, StudioNotifyHelper.RecipientFromEmail(newUserInfo.Email, false), new[] { EMailSenderName }, null, tagValues.ToArray()); }
public void SendMsgProfileDeletion(UserInfo user) { var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(user.Email, ConfirmType.ProfileRemove); Func <string> greenButtonText = () => CoreContext.Configuration.Personal ? WebstudioNotifyPatternResource.ButtonConfirmTermination : WebstudioNotifyPatternResource.ButtonRemoveProfile; var action = CoreContext.Configuration.Personal ? (CoreContext.Configuration.CustomMode ? Actions.PersonalCustomModeProfileDelete : Actions.PersonalProfileDelete) : Actions.ProfileDelete; client.SendNoticeToAsync( action, null, StudioNotifyHelper.RecipientFromEmail(user.Email, false), new[] { EMailSenderName }, null, TagValues.GreenButton(greenButtonText, confirmationUrl), new TagValue(CommonTags.Culture, user.GetCulture().Name)); }
public void UserPasswordChange(UserInfo userInfo) { var hash = CoreContext.Authentication.GetUserPasswordStamp(userInfo.ID).ToString("s"); var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(userInfo.Email, ConfirmType.PasswordChange, hash); Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonChangePassword; var action = CoreContext.Configuration.Personal ? (CoreContext.Configuration.CustomMode ? Actions.PersonalCustomModePasswordChange : Actions.PersonalPasswordChange) : Actions.PasswordChange; client.SendNoticeToAsync( action, null, StudioNotifyHelper.RecipientFromEmail(userInfo.Email, false), new[] { EMailSenderName }, null, TagValues.GreenButton(greenButtonText, confirmationUrl)); }
public void SendEmailChangeInstructions(UserInfo user, string email) { var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(email, ConfirmType.EmailChange, SecurityContext.CurrentAccount.ID); Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonChangeEmail; var action = CoreContext.Configuration.Personal ? (CoreContext.Configuration.CustomMode ? Actions.PersonalCustomModeEmailChangeV115 : Actions.PersonalEmailChangeV115) : Actions.EmailChangeV115; client.SendNoticeToAsync( action, null, StudioNotifyHelper.RecipientFromEmail(email, false), new[] { EMailSenderName }, null, TagValues.GreenButton(greenButtonText, confirmationUrl), new TagValue(CommonTags.Culture, user.GetCulture().Name)); }
public void GuestInfoActivation(UserInfo newUserInfo) { if (newUserInfo.IsActive) { throw new ArgumentException("User is already activated!"); } INotifyAction notifyAction; var footer = "social"; if (TenantExtra.Enterprise) { var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault; notifyAction = defaultRebranding ? Actions.EnterpriseGuestActivationV10 : Actions.EnterpriseWhitelabelGuestActivationV10; footer = null; } else if (TenantExtra.Opensource) { notifyAction = Actions.OpensourceGuestActivationV11; footer = "opensource"; } else { notifyAction = Actions.SaasGuestActivationV115; } var confirmationUrl = GenerateActivationConfirmUrl(newUserInfo); Func <string> greenButtonText = () => WebstudioNotifyPatternResource.ButtonAccept; client.SendNoticeToAsync( notifyAction, null, StudioNotifyHelper.RecipientFromEmail(newUserInfo.Email, false), new[] { EMailSenderName }, null, new TagValue(Tags.ActivateUrl, confirmationUrl), TagValues.GreenButton(greenButtonText, confirmationUrl), new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode()), new TagValue(CommonTags.Footer, footer)); }
public void GuestInfoAddedAfterInvite(UserInfo newUserInfo) { if (!CoreContext.UserManager.UserExists(newUserInfo.ID)) { return; } INotifyAction notifyAction; var analytics = string.Empty; var footer = "social"; if (TenantExtra.Enterprise) { var defaultRebranding = MailWhiteLabelSettings.Instance.IsDefault; notifyAction = defaultRebranding ? Actions.EnterpriseGuestWelcomeV10 : Actions.EnterpriseWhitelabelGuestWelcomeV10; footer = null; } else { notifyAction = Actions.SaasGuestWelcomeV10; var tenant = CoreContext.TenantManager.GetCurrentTenant(); analytics = StudioNotifyHelper.GetNotifyAnalytics(tenant.TenantId, notifyAction, false, false, false, true); } 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), new TagValue(CommonTags.Analytics, analytics)); }
public void UserInfoActivation(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.EnterpriseUserActivationV10 : Actions.EnterpriseWhitelabelUserActivationV10; footer = null; } else { notifyAction = Actions.SaasUserActivationV10; var tenant = CoreContext.TenantManager.GetCurrentTenant(); analytics = StudioNotifyHelper.GetNotifyAnalytics(tenant.TenantId, notifyAction, false, false, true, false); } 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)); }