예제 #1
0
        public async Task <ActionResult> GetRobotsAsync([FromBody] RobotFilterParamsDto filterParams)
        {
            BuildUserPrincipal();

            if (ApiUser.Role == Role.User)
            {
                filterParams.UserId = ApiUser.Id;
            }

            if (filterParams.FilterType == RobotFilterType.OnlyInterestedAt)
            {
                filterParams.UserInterests = ApiUser.Interests;
            }

            var robots = await _robotService.GetRobotsByFilterParamsAsync(filterParams);

            if (filterParams.FilterType == RobotFilterType.OnlyInterestedAt && !robots.Collection.Any())
            {
                _client.Enqueue(() => _userService.AddUserSearchResultAsync(ApiUser.Id, CancellationToken.None));
            }

            return(Json(JsonResultData.Success(robots)));
        }