Beispiel #1
0
        public EditGroupWindow(ChatGroupUiInfo group)
        {
            InitializeComponent();

            DwmDropShadow.DropShadowToWindow(this);

            DataContext = new EditGroupWindowVM(this, group);
        }
Beispiel #2
0
        public EditGroupWindowVM(IView view, ChatGroupUiInfo group)
        {
            try
            {
                _view         = view;
                _groupUiInfo  = group;
                _membersToAdd = new List <UiInfo>();

                Init();

                IsNewChanges = IsSavingProgress = false;
            }
            catch (Exception)
            {
            }
        }
Beispiel #3
0
        public bool AddUserToChatGroupContact(int chatGroupId, int participantId)
        {
            try
            {
                using (UserContext userContext = new UserContext())
                {
                    UserToGroupContact contact = new UserToGroupContact();

                    ChatGroup dbChatGroup = userContext.ChatGroups.Include("Participants").FirstOrDefault(chatGroup => chatGroup.Id == chatGroupId);
                    User      ownedFromDb = userContext.Users.FirstOrDefault(dbUser => dbUser.Id == participantId);

                    contact.ChatGroup = dbChatGroup;
                    contact.UserOwner = ownedFromDb;

                    if (userContext.Contacts.FirstOrDefault(c => ((c.UserOwnerId == participantId) && ((c as UserToGroupContact).ChatGroupId == chatGroupId))) != null)
                    {
                        return(false);
                    }

                    userContext.Contacts.Add(contact);
                    userContext.SaveChanges();

                    ChatGroupUiInfo groupInfo      = new ChatGroupUiInfo(dbChatGroup);
                    List <int>      userIds        = dbChatGroup.Participants.Select(c => c.UserOwnerId).ToList();
                    List <User>     usersFromGroup = userContext.Users.Where(u => userIds.Contains(u.Id)).ToList();

                    foreach (User userToNotify in usersFromGroup)
                    {
                        AddNewContactCallback(groupInfo, userToNotify);
                    }

                    return(true);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }