Exemplo n.º 1
0
 private void ImportMembers(SCObjectSet objectSet, IImportContext context, PC.Executors.ISCObjectOperations exec, SchemaObjectCollection memberObjects, SchemaObjectBase grp)
 {
     if (this.IncludeMembers && objectSet.HasMembership)
     {
         var memberRelations = objectSet.Membership.FindAll(m => m.ContainerID == grp.ID && m.Status == SchemaObjectStatus.Normal);
         if (memberRelations.Count > 0 && memberObjects != null)
         {
             context.AppendLogFormat("正在试图添加{0}个群组成员\r\n", memberRelations.Count);
             foreach (var r in memberRelations)
             {
                 var user = (SCUser)(from m in memberObjects where m.ID == r.ID select m).FirstOrDefault();
                 if (user != null)
                 {
                     try
                     {
                         exec.AddUserToGroup(user, (SCGroup)grp);
                         context.AppendLogFormat("已经向群组{0}添加群组成员:{1}\r\n", ((SCGroup)grp).DisplayName, user.DisplayName);
                     }
                     catch (Exception ex)
                     {
                         context.AppendLogFormat("无法导入群组 {0} 的成员 {1}: {2}\r\n", ((SCGroup)grp).DisplayName, user.DisplayName, ex.Message);
                     }
                 }
                 else
                 {
                     context.AppendLogFormat("已跳过不存在的成员\r\n");
                 }
             }
         }
     }
 }