public override void Process(SignInArgs args)
        {
            try
            {
                // get current user
                string         username = args.User.InnerUser.Profile.Email;
                GetUserRequest request  = new GetUserRequest(username);
                GetUserResult  user     = _customerServiceProvider.GetUser(request);
                if (!user.Success || user.CommerceUser == null)
                {
                    // if user isn't a customer, run customer create pipeline
                    string            password          = Guid.NewGuid().ToString();
                    CreateUserRequest createUserRequest = new CreateUserRequest(username, password, username, _storefrontContext.CurrentStorefront.ShopName);
                    CreateUserResult  createUserResult  = _customerServiceProvider.CreateUser(createUserRequest);
                }

                // identify commerce user and merge anonymous cart
                Cart result = _cartManager.GetCurrentCart(_visitorContext, _storefrontContext, false).Result;
                Tracker.Current.CheckForNull().Session.IdentifyAs("CommerceUser", username);
                _visitorContext.UserJustLoggedIn();
                _cartManager.MergeCarts(_storefrontContext.CurrentStorefront, _visitorContext, _visitorContext.CustomerId, result);
            }
            catch (Exception ex)
            {
                // log error
                Sitecore.Diagnostics.Log.Error($"Failed to create a customer for external user login {args.User.UserName}. {ex.Message}", this);
            }
        }
Example #2
0
        public void GetUsers_ShouldReturnListOfUsers()
        {
            var getUserAsyncResult = new GetUserResult
            {
                CreationDate = mockUser.CreationDate,
                DisplayName  = mockUser.DisplayName,
                EmailAddress = mockUser.EmailAddress,
                Username     = mockUser.Username
            };

            var listUser = new List <User>()
            {
                mockUser
            };

            var listResult = new List <GetUserResult>
            {
                getUserAsyncResult
            };

            mockMapper.Setup(m => m.Map <IEnumerable <GetUserResult> >(It.IsAny <IEnumerable <User> >()))
            .Returns(listResult);

            mockUserRepository.Setup(m => m.GetUsers(It.IsAny <GetUsersRequest>())).
            Returns(listUser);

            var result = userServices.GetUsers(new GetUsersRequest());

            Assert.Equal(listResult, result);
        }
Example #3
0
        public GetUserResult GetUserResult(string username, string password)
        {
            GetUserResult result     = new GetUserResult();
            var           PassEncryp = CTMerge.API.DataAccess.CacheLogonProcessor.TrakCareEnCryptPass(password);

            var userTC = new UserResult();

            using (IDbConnection connection = cacheConnection)
            {
                userTC = connection.QueryFirstOrDefaultAsync <UserResult>(DBCacheQuery.GetUserResult(), new { SSUSR_Initials = username }).Result;
            }

            if (userTC != null)
            {
                if (PassEncryp == userTC.SSUSR_Password)
                {
                    bool isAllow = _mySqlConnection.IsSecurityGroupAllow(userTC.SSGRP_Desc);

                    result.SSUSR_Initials = userTC.SSUSR_Initials;
                    result.SSUSR_Name     = userTC.SSUSR_Name;
                    result.SSGRP_Desc     = userTC.SSGRP_Desc;
                    result.CTLOC_Desc     = userTC.CTLOC_Desc;
                    result.IsGroupAllow   = isAllow;
                }
            }


            return(result);
        }
Example #4
0
        public UserWithinDistanceCommandHandlerConfigurator WithUsersResultException(Exception exception)
        {
            this.userRepository
            .Setup(x => x.GetUsersAsync())
            .ReturnsAsync(GetUserResult.Failure(exception));

            return(this);
        }
Example #5
0
    public async Task <GetUserResult> GetUser(GetUserRequest request, CancellationToken token)
    {
        var userCursor = await _users.FindAsync(u => u.Login == request.Login && u.Password == request.Password, cancellationToken : token);

        var user = await userCursor.FirstOrDefaultAsync(token);

        return(user == null?GetUserResult.Failed() : GetUserResult.Success(user));
    }
Example #6
0
    public async Task <GetUserResult> GetUser(string userId, CancellationToken token)
    {
        var userCursor = await _users.FindAsync(u => u.Id == userId, cancellationToken : token);

        var user = await userCursor.FirstOrDefaultAsync(token);

        return(user == null?GetUserResult.Failed() : GetUserResult.Success(user));
    }
Example #7
0
        public UserWithinDistanceCommandHandlerConfigurator WithUsers(IEnumerable <User> users)
        {
            this.userRepository
            .Setup(x => x.GetUsersAsync())
            .ReturnsAsync(GetUserResult.Success(users));

            return(this);
        }
        public ManagerResponse <GetUserResult, CommerceUser> GetUser(string userName)
        {
            Assert.ArgumentNotNullOrEmpty(userName, nameof(userName));

            GetUserResult user = this.customerServiceProvider.GetUser(new GetUserRequest(userName));

            if (!user.Success || user.CommerceUser == null)
            {
                Log.Warn("User Not Found Error", this.GetType());
            }

            GetUserResult serviceProviderResult = user;

            return(new ManagerResponse <GetUserResult, CommerceUser>(
                       serviceProviderResult,
                       serviceProviderResult.CommerceUser));
        }
        /// <summary>Gets the current user identifier.</summary>
        /// <returns>The user id to use to search for the carts.</returns>
        protected virtual string GetCurrentUserId()
        {
            string userName = CommerceTracker.Current.ContactUserName;

            if (Context.User.IsAuthenticated)
            {
                GetUserResult user = CustomerService.GetUser(new GetUserRequest(userName));
                if (user != null && user.Success && user.CommerceUser != null)
                {
                    userName = user.CommerceUser.ExternalId;
                }
            }
            else
            {
                userName = CommerceTracker.Current.ContactId;
            }
            return(userName);
        }
Example #10
0
        /// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(Commerce.Pipelines.ServicePipelineArgs args)
        {
            base.Process(args);

            GetUserRequest request = (GetUserRequest)args.Request;
            GetUserResult  result  = (GetUserResult)args.Result;

            if (result.CommerceUser == null)
            {
                return;
            }

            // if we found a user, add some addition info
            var userProfile = GetUserProfile(result.CommerceUser.UserName);

            Assert.IsNotNull(userProfile, "profile");

            UpdateCustomer(result.CommerceUser, userProfile);
        }
Example #11
0
        public static void GetUser(JObject request, ref JObject result, string language, ref Session session)
        {
            long   userId;
            string userName;

            try
            {
                userId   = long.Parse(request[GetUserFieldKeyword.UserId].ToString());
                userName = request[GetUserFieldKeyword.UserName].ToString();
            }
            catch (Exception)
            {
                AddBadParameterInfo(ref result, Functions.GetUser, language);
                return;
            }

            string message;
            User   user = null;

            if (!String.IsNullOrEmpty(userName))
            {
                user = UserHelper.Get(userName, out message, language);
            }
            else
            {
                user = UserHelper.Get(userId, out message, language);
            }

            if (user != null)
            {
                var resultObject = new GetUserResult
                {
                    User = user
                };
                AddSuccessInfo(ref result, ResultType.Object, resultObject, message);
            }
            else
            {
                AddFailInfo(ref result, ErrorNumber.SeeDetail.ToString(), message);
            }
        }
Example #12
0
        public async Task <GetUserResult> GetUsersAsync()
        {
            var result = await this.userApi.GetUsersAsync();

            if (result.IsSuccess)
            {
                var mappedUsers = result
                                  .Users
                                  .Select(
                    user => new User(
                        user.Id,
                        user.FirstName,
                        user.LastName,
                        user.Email,
                        user.IpAddress,
                        new Coordinate(user.Latitude, user.Longitude)));

                return(GetUserResult.Success(mappedUsers));
            }

            return(GetUserResult.Failure(result.Exception));
        }
Example #13
0
        public GetUserResult GetUsers(string userName, int start, int count)
        {
            GetUserResult result = new GetUserResult();

            ConnectionInfo info = ServerInfo.ConnectionTable.GetConnection(Context.ConnectionId);

            if (info == null)
            {
                result.Value     = -1;
                result.ErrorInfo = "connection ID 为 '" + Context.ConnectionId + "' 的 ConnectionInfo 对象没有找到。操作失败";
                return(result);
            }

            // 验证请求者是否登录,是否有 supervisor 权限

            // 获得用户信息
            var task = ServerInfo.UserDatabase.GetUsers(userName, start, count);

            task.Wait();
            result.Users = BuildUsers(task.Result);
            return(result);
        }
		private User(GetUserResult result)
		{
			ID = result.id;
			Name = result.name;
			Login = result.login;
		}
		public static User Create(GetUserResult result)
		{
			return new User(result);
		}
 private User(GetUserResult result)
 {
     ID    = result.id;
     Name  = result.name;
     Login = result.login;
 }
 public static User Create(GetUserResult result)
 {
     return(new User(result));
 }