public static void ExecuteMethod_ValidateGroupContainerID(string groupId, GroupContainer groupContainer)
 {
     if(groupContainer == null)
         throw new ArgumentNullException("groupContainer");
     if(groupContainer.RelativeLocation != "grp/" + groupId + "/AaltoGlobalImpact.OIP/GroupContainer/default")
         throw new InvalidDataException("Mismatch in group container location relative to group ID");
 }
        public static void ExecuteMethod_UpdateAccountGroupSummaryContainers(string groupId, GroupContainer groupContainer, string[] accountIDs)
        {
            foreach (string accountID in accountIDs)
            {
                int retryCount = 3;
                VirtualOwner accountOwner = new VirtualOwner("acc", accountID);
                while (retryCount-- > 0)
                {
                    try
                    {
                        GroupSummaryContainer summaryContainer =
                            GroupSummaryContainer.RetrieveFromOwnerContent(accountOwner, "default");
                        var groupToUpdate =
                            summaryContainer.GroupCollection.CollectionContent.FirstOrDefault(grp => grp.ID == groupId);
                        if (groupToUpdate != null)
                        {
                            summaryContainer.GroupCollection.CollectionContent.Remove(groupToUpdate);
                            summaryContainer.GroupCollection.CollectionContent.Add(groupContainer.GroupProfile);
                            summaryContainer.StoreInformation(accountOwner);
                        }
                        break; // break while
                    }
                    catch
                    {

                    }
                }
            }
        }
        public static GroupContainer GetTarget_GroupInternalContainer(string groupID)
        {
            VirtualOwner owner          = new VirtualOwner("grp", groupID);
            var          groupContainer = GroupContainer.RetrieveFromOwnerContent(owner, "default");

            return(groupContainer);
        }
Пример #4
0
        public static GroupContainer GetTarget_GroupContainer(TBRGroupRoot groupRoot)
        {
            VirtualOwner groupOwner     = new VirtualOwner("grp", groupRoot.Group.ID);
            var          groupContainer = GroupContainer.RetrieveFromOwnerContent(groupOwner, "default");

            return(groupContainer);
        }
 public static Collaborator GetTarget_Collaborator(GroupContainer groupContainer, string collaboratorID)
 {
     var searchSequence =
         groupContainer.Collaborators.CollectionContent.Union(
             groupContainer.PendingCollaborators.CollectionContent);
     return
         searchSequence.FirstOrDefault(collaborator => collaborator.ID == collaboratorID);
 }
Пример #6
0
 internal static void Update_GroupContainer_Activities(GroupContainer groupContainer, ActivityCollection localCollection, ActivityCollection masterCollection)
 {
     localCollection.CollectionContent = masterCollection.CollectionContent;
     if (localCollection.OrderFilterIDList == null)
     {
         localCollection.OrderFilterIDList = new List <string>();
     }
 }
Пример #7
0
 public static void ExecuteMethod_RemoveCustomUIName(string customUiName, GroupContainer groupContainer)
 {
     var profile = groupContainer.GroupProfile;
     if (profile.CustomUICollection == null)
         profile.CustomUICollection = new ShortTextCollection();
     var customUICollection = groupContainer.GroupProfile.CustomUICollection;
     customUICollection.CollectionContent.RemoveAll(customUIEntry => customUIEntry.Content == customUiName);
 }
Пример #8
0
        public static void Execute(UpdateGroupContainersGroupMembershipParameters parameters)
        {
            PrepareParameters(parameters);
            AccountRootAndContainer[] AccountRootsAndContainers = UpdateGroupContainersGroupMembershipImplementation.GetTarget_AccountRootsAndContainers(parameters.GroupRoot);
            GroupContainer            GroupContainer            = UpdateGroupContainersGroupMembershipImplementation.GetTarget_GroupContainer(parameters.GroupRoot);

            UpdateGroupContainersGroupMembershipImplementation.ExecuteMethod_UpdateGroupContainerMembership(parameters.GroupRoot, AccountRootsAndContainers, GroupContainer);
            UpdateGroupContainersGroupMembershipImplementation.ExecuteMethod_StoreObjects(GroupContainer);
        }
Пример #9
0
        public static Collaborator GetTarget_Collaborator(GroupContainer groupContainer, string collaboratorID)
        {
            var searchSequence =
                groupContainer.Collaborators.CollectionContent.Union(
                    groupContainer.PendingCollaborators.CollectionContent);

            return
                (searchSequence.FirstOrDefault(collaborator => collaborator.ID == collaboratorID));
        }
        public static void ExecuteMethod_UpdateGroupContainerMembership(TBRGroupRoot groupRoot, AccountRootAndContainer[] accountRootsAndContainers, GroupContainer groupContainer)
        {
            string groupID = groupRoot.Group.ID;
            var collaborators = accountRootsAndContainers.
                Select(acctR => new
                                    {
                                        Account = acctR.AccountRoot.Account,
                                        AccountContainer = acctR.AccountContainer,
                                        Profile = acctR.AccountContainer.AccountModule.Profile,
                                        GroupRole =
                                    acctR.AccountRoot.Account.GroupRoleCollection.CollectionContent.First(
                                        role => role.GroupID == groupID)
                                    });
            var moderators =
                collaborators.Where(coll => TBCollaboratorRole.HasModeratorRights(coll.GroupRole.GroupRole)).ToArray();
            var pendingCollaborators =
                collaborators.Where(
                    coll => TBCollaboratorRole.IsRoleStatusValidMember(coll.GroupRole.RoleStatus) == false);
            var fullCollaborators = collaborators.Where(
                coll => TBCollaboratorRole.IsRoleStatusValidMember(coll.GroupRole.RoleStatus) == true);

            groupContainer.GroupProfile.Moderators.CollectionContent.Clear();
            groupContainer.GroupProfile.Moderators.CollectionContent.
                AddRange(moderators.
                             Select(mod =>
                                        {

                                            var moderator = Moderator.CreateDefault();
                                            moderator.ModeratorName = mod.Profile.FirstName + " " + mod.Profile.LastName;
                                            return moderator;
                                        }).OrderBy(mod => mod.ModeratorName));
            groupContainer.Collaborators.CollectionContent.Clear();
            groupContainer.Collaborators.CollectionContent.AddRange(
                fullCollaborators.Select(coll =>
                                             {
                                                 Collaborator collaborator = Collaborator.CreateDefault();
                                                 collaborator.AccountID = coll.Account.ID;
                                                 collaborator.CollaboratorName = coll.Profile.FirstName + " " +
                                                                                 coll.Profile.LastName;
                                                 collaborator.Role = coll.GroupRole.GroupRole;
                                                 return collaborator;
                                             })
                );
            groupContainer.PendingCollaborators.CollectionContent.Clear();
            groupContainer.PendingCollaborators.CollectionContent.AddRange(
                pendingCollaborators.Select(coll =>
                                                {
                                                    Collaborator collaborator = Collaborator.CreateDefault();
                                                    collaborator.AccountID = coll.Account.ID;
                                                    collaborator.CollaboratorName = coll.Profile.FirstName + " " +
                                                                                    coll.Profile.LastName;
                                                    collaborator.Role = coll.GroupRole.GroupRole;
                                                    return collaborator;
                                                })
                );
        }
Пример #11
0
 internal static void Update_GroupContainer_ImageGroupCollection(GroupContainer groupContainer, ImageGroupCollection localCollection, ImageGroupCollection masterCollection)
 {
     if (localCollection == null)
     {
         groupContainer.ImageGroupCollection = ImageGroupCollection.CreateDefault();
         localCollection = groupContainer.ImageGroupCollection;
     }
     localCollection.CollectionContent = masterCollection.CollectionContent;
     if (localCollection.OrderFilterIDList == null)
     {
         localCollection.OrderFilterIDList = new List <string>();
     }
 }
Пример #12
0
        public static void Execute(UpdateAccountContainersGroupMembershipParameters parameters)
        {
            PrepareParameters(parameters);
            GroupContainer        GroupContainer        = UpdateAccountContainersGroupMembershipImplementation.GetTarget_GroupContainer(parameters.GroupRoot);
            Group                 Group                 = UpdateAccountContainersGroupMembershipImplementation.GetTarget_Group(GroupContainer);
            TBRAccountRoot        AccountRoot           = UpdateAccountContainersGroupMembershipImplementation.GetTarget_AccountRoot(parameters.AccountID);
            AccountContainer      AccountContainer      = UpdateAccountContainersGroupMembershipImplementation.GetTarget_AccountContainer(parameters.AccountID);
            GroupSummaryContainer GroupSummaryContainer = UpdateAccountContainersGroupMembershipImplementation.GetTarget_GroupSummaryContainer(parameters.AccountID);

            UpdateAccountContainersGroupMembershipImplementation.ExecuteMethod_UpdateGroupSummaryContainerMemberships(parameters.GroupRoot, Group, AccountRoot, GroupSummaryContainer);
            UpdateAccountContainersGroupMembershipImplementation.ExecuteMethod_UpdateAccountContainerMemberships(parameters.GroupRoot, Group, GroupSummaryContainer, AccountRoot, AccountContainer);
            UpdateAccountContainersGroupMembershipImplementation.ExecuteMethod_StoreObjects(AccountContainer, GroupSummaryContainer);
        }
 public static void ExecuteMethod_SetCustomUIName(string customUiName, GroupContainer groupContainer)
 {
     var profile = groupContainer.GroupProfile;
     if (profile.CustomUICollection == null)
         profile.CustomUICollection = new ShortTextCollection();
     var customUICollection = groupContainer.GroupProfile.CustomUICollection;
     bool hasName = customUICollection.CollectionContent.Count(customUI => customUI.Content == customUiName) > 0;
     if (hasName)
         return;
     customUICollection.CollectionContent.Add(new ShortTextObject
         {
             Content = customUiName
         });
     customUICollection.CollectionContent.Sort((x, y) => String.Compare(x.Content, y.Content));
 }
 public static void ExecuteMethod_StoreObjects(GroupContainer groupContainer)
 {
     groupContainer.StoreInformation();
 }
 public static string[] GetTarget_AccountIDs(GroupContainer groupContainer)
 {
     return
         groupContainer.Collaborators.CollectionContent.Select(collaborator => collaborator.AccountID).ToArray();
 }
 public static void ExecuteMethod_StoreObjects(GroupContainer groupContainer)
 {
     groupContainer.StoreInformation();
 }
 public static void ExecuteMethod_StoreObjects(TBRGroupRoot groupRoot, GroupContainer groupContainer)
 {
     groupRoot.StoreInformation();
     groupContainer.StoreInformation();
 }
 public static void ExecuteMethod_SetGroupInitiatorAccess(TBRGroupRoot groupRoot, GroupContainer groupContainer)
 {
 }
 public static Group GetTarget_Group(GroupContainer groupContainer)
 {
     return groupContainer.GroupProfile;
 }
        public static void ExecuteMethod_UpdateGroupContainerMembership(TBRGroupRoot groupRoot, AccountRootAndContainer[] accountRootsAndContainers, GroupContainer groupContainer)
        {
            string groupID       = groupRoot.Group.ID;
            var    collaborators = accountRootsAndContainers.
                                   Select(acctR => new
            {
                Account          = acctR.AccountRoot.Account,
                AccountContainer = acctR.AccountContainer,
                Profile          = acctR.AccountContainer.AccountModule.Profile,
                GroupRole        =
                    acctR.AccountRoot.Account.GroupRoleCollection.CollectionContent.First(
                        role => role.GroupID == groupID)
            });
            var moderators =
                collaborators.Where(coll => TBCollaboratorRole.HasModeratorRights(coll.GroupRole.GroupRole)).ToArray();
            var pendingCollaborators =
                collaborators.Where(
                    coll => TBCollaboratorRole.IsRoleStatusValidMember(coll.GroupRole.RoleStatus) == false);
            var fullCollaborators = collaborators.Where(
                coll => TBCollaboratorRole.IsRoleStatusValidMember(coll.GroupRole.RoleStatus) == true);

            groupContainer.GroupProfile.Moderators.CollectionContent.Clear();
            groupContainer.GroupProfile.Moderators.CollectionContent.
            AddRange(moderators.
                     Select(mod =>
            {
                var moderator           = Moderator.CreateDefault();
                moderator.ModeratorName = mod.Profile.FirstName + " " + mod.Profile.LastName;
                return(moderator);
            }).OrderBy(mod => mod.ModeratorName));
            groupContainer.Collaborators.CollectionContent.Clear();
            groupContainer.Collaborators.CollectionContent.AddRange(
                fullCollaborators.Select(coll =>
            {
                Collaborator collaborator     = Collaborator.CreateDefault();
                collaborator.AccountID        = coll.Account.ID;
                collaborator.CollaboratorName = coll.Profile.FirstName + " " +
                                                coll.Profile.LastName;
                collaborator.Role = coll.GroupRole.GroupRole;
                return(collaborator);
            })
                );
            groupContainer.PendingCollaborators.CollectionContent.Clear();
            groupContainer.PendingCollaborators.CollectionContent.AddRange(
                pendingCollaborators.Select(coll =>
            {
                Collaborator collaborator     = Collaborator.CreateDefault();
                collaborator.AccountID        = coll.Account.ID;
                collaborator.CollaboratorName = coll.Profile.FirstName + " " +
                                                coll.Profile.LastName;
                collaborator.Role = coll.GroupRole.GroupRole;
                return(collaborator);
            })
                );
        }
Пример #21
0
 public static Group GetTarget_Group(GroupContainer groupContainer)
 {
     return(groupContainer.GroupProfile);
 }