Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added graph controls #2055

Merged
merged 209 commits into from
May 23, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
209 commits
Select commit Hold shift + click to select a range
9d382b0
added documentation for Graph controls
alexchx May 2, 2018
8d89db4
added graph controls
alexchx May 2, 2018
c6b703a
added project to solution
alexchx May 2, 2018
8d2dd59
1. removed graph project added previously
alexchx May 3, 2018
c2d35ed
fixed resource path issue
alexchx May 3, 2018
ed3f2f1
Fix some code warning for Graph controls.
CanvizTheodoreShi May 3, 2018
d52590b
fix two code warning for graph controls.
CanvizTheodoreShi May 3, 2018
af07883
fix aadlogin control client id and scopes property change issue
CanvizTheodoreShi May 3, 2018
178c881
Integrated AADLogin control to sample page.
CanvizTheodoreShi May 3, 2018
4f397d1
add sample for SharePointFiles
May 3, 2018
055efaa
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
May 3, 2018
8006b5d
trim white space of GraphAccessKey and DriveUrl
May 3, 2018
c7a108d
integrated People Picker to sample page
alexchx May 3, 2018
1588a93
a, Add sample page for Profile card control.
CanvizTheodoreShi May 3, 2018
910659a
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
alexchx May 3, 2018
3e6128c
merge
CanvizTheodoreShi May 3, 2018
1a8bc95
trim bound text
alexchx May 3, 2018
9895f4e
added ability to convert SP doc lib URL to drive URL
alexchx May 3, 2018
0c94d4d
fixed bind issue for GraphAccessToken
alexchx May 3, 2018
f8192c5
resolved warnings
alexchx May 3, 2018
d86e3c7
resolved warnings
alexchx May 3, 2018
f621dab
resolved warnings
alexchx May 3, 2018
fd0f895
resolved messages
alexchx May 3, 2018
fa2dce4
a, add theme colors for aadlogin and profilecard.
CanvizTheodoreShi May 4, 2018
b88cd39
merge
CanvizTheodoreShi May 4, 2018
b45c5b3
add AutomationProperties.Name for aadlogin control
CanvizTheodoreShi May 4, 2018
8cbd2d0
fix bugs and add comments
May 4, 2018
9544e06
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
May 4, 2018
215b0d0
added AutomationProperties.Name for people picker
alexchx May 4, 2018
a35109a
updated control icons
alexchx May 4, 2018
349a2f2
Add automation property for aadlogin control and profilecard control
CanvizTheodoreShi May 4, 2018
d8a1ca0
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
CanvizTheodoreShi May 4, 2018
df3a0ce
xaml style
May 4, 2018
f4f8d82
fixed the command binding issue for the delete item button
alexchx May 4, 2018
7cb2d53
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
alexchx May 4, 2018
a0fb21b
merge
May 4, 2018
1b74d99
removed custom colors and use high high contrasts themes instead
alexchx May 4, 2018
e92a0b8
adjusted code file for control sample
alexchx May 4, 2018
587f774
resolved warnings
alexchx May 4, 2018
bafaed4
run build/UpdateHeaders.bat to add headers
alexchx May 4, 2018
86779aa
Merge remote-tracking branch 'upstream/master'
alexchx May 4, 2018
133087f
1, Add gif and bmp formats for default image. 2, Change FileOpenPicke…
CanvizTheodoreShi May 7, 2018
d7bf8ab
Per naming conventions, change AADLogin to AadLogin
CanvizTheodoreShi May 7, 2018
bd1f561
Typo, remove the whitespace.
CanvizTheodoreShi May 7, 2018
1bb2c3b
Rename InitialPublicClientApplication => InitializePublicClientAppli…
CanvizTheodoreShi May 7, 2018
70f9af6
Update CurrentUserID and GraphAccessToken as public dependency prope…
CanvizTheodoreShi May 7, 2018
8849329
Simplify AadLoginCode.bind, associated signin/out event thru the XAML
CanvizTheodoreShi May 7, 2018
027ab5c
Add more helpful comment for ViewType
CanvizTheodoreShi May 7, 2018
91f4e22
rollback the guid for Microsoft.Toolkit.Parsers project
alexchx May 7, 2018
6df925b
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
alexchx May 7, 2018
2655d73
Invoke event trigger directly.
CanvizTheodoreShi May 7, 2018
f592503
Simplify xaml and code for aadlogin control.
CanvizTheodoreShi May 7, 2018
1a19a88
Code tuning for reusing GetTokenForAnotherUser
CanvizTheodoreShi May 7, 2018
55622da
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
CanvizTheodoreShi May 7, 2018
10a3038
Remove find control from AadLoginCode.bind
CanvizTheodoreShi May 7, 2018
c0e993a
fix filename issue for AadLoginControl
CanvizTheodoreShi May 7, 2018
d1766a6
Replace_graphAccessToken and _userId with control's readonly properties.
CanvizTheodoreShi May 7, 2018
c357cf7
Add null check for main button in AadLongin control
CanvizTheodoreShi May 7, 2018
26ede2e
Fix naming convention issue for profile sample page.
CanvizTheodoreShi May 7, 2018
c268c0c
add ProfileCard.Events.cs for Master/Details pattern.
CanvizTheodoreShi May 7, 2018
c12de7e
1. Rename SharePointFiles to SharePointFileList
May 7, 2018
8e9769c
add template part list
May 7, 2018
18f001b
merge
May 7, 2018
d6c6d3a
fix bug with wrong file name
May 7, 2018
81eaf9c
People Picker Code cleanup
imnista May 7, 2018
50e0643
Clean up code
imnista May 7, 2018
a0ec9c2
Replace to template binding and fix a few issues for AadLogin control.
CanvizTheodoreShi May 7, 2018
376358f
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
CanvizTheodoreShi May 7, 2018
51ddf6d
Merge branch 'master' into master
nmetulev May 8, 2018
cbdad68
updated the icons to semi-transparent
alexchx May 8, 2018
ca88d6f
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
alexchx May 8, 2018
269a3e9
Change to inherit button for AadLogin control
CanvizTheodoreShi May 8, 2018
d5103e4
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
CanvizTheodoreShi May 8, 2018
b55d6d3
changed build action to content
alexchx May 8, 2018
2b33893
add VisualStates and TemplatePart declaration
May 8, 2018
150794b
create long extension to transform file size
May 9, 2018
d31c691
updated placeholder to avoid confusing
alexchx May 10, 2018
9dfb530
added link to MS article
alexchx May 10, 2018
766d254
clarify the user id property
alexchx May 10, 2018
5adb8de
run method async without blocking UI thread
alexchx May 10, 2018
8f9772c
updated default value
alexchx May 10, 2018
2c376fc
updated Binding to TemplateBinding, simplified the XAML
alexchx May 10, 2018
97eae65
Implement AadAuthenticationManager to sharing graph client for graph…
CanvizTheodoreShi May 10, 2018
c31ffdd
code merge.
CanvizTheodoreShi May 10, 2018
3368487
Remove graph access token.
CanvizTheodoreShi May 10, 2018
bddf171
removed button border
alexchx May 10, 2018
703f567
merge code
alexchx May 10, 2018
59ce7fd
fixed code merge issue
alexchx May 10, 2018
d004202
People Picker bug fix.
imnista May 10, 2018
d04ab83
excluded failure for code type "ResourceNotFound" when request user p…
alexchx May 10, 2018
bab216c
updated comments
alexchx May 10, 2018
8169678
resolved warnings
alexchx May 10, 2018
ad55efe
fix bug of no uploading message
May 10, 2018
2f6e05d
simplified xaml for visibility bindings
alexchx May 10, 2018
c90b211
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
alexchx May 10, 2018
1a03127
Baased on AadAuthenticationManager to re-implement AadLogin control.
CanvizTheodoreShi May 10, 2018
dbf851d
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
CanvizTheodoreShi May 10, 2018
4f21fa2
run build/UpdateHeaders.bat for new source files
alexchx May 11, 2018
f08e062
merge code
alexchx May 11, 2018
afaf203
updated file size conversion to handle large sizes
alexchx May 11, 2018
157e940
Rename Microsoft.Toolkit.Uwp.UI.Controls/Graph/AADLogin/AADLogin.Even…
CanvizTheodoreShi May 11, 2018
698dab7
Rename Microsoft.Toolkit.Uwp.UI.Controls/Graph/AADLogin/AADLogin.Prop…
CanvizTheodoreShi May 11, 2018
4b3da09
Rename Microsoft.Toolkit.Uwp.UI.Controls/Graph/AADLogin/AADLogin.cs t…
CanvizTheodoreShi May 11, 2018
b86be8c
Rename Microsoft.Toolkit.Uwp.UI.Controls/Graph/AADLogin/AADLogin.xaml…
CanvizTheodoreShi May 11, 2018
0bf2ed3
Rename Microsoft.Toolkit.Uwp.UI.Controls/Graph/AADLogin/SignInEventAr…
CanvizTheodoreShi May 11, 2018
d744f07
Rename Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AADLogin/AADLoginC…
CanvizTheodoreShi May 11, 2018
384f582
Rename Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AADLogin/AADLoginP…
CanvizTheodoreShi May 11, 2018
6e53bc2
Rename Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AADLogin/AADLoginP…
CanvizTheodoreShi May 11, 2018
e519e66
Rename Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AADLogin/AADLoginX…
CanvizTheodoreShi May 11, 2018
d30cc72
Rename Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AADLogin/AadLogin/…
CanvizTheodoreShi May 11, 2018
5c735cc
Delete AADLogin.png
CanvizTheodoreShi May 11, 2018
324dbbd
Add files via upload
CanvizTheodoreShi May 11, 2018
474df2b
Fix auth issue for AadAuthenticationManager.
CanvizTheodoreShi May 11, 2018
e901081
sharepoint files changes
alexchx May 11, 2018
b7d8f2b
update control in UI thread
alexchx May 11, 2018
72ff224
show details pane when selected
alexchx May 11, 2018
7682eef
added public dependency properties to sample page
alexchx May 11, 2018
4cda6e8
update code.bind
alexchx May 11, 2018
92e71ec
Fix auth issue when sign in with another user.
CanvizTheodoreShi May 11, 2018
28697eb
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
CanvizTheodoreShi May 11, 2018
e46e1fd
Rename AADLogin.md to AadLogin.md
alexchx May 11, 2018
6719367
renamed file
alexchx May 11, 2018
fd0d80d
updated the pamarater
alexchx May 11, 2018
7bfd3d2
revised docs
alexchx May 11, 2018
f46f591
fixed link issue
alexchx May 11, 2018
2d35f1c
revised docs
alexchx May 11, 2018
953ce91
Merge branch 'master' into master
OGcanviz May 11, 2018
9a1c917
Clean up code
imnista May 14, 2018
048eac8
1. move int64 extension to control namespace
May 14, 2018
730a2e7
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
May 14, 2018
1d98e59
remove command binding from xaml
May 14, 2018
b67a932
naming changes
alexchx May 14, 2018
32958fe
added "windows community toolkit" to keywords in docs
alexchx May 14, 2018
343948f
Fix issue "The application called an interface that was marshalled f…
CanvizTheodoreShi May 15, 2018
3fc7fc9
Replace DisplayModeConverter with DataTemplate for ProfileCard control.
CanvizTheodoreShi May 15, 2018
db0ea24
fix typo issue for RefreshControlVisibility.
CanvizTheodoreShi May 15, 2018
73659a3
Merge branch 'master' into master
nmetulev May 15, 2018
38f0e63
run UpdateHeaders.bat
alexchx May 16, 2018
874d233
People Picker
imnista May 16, 2018
dd9fae2
auto-convert to drive URL if SharePoint URL is specified
alexchx May 17, 2018
c52d43c
Optimize binding for graph controls, and fix a few document issues.
CanvizTheodoreShi May 17, 2018
3185dd4
merge code.
CanvizTheodoreShi May 17, 2018
6c0f5ee
Replace Visibility type with Boolean type for AadAuthControl
CanvizTheodoreShi May 17, 2018
a44643e
Fix sign another user issue for AadAuthManager.
CanvizTheodoreShi May 17, 2018
5b6bc58
fixed data load issue
alexchx May 17, 2018
3aa67bc
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
alexchx May 17, 2018
14ce2eb
resolved warnings
alexchx May 17, 2018
b867aaa
Merge branch 'master' into master
azchohfi May 18, 2018
f154f02
Merge branch 'master' into master
nmetulev May 18, 2018
788be49
Replace DelegateCommand with event handler
May 21, 2018
aa73323
Inherit MicrosoftGraphService for AadAuthenticationManager
CanvizTheodoreShi May 21, 2018
1f39793
code optimization
alexchx May 21, 2018
ccf2237
Make some inherited properties to read-only for AadAuthenticationMana…
CanvizTheodoreShi May 21, 2018
65d4383
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
CanvizTheodoreShi May 21, 2018
57750a8
created graph controls project and moved graph controls
nmetulev May 21, 2018
26c3bf8
cleaned up solution
nmetulev May 21, 2018
553db21
cleaned up
nmetulev May 21, 2018
65ce226
Merge pull request #1 from OGcanviz/nmetulev/graphcontrols
alexchx May 22, 2018
d360594
Replace GetGraphServiceClientAsync with GraphProvider for graph contr…
CanvizTheodoreShi May 22, 2018
d9e4571
updated old references with new graph project
nmetulev May 22, 2018
429b139
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
nmetulev May 22, 2018
ed8b1c4
1, fix aadLogin doc issue. 2, fix mutiple click issue for aadlogin co…
CanvizTheodoreShi May 22, 2018
569f7c7
path changes
alexchx May 22, 2018
8d10d20
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
alexchx May 22, 2018
c1b8fb7
Add MicrosoftGraphServiceAdapter for wrapper MicrosoftGraphService
CanvizTheodoreShi May 22, 2018
49aad78
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
CanvizTheodoreShi May 22, 2018
8845689
Remove white space issue for SharePointFileList control.
CanvizTheodoreShi May 22, 2018
5a82bd6
revised docs
alexchx May 22, 2018
30690cf
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
alexchx May 22, 2018
f83a3e8
revised docs
alexchx May 22, 2018
97aeaa8
Merge branch 'master' into master
OGcanviz May 22, 2018
bce896d
Merge branch 'master' into master
nmetulev May 22, 2018
59ff192
Merge branch 'master' into master
nmetulev May 22, 2018
0e80f84
removed AadAuthenitcationManager
nmetulev May 22, 2018
c14d0d6
cleaned up microsoft graph service properties
nmetulev May 23, 2018
cd6c95b
Merge branch 'master' into master
OGcanviz May 23, 2018
85ec6c9
Merge branch 'master' into nmetulev/graphcontrols-test
nmetulev May 23, 2018
466960b
Merge branch 'master' into master
nmetulev May 23, 2018
8722d78
Fix sign-in text padding style issue for AadLogin control.
CanvizTheodoreShi May 23, 2018
6df1212
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
CanvizTheodoreShi May 23, 2018
19d5b42
Merge branch 'master' into nmetulev/graphcontrols-test
nmetulev May 23, 2018
d9d7929
Merge branch 'nmetulev/graphcontrols-test'
alexchx May 23, 2018
b3c3043
revised docs for the MicrosoftGraphService changes
alexchx May 23, 2018
903da77
Fix infinite loop issue in some case.
CanvizTheodoreShi May 23, 2018
79d08ec
Add a logic to simply cache ClientId for each graph control.
CanvizTheodoreShi May 23, 2018
7345549
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
alexchx May 23, 2018
c759a4a
Per michael-hawker's suggestion, modify scopes header for avoiding co…
CanvizTheodoreShi May 23, 2018
cdcde66
code optimization
alexchx May 23, 2018
2c73a74
code optimization
alexchx May 23, 2018
39445a9
support for sign in as another user
nmetulev May 23, 2018
63f5d0e
Merge pull request #4 from OGcanviz/nmetulev/graphcontrols-test
alexchx May 23, 2018
730269d
reset the current user when it's successful to sign in as another user
alexchx May 23, 2018
43d333c
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
CanvizTheodoreShi May 23, 2018
a4b7411
Use TemplateBinding for Background, BorderThickness/Brush, and Paddin…
CanvizTheodoreShi May 23, 2018
dcb0a8c
Change PeoplePicker null check logic
imnista May 23, 2018
387748d
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
imnista May 23, 2018
399ecfb
1. add current path
May 23, 2018
f5d337b
merged
May 23, 2018
13aec2c
fix bugs
May 23, 2018
7cacd14
People Picker contorl code clean
imnista May 23, 2018
05f7dd9
People Picker apply the converter
imnista May 23, 2018
50fa26b
fix bugs
May 23, 2018
f728329
Merge branch 'master' of https://github.com/OGcanviz/UWPCommunityToolkit
May 23, 2018
778722b
format
May 23, 2018
a299bfc
fix bugs
May 23, 2018
3160f97
People Picker bug fix
imnista May 23, 2018
055f3bf
include drive name in the path
alexchx May 23, 2018
d9be482
Merge branch 'master' of https://github.com/OGcanviz/WindowsCommunity…
alexchx May 23, 2018
087a9c2
code optimization
alexchx May 23, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Microsoft.Toolkit.Services/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@
// ******************************************************************

using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("Microsoft.Toolkit.Uwp.Services")]
[assembly:InternalsVisibleTo("Microsoft.Toolkit.Uwp.Services")]
[assembly:InternalsVisibleTo("Microsoft.Toolkit.Uwp.UI.Controls.Graph")]
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

using System;
using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Graph;
using Microsoft.Identity.Client;
Expand All @@ -24,11 +25,18 @@ namespace Microsoft.Toolkit.Services.MicrosoftGraph
/// </summary>
public class MicrosoftGraphService
{
private readonly SemaphoreSlim _readLock = new SemaphoreSlim(1, 1);

/// <summary>
/// Gets or sets Authentication instance.
/// </summary>
internal MicrosoftGraphAuthenticationHelper Authentication { get; set; }

/// <summary>
/// Event raised when user logs in our out.
/// </summary>
public event EventHandler IsAuthenticatedChanged;

/// <summary>
/// Gets or sets store a reference to an instance of the underlying data provider.
/// </summary>
Expand All @@ -49,10 +57,27 @@ public class MicrosoftGraphService
/// </summary>
protected bool IsInitialized { get; set; }

private bool _isAuthenticated;

/// <summary>
/// Gets or sets a value indicating whether user is connected.
/// </summary>
protected bool IsConnected { get; set; }
public bool IsAuthenticated
{
get
{
return _isAuthenticated;
}

protected set
{
if (_isAuthenticated != value)
{
_isAuthenticated = value;
IsAuthenticatedChanged?.Invoke(this, EventArgs.Empty);
}
}
}

/// <summary>
/// Gets or sets AppClientId.
Expand Down Expand Up @@ -175,6 +200,10 @@ public virtual Task<bool> Logout()
{
throw new InvalidOperationException("Microsoft Graph not initialized.");
}

IsAuthenticated = false;
User = null;

#if WINRT
var authenticationModel = AuthenticationModel.ToString();
return Authentication.LogoutAsync(authenticationModel);
Expand All @@ -190,7 +219,6 @@ public virtual Task<bool> Logout()
/// <returns>Returns success or failure of login attempt.</returns>
public virtual async Task<bool> LoginAsync(string loginHint = null)
{
IsConnected = false;
if (!IsInitialized)
{
throw new InvalidOperationException("Microsoft Graph not initialized.");
Expand All @@ -213,11 +241,10 @@ public virtual async Task<bool> LoginAsync(string loginHint = null)

if (string.IsNullOrEmpty(accessToken))
{
return IsConnected;
IsAuthenticated = false;
return IsAuthenticated;
}

IsConnected = true;

#if WINRT
User = new MicrosoftGraphUserService(GraphProvider);
#else
Expand All @@ -239,7 +266,85 @@ public virtual async Task<bool> LoginAsync(string loginHint = null)
User.InitializeEvent();
}

return IsConnected;
IsAuthenticated = true;
return IsAuthenticated;
}

/// <summary>
/// Tries to log in user if not already loged in
/// </summary>
/// <returns>true if service is already loged in</returns>
internal async Task<bool> TryLoginAsync()
{
if (!IsInitialized)
{
return false;
}

if (IsAuthenticated)
{
return true;
}

try
{
await _readLock.WaitAsync();
await LoginAsync();
}
catch (MsalServiceException ex)
{
// Swallow error in case of authentication cancellation.
if (ex.ErrorCode != "authentication_canceled"
&& ex.ErrorCode != "access_denied")
{
throw ex;
}
}
finally
{
_readLock.Release();
}

return IsAuthenticated;
}

internal async Task<bool> ConnectForAnotherUserAsync()
{
if (!IsInitialized)
{
throw new InvalidOperationException("Microsoft Graph not initialized.");
}

try
{
var publicClientApplication = new PublicClientApplication(AppClientId);
AuthenticationResult result = await publicClientApplication.AcquireTokenAsync(DelegatedPermissionScopes);

var signedUser = result.User;

foreach (var user in publicClientApplication.Users)
{
if (user.Identifier != signedUser.Identifier)
{
publicClientApplication.Remove(user);
}
}

await LoginAsync();

return true;
}
catch (MsalServiceException ex)
{
// Swallow error in case of authentication cancellation.
if (ex.ErrorCode != "authentication_canceled"
&& ex.ErrorCode != "access_denied")
{
throw ex;
}
}

return false;
}

/// <summary>
Expand Down
Loading