This repository has been archived by the owner on Jan 19, 2021. It is now read-only.
/
UnifiedGroupPipeBind.cs
71 lines (63 loc) · 2.26 KB
/
UnifiedGroupPipeBind.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using OfficeDevPnP.Core.Entities;
using OfficeDevPnP.Core.Framework.Graph;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SharePointPnP.PowerShell.Commands.Base.PipeBinds
{
public class UnifiedGroupPipeBind
{
private readonly UnifiedGroupEntity _group;
private readonly String _groupId;
private readonly String _displayName;
public UnifiedGroupPipeBind()
{
}
public UnifiedGroupPipeBind(UnifiedGroupEntity group)
{
_group = group;
}
public UnifiedGroupPipeBind(String input)
{
Guid idValue;
if (Guid.TryParse(input, out idValue))
{
_groupId = input;
}
else
{
_displayName = input;
}
}
public UnifiedGroupEntity Group => (_group);
public String DisplayName => (_displayName);
public String GroupId => (_groupId);
public UnifiedGroupEntity GetGroup(string accessToken, bool includeClassification = false)
{
UnifiedGroupEntity group = null;
if (Group != null)
{
group = UnifiedGroupsUtility.GetUnifiedGroup(Group.GroupId, accessToken, includeClassification:includeClassification);
}
else if (!String.IsNullOrEmpty(GroupId))
{
group = UnifiedGroupsUtility.GetUnifiedGroup(GroupId, accessToken, includeClassification:includeClassification);
}
else if (!string.IsNullOrEmpty(DisplayName))
{
var groups = UnifiedGroupsUtility.ListUnifiedGroups(accessToken, DisplayName, includeSite: true, includeClassification:includeClassification);
if (groups == null || groups.Count == 0)
{
groups = UnifiedGroupsUtility.ListUnifiedGroups(accessToken, mailNickname: DisplayName, includeSite: true, includeClassification:includeClassification);
}
if (groups != null && groups.Any())
{
group = groups.FirstOrDefault();
}
}
return group;
}
}
}