示例#1
0
        public IActionResult CurrentUser()
        {
            Devon4NetLogger.Debug("Executing CurrentUser from controller AuthController");
            //Get claims
            var token = Request.Headers["Authorization"].ToString().Replace($"{AuthConst.AuthenticationScheme} ", string.Empty);

            if (string.IsNullOrEmpty(token))
            {
                return(Unauthorized());
            }

            var userClaims = JwtHandler.GetUserClaims(token).ToList();

            // Return result with claims values
            var result = new CurrentUserResponse
            {
                Id            = JwtHandler.GetClaimValue(userClaims, ClaimTypes.NameIdentifier),
                UserName      = JwtHandler.GetClaimValue(userClaims, ClaimTypes.Name),
                CorporateInfo = new List <CorporateBasicInfo> {
                    new CorporateBasicInfo {
                        Id = ClaimTypes.Role, Value = JwtHandler.GetClaimValue(userClaims, ClaimTypes.Role),
                    }
                }
            };

            return(Ok(result));
        }
 /// <summary>Constructor</summary>
 /// <param name="client">Spotify Sdk Client</param>
 /// <param name="response">Current User Response</param>
 public AddPlaylistDialogViewModel(ISpotifySdkClient client,
                                   CurrentUserResponse response) :
     base(client, new AddPlaylistViewModel(response))
 {
     // Commands
     PrimaryCommand = new GenericCommand <AddPlaylistViewModel>(AddPlaylist);
 }
示例#3
0
 /// <summary>
 /// Set Current User Extended Properties
 /// </summary>
 /// <param name="client">Spotify Sdk Client</param>
 /// <param name="response">Current User Response</param>
 public static void SetCurrentUserExtended(this ISpotifySdkClient client, CurrentUserResponse response)
 {
     if (response != null)
     {
         client.CurrentUser = response;
     }
 }
示例#4
0
        public async Task InvokeWithNullCurrentUserReturnsNull()
        {
            // Arrange
            var appSettings = new AppSettings
            {
                Splitwise = new Splitwise
                {
                    ConsumerKey            = "consumerKey",
                    ConsumerSecret         = "consumerSecret",
                    FriendEmail            = "friendEmail",
                    TransactionsDatedAfter = new DateTimeOffset()
                },
                Ynab = new Ynab
                {
                    PersonalAccessToken  = "personalAccessToken",
                    BudgetName           = "budgetName",
                    SplitwiseAccountName = "splitwiseAccountName"
                }
            };

            var expectedUser = new CurrentUserResponse();

            _splitwiseClient.GetCurrentUser().Returns(expectedUser);

            // Act
            _sut = new GetSplitwiseInfoOperation(_logger, _splitwiseClient);
            var result = await _sut.Invoke(appSettings);

            // Assert
            Assert.Null(result);
        }
示例#5
0
 /// <summary>
 /// Attach Get Current User Commands
 /// </summary>
 /// <param name="client">Spotify Sdk Client</param>
 /// <param name="response">Current User Response</param>
 public static void AttachGetCurrentUserCommands(
     this ISpotifySdkClient client,
     CurrentUserResponse response)
 {
     if (client.Config.IsAttachGetCurrentUserCommands && response != null)
     {
         // Current User Command
         if (client.CommandActions.CurrentUser != null)
         {
             response.Command = new GenericCommand <CurrentUserResponse>(
                 client.CommandActions.CurrentUser);
         }
     }
 }
示例#6
0
        public async Task InvokeWithNullExpensesReturnsExpected()
        {
            // Arrange
            var appSettings = new AppSettings
            {
                Splitwise = new Splitwise
                {
                    ConsumerKey            = "consumerKey",
                    ConsumerSecret         = "consumerSecret",
                    FriendEmail            = "friendEmail",
                    TransactionsDatedAfter = new DateTimeOffset()
                },
                Ynab = new Ynab
                {
                    PersonalAccessToken  = "personalAccessToken",
                    BudgetName           = "budgetName",
                    SplitwiseAccountName = "splitwiseAccountName"
                }
            };

            var expectedUser = new CurrentUserResponse {
                User = new User {
                    Id = 1, FirstName = "firstName"
                }
            };

            _splitwiseClient.GetCurrentUser().Returns(expectedUser);

            var expectedFriends = new FriendsResponse
            {
                Friends = new List <FriendModel> {
                    new() { Email = "friendEmail", FirstName = "friendName", Id = 2 }
                }
            };

            _splitwiseClient.GetFriends().Returns(expectedFriends);

            var expectedExpenses = new ExpensesResponse();

            _splitwiseClient
            .GetExpenses(friendId: 2, datedAfter: appSettings.Splitwise.TransactionsDatedAfter, limit: 0)
            .Returns(expectedExpenses);

            // Act
            _sut = new GetSplitwiseInfoOperation(_logger, _splitwiseClient);
            var result = await _sut.Invoke(appSettings);

            // Assert
            Assert.Null(result);
        }
        public async Task <CurrentUserResponse> CurrentUser()
        {
            var currentUserNameClaim = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier);
            var currentUser          = await _userManager.FindByNameAsync(currentUserNameClaim.Value);

            if (currentUser == null)
            {
                var badResponse = new CurrentUserResponse();
                badResponse.AddMessage(Common.MessageType.Error, "User not found");
                return(badResponse);
            }

            var userModel = new UserModel(null);
            var userInfo  = await userModel.GetUserInfoAsync(_userManager, currentUser);

            return(new CurrentUserResponse(userInfo));
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="currentUserResponse">Current User Response</param>
 public PlaylistDialog(CurrentUserResponse currentUserResponse) : this() =>