public bool SendMsg(int sender, string ToMember, string subject, string toName, string content) { List<int> recipients = new List<int>(); string[] ToMembers = ToMember.Split(','); BLL.Message msg = new BLL.Message(); msg.AddNew(); msg.Body = content; msg.SenderID = sender; msg.Subject = subject; msg.ToMembers = toName; msg.Save(); MemberMessage memberMsg = new MemberMessage(); //add to member sent items memberMsg.AddNew(); memberMsg.MessageID = msg.ID; memberMsg.IsRead = true; foreach (string item in ToMembers) { if (!string.IsNullOrEmpty(item)) { int recipientID = Convert.ToInt32(item); // check if friend don't block sender BlockedMembers bllBlocked = new BlockedMembers(); bllBlocked.Where.MemberID.Value = recipientID; bllBlocked.Where.BlockID.Value = sender; bllBlocked.Query.Load(); bool cansend = !(bllBlocked.RowCount > 0); if (recipientID > 0 && !recipients.Contains(recipientID) && cansend) // cansend - check if friend don't block sender { recipients.Add(recipientID); memberMsg.AddNew(); memberMsg.MemberID = recipientID; memberMsg.MessageID = msg.ID; } else { recipientID = recipientID * -1; if (Enum.IsDefined(typeof(Helper.Enums.AdminMailAddressAlias), recipientID)) { Member aliasMembers = new Member(); aliasMembers.GetByAliase((Helper.Enums.AdminMailAddressAlias)recipientID); do { if (!recipients.Contains(aliasMembers.MemberID)) { recipients.Add(aliasMembers.MemberID); memberMsg.AddNew(); memberMsg.MemberID = aliasMembers.MemberID; memberMsg.MessageID = msg.ID; } } while (aliasMembers.MoveNext()); } } } } memberMsg.Save(); if (recipients.Count > 0) { NotificationHub notifications = new NotificationHub(); for (int i = 0; i < recipients.Count; i++) { notifications.SendMailNotifications(recipients[i]); } } return true; }
public void toggleBlockMember(int mid, bool block) { try { BlockedMembers blockedMembers = new BlockedMembers(); blockedMembers.Where.BlockID.Value = mid; blockedMembers.Where.MemberID.Value = BLL.Member.CurrentMemberID; if (blockedMembers.Query.Load()) { if (!block) { blockedMembers.DeleteAll(); blockedMembers.Save(); } } else { if (block) { blockedMembers.AddNew(); blockedMembers.MemberID = BLL.Member.CurrentMemberID; blockedMembers.BlockID = mid; blockedMembers.CreateDate = DateTime.Now; blockedMembers.Save(); BLL.Member bllMember = new BLL.Member(); bllMember.LoadByPrimaryKeyWithTypeSpec(mid); var member = bllMember.DefaultView.Table.AsEnumerable().Select(m => new { MemberID = m[Member.ColumnNames.MemberID], Name = m[Member.ColumnNames.Name], TypeSpecID = m["MemberTypeSpecID"], ProfilePic = (m[Member.ColumnNames.ProfilePic] == DBNull.Value ? defaultImg : m[Member.ColumnNames.ProfilePic]), IsOnline = m[Member.ColumnNames.IsOnLine], StatusMsg = m[Member.ColumnNames.StatusMsg], Status = Helper.EnumUtil.ParseEnum<Helper.Enums.MemberStatus>(Helper.TypeConverter.ToInt32(m[Member.ColumnNames.Status])).ToString().ToLower(), } ).FirstOrDefault(); SetContentResult(member); } } IHubContext _Rcontext = GlobalHost.ConnectionManager.GetHubContext<ChatRoomHub>(); var blocked = ChatRoomHub.ConnectedUsers.FirstOrDefault(u => u.MemberID == mid); if (blocked != null) { _Rcontext.Clients.Client(blocked.ConnectionId).toggleBlockedFromMember(new { MemberID = BLL.Member.CurrentMemberID }, block); } } catch { } }