Exemplo n.º 1
0
        public void UpdateBasicGroupFullInfo(Chat chat, BasicGroup group, BasicGroupFullInfo fullInfo)
        {
            GetEntities(fullInfo.Description);
            DescriptionPanel.Visibility = string.IsNullOrEmpty(fullInfo.Description) ? Visibility.Collapsed : Visibility.Visible;

            ViewModel.Members = new SortedObservableCollection <ChatMember>(new ChatMemberComparer(ViewModel.ProtoService, true), fullInfo.Members);
        }
        public void Group_IterateGroups()
        {
            BasicGroup targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup groupAA     = new BasicGroup("AA", "AA");
            BasicGroup groupBB     = new BasicGroup("BB", "BB");
            BasicGroup groupCC     = new BasicGroup("CC", "CC");

            List <string> expectedIDs = new List <string>()
            {
                "CC", "BB", "AA"
            };

            targetGroup.AddGroup(groupCC);
            targetGroup.AddGroup(groupBB);
            targetGroup.AddGroup(groupAA);

            List <string> actualIds = new List <string>();

            foreach (IGroup group in targetGroup.Groups)
            {
                actualIds.Add(group.ID);
            }

            Assert.AreEqual(expectedIDs.Count, actualIds.Count);
            for (int i = 0; i < expectedIDs.Count; i++)
            {
                Assert.AreEqual(expectedIDs[i], actualIds[i]);
            }
        }
        public void Group_IterateProperties()
        {
            BasicGroup    targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicProperty propertyAA  = new BasicProperty("AA", "AA");
            BasicProperty propertyBB  = new BasicProperty("BB", "BB");
            BasicProperty propertyCC  = new BasicProperty("CC", "CC");

            List <string> expectedIDs = new List <string>()
            {
                "CC", "BB", "AA"
            };

            targetGroup.AddProperty(propertyCC);
            targetGroup.AddProperty(propertyBB);
            targetGroup.AddProperty(propertyAA);

            List <string> actualIds = new List <string>();

            foreach (IProperty property in targetGroup.Properties)
            {
                actualIds.Add(property.Definition.ID);
            }

            Assert.AreEqual(expectedIDs.Count, actualIds.Count);
            for (int i = 0; i < expectedIDs.Count; i++)
            {
                Assert.AreEqual(expectedIDs[i], actualIds[i]);
            }
        }
        public void Group_Creation_Valid()
        {
            BasicGroup group = new BasicGroup(TestConstants.anID, TestConstants.aName);

            Assert.AreEqual(TestConstants.anID, group.ID, false);
            Assert.AreEqual(TestConstants.aName, group.Name, false);
        }
        public void Group_Creation_Default()
        {
            BasicGroup group = new BasicGroup();

            // check the expected default values
            TestUtilities.checkDefaultGroup(group);
        }
Exemplo n.º 6
0
        public void UpdateBasicGroup(Chat chat, BasicGroup group)
        {
            Subtitle.Text = Locale.Declension("Members", group.MemberCount);

            GroupInvite.Visibility = group.Status is ChatMemberStatusCreator || (group.Status is ChatMemberStatusAdministrator administrator && administrator.CanInviteUsers) || group.EveryoneIsAdministrator ? Visibility.Visible : Visibility.Collapsed;

            // Unused:
            Verified.Visibility  = Visibility.Collapsed;
            UserPhone.Visibility = Visibility.Collapsed;
            Username.Visibility  = Visibility.Collapsed;

            DescriptionPanel.Visibility = Visibility.Collapsed;

            UserCommonChats.Visibility = Visibility.Collapsed;
            UserStartSecret.Visibility = Visibility.Collapsed;

            SecretLifetime.Visibility = Visibility.Collapsed;
            SecretHashKey.Visibility  = Visibility.Collapsed;

            GroupLeave.Visibility = Visibility.Collapsed;

            EventLog.Visibility   = Visibility.Collapsed;
            Admins.Visibility     = Visibility.Collapsed;
            Banned.Visibility     = Visibility.Collapsed;
            Restricted.Visibility = Visibility.Collapsed;
            Members.Visibility    = Visibility.Collapsed;
        }
        public BasicGroup AddGroupCard(int groupID, int cardStartPos, int cardPos)
        {
            //basic card creation of position, id, etc
            BasicGroup group = new BasicGroup();

            //hide the delete button if its All Contact group (which is not treated like a real group in the application)
            if (groupID == 1)
            {
                group.HideDeleteBtn();
                cardPos += cardStartPos;
            }

            group.Left = 1;
            group.Top  = cardPos;
            group.Name = "group" + groupID;

            var    matcher   = new CardMatcher();
            string groupName = matcher.MatchGroupID(groupID);

            //groups aren't data bound so their information has to be set to
            //the BasicGroup properties manually
            group.SetGroupInfo(groupID.ToString(), groupName);

            CurrentGroupShowing = groupID.ToString();

            GroupCards.Add(group);

            return(group);
        }
        }                                           //tracks if the database is being loaded

        public BasicGroup AddGroup(string groupName, List <ContactBasic> contactCards, int groupID, int cardStartPos, int cardPos)
        {
            groupID++;

            GroupList.Add(new Groups()
            {
                GroupID      = groupID,
                GroupName    = groupName,
                ContactCards = contactCards
            });

            //only write to database if this isn't the database being loaded
            if (DatabaseLoaded == false)
            {
                if (groupID != 1)   //and if it isn't the AllContact group
                {
                    db.AddGroupData(groupName, contactCards, groupID);
                }
            }

            BasicGroup group = AddGroupCard(groupID, cardStartPos, cardPos); //create group cards

            CurrentGroupShowing = Convert.ToString(groupID);                 //make first contact remaining in list the current contact shown (don't need to check for Any(), as there is always 1 group (All Contacts)

            GroupChanged = true;                                             //indicates that the groups need to be reloaded

            return(group);
        }
        public void Group_Name_Set()
        {
            BasicGroup group = new BasicGroup(TestConstants.anID, TestConstants.aName);

            group.Name = TestConstants.newName;

            Assert.AreEqual(TestConstants.newName, group.Name, false);
        }
        public void Group_ID_Set()
        {
            BasicGroup group = new BasicGroup(TestConstants.anID, TestConstants.aName);

            group.ID = TestConstants.newID;

            Assert.AreEqual(TestConstants.newID, group.ID, false);
        }
        public void Group_AddGroup()
        {
            BasicGroup targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup subgroup    = new BasicGroup("aa", "aa");

            targetGroup.AddGroup(subgroup);

            TestUtilities.checkForSingleItem(targetGroup.Groups, subgroup, "Groups");
        }
        public void Group_AddProperty()
        {
            BasicGroup    targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicProperty aProperty   = new BasicProperty(TestConstants.anID, TestConstants.aName);

            targetGroup.AddProperty(aProperty);

            TestUtilities.checkForSingleItem(targetGroup.Properties, aProperty, "Properties");
        }
Exemplo n.º 13
0
        public void UpdateBasicGroup(Chat chat, BasicGroup group)
        {
            Title.Text = Strings.Resources.ChannelMembers;

            AddNew.Content         = Strings.Resources.AddMember;
            AddNewPanel.Visibility = group.CanInviteUsers() ? Visibility.Visible : Visibility.Collapsed;

            Footer.Visibility = Visibility.Collapsed;
        }
Exemplo n.º 14
0
        public void UpdateBasicGroupFullInfo(Chat chat, BasicGroup group, BasicGroupFullInfo fullInfo)
        {
            ViewModel.InviteLink = fullInfo.InviteLink?.InviteLink;

            if (fullInfo.InviteLink == null)
            {
                ViewModel.ProtoService.Send(new CreateChatInviteLink(chat.Id, string.Empty, 0, 0, false));
            }
        }
Exemplo n.º 15
0
        public static bool CanPostMessages(this BasicGroup basicGroup)
        {
            if (basicGroup.Status == null)
            {
                return(false);
            }

            return(basicGroup.Status is ChatMemberStatusCreator || basicGroup.Status is ChatMemberStatusAdministrator administrator || basicGroup.Status is ChatMemberStatusMember);
        }
Exemplo n.º 16
0
        public void UpdateBasicGroupFullInfo(Chat chat, BasicGroup group, BasicGroupFullInfo fullInfo)
        {
            ViewModel.InviteLink = fullInfo.InviteLink;

            if (string.IsNullOrEmpty(fullInfo.InviteLink))
            {
                ViewModel.ProtoService.Send(new GenerateChatInviteLink(chat.Id));
            }
        }
Exemplo n.º 17
0
        public void UpdateBasicGroup(Chat chat, BasicGroup group)
        {
            ProfileHeader?.UpdateBasicGroup(chat, group);

            if (MediaFrame.Content is ChatSharedMediaPageBase sharedMedia)
            {
                sharedMedia.Header.UpdateBasicGroup(chat, group);
            }
        }
        public void Group_RemoveProperty_ByID()
        {
            BasicGroup    targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicProperty aProperty   = new BasicProperty(TestConstants.anID, TestConstants.aName);

            targetGroup.AddProperty(aProperty);
            targetGroup.RemoveProperty(TestConstants.anID);

            TestUtilities.checkEmpty(targetGroup.Properties, "Properties");
        }
        public void Group_RemoveGroup_ByID()
        {
            BasicGroup targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup subgroup    = new BasicGroup("aa", "aa");

            targetGroup.AddGroup(subgroup);
            targetGroup.RemoveGroup("aa");

            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }
        public void UpdateBasicGroup(Chat chat, BasicGroup group)
        {
            EventLog.Visibility = Visibility.Collapsed;
            AddNew.Visibility   = group.CanPromoteMembers() ? Visibility.Visible : Visibility.Collapsed;
            Footer.Visibility   = group.CanPromoteMembers() ? Visibility.Visible : Visibility.Collapsed;
            Footer.Text         = Strings.Resources.MegaAdminsInfo;

            HeaderPanel.Visibility = EventLog.Visibility == Visibility.Visible || AddNew.Visibility == Visibility.Visible
                ? Visibility.Visible
                : Visibility.Collapsed;
        }
Exemplo n.º 21
0
        public void UpdateBasicGroupFullInfo(Chat chat, BasicGroup group, BasicGroupFullInfo fullInfo)
        {
            ProfileHeader?.UpdateBasicGroupFullInfo(chat, group, fullInfo);

            if (MediaFrame.Content is ChatSharedMediaPageBase sharedMedia)
            {
                sharedMedia.Header.UpdateBasicGroupFullInfo(chat, group, fullInfo);
            }

            ViewModel.Members = new SortedObservableCollection <ChatMember>(new ChatMemberComparer(ViewModel.ProtoService, true), fullInfo.Members);
        }
        public static bool CanInviteUsers(this BasicGroup basicGroup)
        {
            if (basicGroup.Status == null)
            {
                return(false);
            }

            if (basicGroup.EveryoneIsAdministrator)
            {
                return(true);
            }

            return(basicGroup.Status is ChatMemberStatusCreator || basicGroup.Status is ChatMemberStatusAdministrator administrator && administrator.CanInviteUsers);
        }
        public void Group_RemoveGroup_NullID()
        {
            BasicGroup            targetGroup       = new BasicGroup(TestConstants.anID, TestConstants.aName);
            ArgumentNullException expectedException = null;

            try
            {
                targetGroup.RemoveGroup((string)null);
            }
            catch (ArgumentNullException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException);
            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }
Exemplo n.º 24
0
        public void UpdateBasicGroup(Chat chat, BasicGroup group)
        {
            Title            = Strings.Resources.GroupSettingsTitle;
            Subheader.Header = Strings.Resources.GroupTypeHeader;
            Subheader.Footer = Strings.Resources.MegaPrivateInfo;

            Public.Content  = Strings.Resources.MegaPublic;
            Private.Content = Strings.Resources.MegaPrivate;

            UsernameHelp.Footer    = Strings.Resources.MegaUsernameHelp;
            PrivateLinkHelp.Footer = Strings.Resources.MegaPrivateLinkHelp;



            ViewModel.Username = string.Empty;
            ViewModel.IsPublic = false;
        }
        public void Group_Name_SetWhitespace()
        {
            BasicGroup        group             = new BasicGroup(TestConstants.anID, TestConstants.aName);
            ArgumentException expectedException = null;

            try
            {
                group.Name = TestConstants.whitespaceOnly;
            }
            catch (ArgumentException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException, TestConstants.propName, TestConstants.paramName);
            Assert.AreEqual(TestConstants.aName, group.Name, false, "The Name should not change.");
        }
        public void Group_Creation_Invalid_NullName()
        {
            BasicGroup        group             = null;
            ArgumentException expectedException = null;

            try
            {
                group = new BasicGroup(TestConstants.anID, null);
            }
            catch (ArgumentException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException, TestConstants.propName, TestConstants.paramName);
            Assert.IsNull(group, "No group should be created.");
        }
        public void Group_Creation_Invalid_WhitespaceID()
        {
            BasicGroup        group             = null;
            ArgumentException expectedException = null;

            try
            {
                group = new BasicGroup(TestConstants.whitespaceOnly, TestConstants.aName);
            }
            catch (ArgumentException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException, TestConstants.propID, TestConstants.paramID);
            Assert.IsNull(group, "No group should be created.");
        }
        public void Group_AddGroup_Null()
        {
            BasicGroup            targetGroup       = new BasicGroup(TestConstants.anID, TestConstants.aName);
            ArgumentNullException expectedException = null;

            try
            {
                targetGroup.AddGroup(null);
            }
            catch (ArgumentNullException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException, TestConstants.propGroup, TestConstants.paramGroup);
            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }
        public void Group_RemoveGroup_NonexistentID()
        {
            BasicGroup           targetGroup       = new BasicGroup(TestConstants.anID, TestConstants.aName);
            KeyNotFoundException expectedException = null;

            try
            {
                targetGroup.RemoveGroup(TestConstants.anID);
            }
            catch (KeyNotFoundException e)
            {
                expectedException = e;
            }

            Assert.IsNotNull(expectedException, "KeyNotFoundException not thrown");
            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }
        public void Group_RemoveGroup_NullGroup()
        {
            BasicGroup            targetGroup       = new BasicGroup(TestConstants.anID, TestConstants.aName);
            ArgumentNullException expectedException = null;

            try
            {
                targetGroup.RemoveGroup((IGroup)null);
            }
            catch (ArgumentNullException e)
            {
                expectedException = e;
            }

            Assert.IsNotNull(expectedException, "ArgumentNullException not thrown");
            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }