示例#1
0
        /// <summary>
        /// Производит резолвинг данных с текущим контекстом.
        /// </summary>
        /// <param name="context">Контекст.</param>
        /// <returns>Данные.</returns>
        public override async Task <object> Resolve(ResolveFieldContext <object> context)
        {
            var request = new FindUsersRequest();

            request.Name            = context.GetArgument <string>("name");
            request.CurrentUserName = context.UserContext.As <UserContext>().UserName;

            MessageOutputBase outputMessage = null;

            object result = null;

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <FindUsersStep>();


                flow.When <FindUsersStep, FindUsersParams>(fetch =>
                {
                    outputMessage = fetch.Response;
                    result        = fetch.Response.Profiles;
                });
            }, request,
                          context);

            ProcessErrors(context, outputMessage);

            return(result);
        }
示例#2
0
        public async void FindUsers()
        {
            var md = TestMetadata;
            var u1 = await _hiarc.CreateUser(md);

            md["quotaCarrying"] = false;
            await _hiarc.CreateUser(md);

            await _hiarc.CreateUser();

            var query = new List <Dictionary <string, object> >
            {
                new Dictionary <string, object>
                {
                    { "prop", "department" },
                    { "op", "starts with" },
                    { "value", "sal" }
                },
                new Dictionary <string, object>
                {
                    { "bool", "and" }
                },
                new Dictionary <string, object>
                {
                    { "parens", "(" }
                },
                new Dictionary <string, object>
                {
                    { "prop", "targetRate" },
                    { "op", ">=" },
                    { "value", 4.22 }
                },
                new Dictionary <string, object>
                {
                    { "bool", "and" }
                },
                new Dictionary <string, object>
                {
                    { "prop", "quotaCarrying" },
                    { "op", "=" },
                    { "value", true }
                },
                new Dictionary <string, object>
                {
                    { "parens", ")" }
                }
            };

            var request = new FindUsersRequest {
                Query = query
            };
            var foundUsers = await _hiarc.FindUsers(request);

            Assert.Single(foundUsers);
            Assert.Equal(u1, foundUsers[0], new EntityComparer());
        }
示例#3
0
        public async Task <List <User> > FindUsers(FindUsersRequest request, string asUserKey = null, string bearerToken = null, bool logToConsole = true)
        {
            var foundUsers = await Post <FindUsersRequest, List <User> >(request, "users/find", asUserKey, bearerToken);

            if (logToConsole)
            {
                Console.WriteLine($"Found {foundUsers.Count} Users: {ToJson(foundUsers)}");
            }
            ;
            return(foundUsers);
        }
示例#4
0
        public async Task <IActionResult> FindUsers([FromBody] FindUsersRequest request)
        {
            try
            {
                var matchingUsers = await _hiarcDatabase.FindUsers(request);

                return(Ok(matchingUsers));
            }
            catch (Exception ex)
            {
                return(BuildErrorResponse(ex, _logger));
            }
        }
        public FindUsersResponse Find(FindUsersRequest request)
        {
            try
            {
                _userQuery.Init();
                _userQuery.WithOnlyActivated(true);
                _userQuery.WithUserName(request.UserName);
                _userQuery.Sort(request.Sort, request.SortBy);
                var totalRecords = _userQuery.TotalRecords();
                _userQuery.Paginate(request.ItemsToShow, request.Page);
                var users = _userQuery.Execute();

                return(new FindUsersResponse
                {
                    Users = TypeAdapter.Adapt <List <UserResponse> >(users),
                    TotalRecords = totalRecords
                });
            }
            catch (DataAccessException)
            {
                throw new ApplicationException();
            }
        }
示例#6
0
        public async Task <MessageOutputBase> FindUsers(FindUsersRequest request)
        {
            MessageOutputBase result = null;

            request.CurrentUserName = GetCurrentUser();

            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <FindUsersStep>();


                flow.When <FindUsersStep, FindUsersParams>(fetch =>
                {
                    result = fetch.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
示例#7
0
 public FindUsersResponse Get(FindUsersRequest request)
 {
     return(_userService.Find(request));
 }