public ActionResult MassMessages(bool isByRole, List<string> roleName, bool isMessage, string body, string subject, int minRank = 0, int maxRank = 0) { int maxUserRank = 1; var ranks = new UserRankService().GetAll(); if (ranks.Count > 0) maxUserRank = ranks.Max(n => n.Value.Rank); if (minRank > maxRank) { int temp = 0; temp = maxRank; maxRank = minRank; minRank = temp; } IEnumerable<IUser> users = null; if (isByRole) { users = UserService.GetUsers(roleName, 0, 0); } else { users = UserService.GetUsers(new List<string>(), minRank, maxRank); } int count = 0; if (isMessage) { foreach (var user in users) { Message message = Message.New(); message.MessageType = MessageType.CustomerService; message.SenderUserId = (long)BuildinMessageUserId.CustomerService; message.Sender = "客服消息"; if (DIContainer.Resolve<Authorizer>().Message(user.UserId)) { message.Receiver = user.DisplayName; message.ReceiverUserId = user.UserId; message.Body = body; bool value = messageService.Create(message); count++; } } } else { IEmailSettingsManager emailSettingsManager = DIContainer.Resolve<IEmailSettingsManager>(); EmailSettings emailSettings = emailSettingsManager.Get(); foreach (var user in users) { if (user != null) { try { MailMessage mail = new MailMessage(emailSettings.AdminEmailAddress, user.AccountEmail); mail.Subject = "客服消息"; mail.Body = body; mail.IsBodyHtml = false; mail.BodyEncoding = Encoding.UTF8; mail.From = new System.Net.Mail.MailAddress(emailSettings.AdminEmailAddress); mail.IsBodyHtml = false; mail.Sender = new System.Net.Mail.MailAddress(emailSettings.AdminEmailAddress); mail.Subject = subject; mail.SubjectEncoding = Encoding.UTF8; emailService.Enqueue(mail); count++; } catch (Exception ex) { string a = ex.Message; } } } } if (count > 0) return Json(new StatusMessageData(StatusMessageType.Success, string.Format("成功发送了{0}条{1}", count, isMessage ? "消息" : "邮件"))); return Json(new StatusMessageData(StatusMessageType.Error, string.Format("{0}发送失败了!", isMessage ? "消息" : "邮件"))); }
public ActionResult MassMessages() { //角色下拉列表 IEnumerable<Role> roles = roleService.GetRoles(); if (roles != null) { ViewData["Roles"] = roles.Select(n => new MenuItem { Text = n.FriendlyRoleName, Value = n.RoleName.ToString() }); } int maxUserRank = 1; var ranks = new UserRankService().GetAll(); if (ranks.Count > 0) maxUserRank = ranks.Max(n => n.Value.Rank); ViewData["maxUserRank"] = maxUserRank; return View(); }