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); }
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"); }
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; }
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)); } }
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); }
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)); } }
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; }
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"); }
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"); }