Beispiel #1
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);
        }