Ejemplo n.º 1
0
        public static IEnumerable <MessageInfo> GetMessages(string userId, string senderId)
        {
            IEnumerable <Message> messageList;

            if (!UserBL.GetUsers().ToList().Exists(u => u.Email == senderId))
            {
                var sender = GroupBL.getGroupInternal(senderId);
                messageList = MessageDAL.GetSenderGroupMessages(userId, sender.Id);
            }
            else
            {
                var sender = UserBL.GetUserWithEmail(senderId);
                messageList = MessageDAL.GetSenderMessages(userId, sender.Id).ToList().FindAll(m => m.Group == null);
            }


            var messageInfoList = new List <MessageInfo>();

            foreach (Message m in messageList)
            {
                messageInfoList.Add(createMessageInfo(m));
            }

            return(messageInfoList);
        }
Ejemplo n.º 2
0
        public static void RemoveUserFromGroup(UserInfo userInfo, GroupInfo groupInfo)
        {
            var user = GetUserWithEmail(userInfo.Email);
            var ug   = user.UserGroups.ToList().Find(ug => ug.GroupId == groupInfo.Id);

            UserGroupBL.RemoveUserGroup(ug);
            var group = GroupBL.GetGroup(groupInfo.Id);

            if (GroupBL.isEmpty(group))
            {
                GroupBL.RemoveGroup(group);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Checks if valid message and reciver
        /// </summary>
        /// <param name="messageInfo"></param>
        public static Boolean AddMessage(MessageInfo messageInfo)
        {
            var messages = new List <Message>();
            var recivers = messageInfo.ReceiverId.Split("; ");
            var users    = UserBL.GetUsers();
            var groups   = GroupBL.GetGroupsInternal();

            recivers = recivers.Distinct().ToArray();

            foreach (var r in recivers)
            {
                //recivers = recivers.Distinct().ToList();
                if (r.Equals(""))
                {
                    continue;
                }
                ///Check if it's a group and it exists
                if (groups.ToList().Exists(ug => ug.UserGroups.ToList().Exists(g => g.Group.Name.Equals(r))))
                {
                    var currentG = groups.ToList().Find(g => g.Name.Equals(r));
                    var sender   = UserBL.GetUser(messageInfo.SenderId);
                    foreach (var rg in currentG.UserGroups)
                    {
                        var reciver = rg.UserId;
                        if (messageInfo.SenderId.Equals(reciver))
                        {
                            continue;
                        }
                        //if (messages.Exists(m => m.ReciverId.Equals(rg.UserId)))
                        //continue;

                        var title = messageInfo.Title + " [" + sender.Email + "]";
                        messages.Add(createMessage(messageInfo, reciver, title, currentG));
                    }
                }
                ///Checks if it's a user and it exits
                else if (users.ToList().Exists(u => u.Email.Equals(r)))
                {
                    var reciver = UserBL.GetUserWithEmail(r).Id;
                    if (messageInfo.SenderId.Equals(reciver))
                    {
                        continue;
                    }
                    if (messages.Exists(m => m.ReciverId.Equals(reciver)))
                    {
                        continue;
                    }
                    messages.Add(createMessage(messageInfo, reciver));
                }
                else
                {
                    continue;
                }
            }

            //If threre are no recipients, return false
            if (messages.Count == 0)
            {
                return(false);
            }

            MessageDAL.AddMessageToDB(messages);
            return(true);
        }