Ejemplo n.º 1
0
        public void HandleUserEditRequest()
        {
            // Arrange
            var request = new UserEditRequest {
                Id = 111
            };
            var user = new User {
                Id = 111, Username = "******", UserRole = UserRole.ProductOwner, PasswordHash = "blablabla"
            };
            var expectedResult = new UserQueryResult
            {
                Id       = user.Id,
                Username = user.Username,
                UserRole = user.UserRole
            };

            _userRepo.Setup(p => p.LoadUser(request.Id)).Returns((new Success(), user));

            // Act
            var(status, actualResult) = _sut.HandleUserEditRequest(request);

            // Assert
            _userRepo.Verify(p => p.LoadUser(request.Id));
            status.Should().BeOfType <Success>();
            actualResult.Should().BeEquivalentTo(expectedResult);
        }
        public void RegisterExistingUser()
        {
            //Prepare
            Mock <LoginStatusChangedEvent> loginStatusChangedEvent = new Mock <LoginStatusChangedEvent>();

            loginStatusChangedEvent.Setup(x => x.Publish(It.IsAny <IUserService>())).Verifiable();

            Mock <IEventAggregator> eventAggregator = new Mock <IEventAggregator>();

            eventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(loginStatusChangedEvent.Object);

            string user = "******";

            char[]       pass     = "******".ToCharArray();
            SecureString password = new SecureString();

            foreach (char c in pass)
            {
                password.AppendChar(c);
            }

            //Act
            IUserService    target = new BattlenetService(eventAggregator.Object);
            UserQueryResult result = target.Register(user, password);

            //Verify
            Assert.IsNull(target.CurrentUser);
            Assert.IsFalse(target.IsLoggedIn);
            Assert.IsFalse(result.Success);
            loginStatusChangedEvent.Verify(x => x.Publish(It.IsAny <IUserService>()), Times.Never);
        }
Ejemplo n.º 3
0
        public async Task <Result> Get(int id)
        {
            var user = await _userRepository.Query()
                       .Include(x => x.Roles)
                       .FirstOrDefaultAsync(x => x.Id == id);

            if (user == null)
            {
                throw new Exception("用户不存在");
            }

            var model = new UserQueryResult
            {
                Id             = user.Id,
                IsActive       = user.IsActive,
                UserName       = user.UserName,
                AdminRemark    = user.AdminRemark,
                CreatedOn      = user.CreatedOn,
                Email          = user.Email,
                FullName       = user.FullName,
                LastActivityOn = user.LastActivityOn,
                LastIpAddress  = user.LastIpAddress,
                LastLoginOn    = user.LastLoginOn,
                PhoneNumber    = user.PhoneNumber,
                UpdatedOn      = user.UpdatedOn,
                RoleIds        = user.Roles.Select(c => c.RoleId) // .Distinct().OrderBy(c => c).ToList()
            };

            return(Result.Ok(model));
        }
Ejemplo n.º 4
0
        public void HandleUserEditRequest()
        {
            // Arrange
            var request = new UserEditRequest {
                Id = 111
            };
            var user = new User {
                Id = 111, Username = "******", UserRole = UserRole.ProductOwner, PasswordHash = "blablabla"
            };
            Action <string> dummyFailureAction = s => { };
            var             actualResult       = new UserQueryResult();
            var             expectedResult     = new UserQueryResult
            {
                Id       = user.Id,
                Username = user.Username,
                UserRole = user.UserRole
            };

            _userRepo.Setup(p => p.LoadUser(request.Id, It.IsAny <Action <User> >(), dummyFailureAction))
            .Callback((int id, Action <User> onSuccess, Action <string> onFailure) => onSuccess(user));

            // Act
            _sut.HandleUserEditRequest(request, result => actualResult = result, dummyFailureAction);

            // Assert
            _userRepo.Verify(p => p.LoadUser(request.Id, It.IsAny <Action <User> >(), dummyFailureAction));
            actualResult.Should().BeEquivalentTo(expectedResult);
        }
Ejemplo n.º 5
0
        public MessageQueryResult MapSingle(ITweet tweet)
        {
            UserQueryResult user = new UserQueryResult
            {
                NetworkId   = tweet.CreatedBy.IdStr,
                Url         = tweet.Url,
                UserName    = tweet.CreatedBy.Name,
                AvatarUrl50 = tweet.CreatedBy.ProfileImageUrl,
                MediaType   = SocialMediaType.Twitter
            };

            List <HashTagQueryResult> tags = tweet.Hashtags.Select(x => new HashTagQueryResult()
            {
                HashTag   = new HashTagWord(x.Text),
                IsEnabled = false
            }).ToList();


            MessageQueryResult message = new MessageQueryResult(0,
                                                                tweet.Text,
                                                                tags,
                                                                SocialMediaType.Twitter,
                                                                tweet.TweetLocalCreationDate.ToUniversalTime(),
                                                                tweet.IdStr,
                                                                user);

            return(message);
        }
        public async Task LoginAsRegisteredUserAsync()
        {
            //Prepare
            Mock <LoginStatusChangedEvent> loginStatusChangedEvent = new Mock <LoginStatusChangedEvent>();

            loginStatusChangedEvent.Setup(x => x.Publish(It.IsAny <IUserService>())).Verifiable();

            Mock <IEventAggregator> eventAggregator = new Mock <IEventAggregator>();

            eventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(loginStatusChangedEvent.Object);

            string user = "******";

            char[]       pass     = "******".ToCharArray();
            SecureString password = new SecureString();

            foreach (char c in pass)
            {
                password.AppendChar(c);
            }

            //Act
            IUserService    target = new BattlenetService(eventAggregator.Object);
            UserQueryResult result = await target.LoginAsync(user, password);

            //Verify
            Assert.AreEqual(user, target.CurrentUser.Username);
            Assert.IsTrue(target.IsLoggedIn);
            Assert.IsTrue(result.Success);
            Assert.AreEqual(OnlineStatuses.Online, target.OnlineStatus);
            loginStatusChangedEvent.VerifyAll();
        }
        public async Task LoginWithUnregisteredUserAsync()
        {
            //Prepare
            Mock <LoginStatusChangedEvent> loginStatusChangedEvent = new Mock <LoginStatusChangedEvent>();

            loginStatusChangedEvent.Setup(x => x.Publish(It.IsAny <IUserService>())).Verifiable();

            Mock <IEventAggregator> eventAggregator = new Mock <IEventAggregator>();

            eventAggregator.Setup(x => x.GetEvent <LoginStatusChangedEvent>()).Returns(loginStatusChangedEvent.Object);

            string user = "******";

            char[]       pass     = "******".ToCharArray();
            SecureString password = new SecureString();

            foreach (char c in pass)
            {
                password.AppendChar(c);
            }

            //Act
            IUserService    target = new BattlenetService(eventAggregator.Object);
            UserQueryResult result = await target.LoginAsync(user, password);

            //Verify
            Assert.IsNull(target.CurrentUser);
            Assert.IsFalse(target.IsLoggedIn);
            Assert.IsFalse(result.Success);
            Assert.AreEqual(UserQueryResult.ResultCode.LogginFailed, result.Code);
            loginStatusChangedEvent.Verify(x => x.Publish(It.IsAny <IUserService>()), Times.Never);
        }
 public void Handle(UserQueryResult message)
 {
     Data.AllUsersCount = message.QueryResultCount;
     if (message.Dtos != null)
     {
         Data.UsersRetrievedCount += message.Dtos.Length;
         foreach (var userDto in message.Dtos)
         {
             AddUserLite(UserLite.Create(userDto));
         }
     }
     CompleteSagaIfNecessary();
 }
 public void Handle(UserQueryResult message)
 {
     Data.AllUsersCount = message.QueryResultCount;
     if (message.Dtos != null)
     {
         Data.UsersRetrievedCount += message.Dtos.Length;
         foreach (var userDto in message.Dtos)
         {
             StorageRepository().Get <UserDTO>().Add(userDto);
         }
     }
     CompleteSagaIfNecessary();
 }
Ejemplo n.º 10
0
        public IActionResult GetEditUser(int userId)
        {
            UserQueryResult user = null;

            _handler.HandleUserEditRequest(new UserEditRequest {
                Id = userId
            },
                                           // Success
                                           userQueryResult => { user = userQueryResult; },
                                           // Failure
                                           errorMessage => { TempData[ErrorMessageString] = errorMessage; }
                                           );
            return(View("EditUser", user));
        }
Ejemplo n.º 11
0
 public void Handle(UserQueryResult message)
 {
     Data.AllUsersCount = message.QueryResultCount;
     if (message.Dtos != null)
     {
         Data.UsersRetrievedCount += message.Dtos.Length;
         foreach (var userDto in message.Dtos.Where(u => u.IsNotDeletedUser()))
         {
             StorageRepository().Get <UserDTO>(userDto.ID.ToString()).Add(userDto);
             StorageRepository().Get <UserDTO>(userDto.Email).Add(userDto);
         }
     }
     CompleteSagaIfNecessary();
 }
Ejemplo n.º 12
0
        public IActionResult Entries(int start, int pageSize)
        {
            Task <IList <GoNorthUser> > queryTask = _userDbAccess.GetUsers(start, pageSize);
            Task <int> countTask = _userDbAccess.GetUserCount();

            Task.WaitAll(queryTask, countTask);

            UserQueryResult queryResult = new UserQueryResult();

            queryResult.Users   = queryTask.Result.Select(u => MapUserToResponse(u)).ToList();
            queryResult.HasMore = start + queryResult.Users.Count < countTask.Result;

            return(Ok(queryResult));
        }
        public UserQueryResult MapSingle(UserEntity item)
        {
            var query = new UserQueryResult();

            if (item != null)
            {
                query.Id          = item.Id;
                query.NetworkId   = item.NetworkId;
                query.UserName    = item.UserName;
                query.ProfileId   = item.ProfileId;
                query.MediaType   = item.MediaType;
                query.Url         = item.Url;
                query.AvatarUrl50 = item.AvatarUrl50;
            }
            return(query);
        }
Ejemplo n.º 14
0
        private async Task <UserQueryResult> LoginAsync()
        {
            LoginFailed = false;
            UserQueryResult result = await userService.LoginAsync(Username, SecurePassword);

            LoginFailed = !result.Success;
            if (LoginFailed)
            {
                Notification = Resources.LoginFailedMessage;
            }
            else
            {
                Notification = null;
            }
            return(result);
        }
Ejemplo n.º 15
0
        private void Login(string user, SecureString pass)
        {
            LoginFailed  = false;
            Notification = null;
            UserQueryResult result = userService.Login(user, pass);

            LoginFailed = !result.Success;
            if (LoginFailed)
            {
                Notification = Resources.LoginFailedMessage;
            }
            else
            {
                Notification = null;
            }
        }
Ejemplo n.º 16
0
        private UserQueryResult FillUser(VkNewsSearchResult post, VkNewsFeed feed)
        {
            var id   = post.FromId;
            var user = new UserQueryResult();

            if (id > 0)
            {
                var profile = feed.Profiles.FirstOrDefault(x => x.Id == id);
                user.NetworkId   = id.ToString();
                user.UserName    = $"{profile.FirstName} {profile.LastName}";
                user.ProfileId   = profile.UserName;
                user.AvatarUrl50 = profile.PhotoLink50;
            }
            else
            {
                var vkGroup = feed.Groups.FirstOrDefault(x => x.Id == Math.Abs(id));
                user.NetworkId   = id.ToString();
                user.UserName    = $"{vkGroup.FirstName}";
                user.ProfileId   = vkGroup.UserName;
                user.AvatarUrl50 = vkGroup.PhotoLink50;
            }
            return(user);
        }
Ejemplo n.º 17
0
        public UserQueryResult Executequery(string query)
        {
            ValidateQuery(query);
            var result = new UserQueryResult
            {
                ColumnHeaders = new List <String>(),
                Data          = new List <List <String> >()
            };

            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                new SqlCommand("BEGIN TRANSACTION", conn).ExecuteNonQuery();
                using (var resultReader = new SqlCommand(query, conn).ExecuteReader())
                {
                    for (int i = 0; i < resultReader.FieldCount; i++)
                    {
                        result.ColumnHeaders.Add(resultReader.GetName(i));
                    }

                    while (resultReader.Read())
                    {
                        var dataRow = new List <String>();
                        foreach (var column in result.ColumnHeaders)
                        {
                            dataRow.Add(resultReader[column].ToString());
                        }
                        result.Data.Add(dataRow);
                    }
                }

                new SqlCommand("ROLLBACK TRANSACTION", conn).ExecuteNonQuery();
            }

            return(result);
        }
        /// <summary>
        /// Find user business objects by custom predicates.
        /// </summary>            
        /// <param name="orderby">sorting field and direction</param>
        /// <param name="pageIndex">current paging index</param>
        /// <param name="pageSize">page size</param>        
        /// <param name="predicate">linq predicate. see user properties for predicate at <see cref="RapidWebDev.Platform.Linq.User"/>.</param>
        /// <returns>Returns enumerable user objects</returns>
        public UserQueryResult QueryUsersJson(string orderby, int pageIndex, int pageSize, RapidWebDev.Common.WebServiceQueryPredicate predicate)
        {
            try
            {
                int recordCount;
                pageSize = (pageSize == 0) ? 25 : pageSize;
                IEnumerable<UserObject> results = membershipApi.FindUsers(ServicesHelper.ConvertWebPredicateToLinqPredicate(predicate), orderby, pageIndex, pageSize, out recordCount);

                UserQueryResult result = new UserQueryResult(results.ToList())
                {
                    PageIndex = pageIndex,
                    PageSize = pageSize,
                    TotalRecordCount = recordCount
                };
                return result;
            }
            catch (ArgumentException ex)
            {
                throw new BadRequestException(string.Format(CultureInfo.InvariantCulture, ex.Message));
            }
            catch (BadRequestException bad)
            {
                throw new BadRequestException(string.Format(CultureInfo.InvariantCulture, bad.Message));
            }
            catch (FormatException formatEx)
            {
                throw new BadRequestException(string.Format(CultureInfo.InvariantCulture, formatEx.Message));
            }
            catch (Exception exp)
            {
                Logger.Instance(this).Error(exp);
                throw new InternalServerErrorException();
            }
        }