// ************************************** // GetInviteModel // ************************************** private static InviteViewModel GetInviteModel(InviteViewModel model) { var user = Account.User(); var quotas = user.MyBalances(); model.NavigationLocation = new string[] { "Admin" }; model.InviteId = model.InviteId ?? Guid.Empty.ToString(); model.IsPlanInvitation = !user.IsSuperAdmin(); model.ShowInviteForm = !quotas.NumberOfInvitedUsers.IsAtTheLimit; model.ShowPlanMessage = user.IsSuperAdmin() || (quotas.NumberOfCatalogAdmins.Allowed.HasValue && quotas.NumberOfCatalogAdmins.Remaining > 0); model.ShowBalanceWidget = user.IsPlanOwner; return model; }
// ************************************** // SendInvites // ************************************** private void SendInvites(string[] recipients, string sender) { foreach (string recipient in recipients) { string address = recipient.ToLower().Trim(); if (address != "*****@*****.**") { var inviteId = UserManagementService.CreateNewInvitation(address); if ((inviteId != null) && (!inviteId.Equals(Guid.Empty))) { var inviteMsg = new InviteViewModel(); inviteMsg.NavigationLocation = new string[] { "Admin" }; inviteMsg.InviteId = inviteId.ToString(); inviteMsg.Sender = sender; inviteMsg.Recipient = address; inviteMsg.BaseUrl = SystemConfig.BaseUrl; inviteMsg.InviteUrl = String.Format("{0}/{1}", inviteMsg.BaseUrl, "Account/Register"); inviteMsg.InvitingUser = User.User(); //string inviteLink = String.Format("{0}", baseUrl); string subject = String.Format("{0} {1}", "WorldSongNet.com", //SiteProfileData.SiteProfile().CompanyName, SystemMessages.InvitationSubjectLine); string message = this.RenderViewToString("InviteMessage", inviteMsg); Mail.SendMail(sender, address, subject, message); UserEventLogService.LogUserEvent(UserActions.SentInvite); } } } }
public virtual ActionResult Invite(InviteViewModel model) { model = GetInviteModel(model); if (ModelState.IsValid) { string[] recipients = model.Recipients; if (recipients.Count() == 0) { ModelState.AddModelError("Recipient", "Please enter a valid email address"); this.FeedbackError("There was an error processing your invites..."); return View(model); } string sender = String.Format("{0} <{1}>", this.Friendly(), SystemConfig.AdminEmailAddress);//this.UserName()); // Configuration.Get("AdminAddress"); foreach (string recipient in recipients) { string address = recipient.ToLower().Trim(); if (!Regex.Match(address, @"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}").Success) { ModelState.AddModelError("Recipient", "'" + address + "' is not a valid email address"); this.FeedbackError("There was an error processing your invites..."); return View(model); } } SendInvites(recipients, sender); return View(Views.InviteComplete, model); } else { ModelState.AddModelError("", "There was an error processing your invites"); this.FeedbackError("There was an error processing your invites..."); return View(model); } }