예제 #1
0
        private async Task <List <UserData> > GetUsersThroughBrokerAsync(List <Guid> usersIds, List <string> errors)
        {
            if (usersIds is null || !usersIds.Any())
            {
                return(null);
            }

            try
            {
                Response <IOperationResult <IGetUsersDataResponse> > response =
                    await _rcGetUsers.GetResponse <IOperationResult <IGetUsersDataResponse> >(
                        IGetUsersDataRequest.CreateObj(usersIds));

                if (response.Message.IsSuccess && response.Message.Body.UsersData.Any())
                {
                    return(response.Message.Body.UsersData);
                }

                _logger.LogWarning(
                    "Error while getting users data with users ids: {UsersIds}.\nErrors: {Errors}",
                    string.Join(", ", usersIds),
                    string.Join('\n', response.Message.Errors));
            }
            catch (Exception exc)
            {
                _logger.LogError(
                    exc,
                    "Cannot get users data with users ids: {UsersIds}.",
                    string.Join(", ", usersIds));
            }

            errors.Add("Cannot get users data. Please try again later.");

            return(null);
        }
        private async Task <List <UserData> > GetUsersAsync(List <Guid> usersIds, List <string> errors)
        {
            if (usersIds == null || !usersIds.Any())
            {
                return(null);
            }

            try
            {
                var usersDataResponse = await _usersDataRequestClient.GetResponse <IOperationResult <IGetUsersDataResponse> >(
                    IGetUsersDataRequest.CreateObj(usersIds));

                if (usersDataResponse.Message.IsSuccess)
                {
                    return(usersDataResponse.Message.Body.UsersData);
                }

                _logger.LogWarning(
                    $"Can not get users. Reason:{Environment.NewLine}{string.Join('\n', usersDataResponse.Message.Errors)}.");
            }
            catch (Exception exc)
            {
                _logger.LogError(exc, "Exception on get users information.");
            }
            errors.Add("Can not get users info. Please try again later.");

            return(null);
        }
예제 #3
0
        private async Task <List <UserData> > GetUsersDataAsync(List <Guid> usersIds, List <string> errors)
        {
            if (usersIds == null || !usersIds.Any())
            {
                return(null);
            }

            try
            {
                Response <IOperationResult <IGetUsersDataResponse> > response =
                    await _rcGetUsers.GetResponse <IOperationResult <IGetUsersDataResponse> >(
                        IGetUsersDataRequest.CreateObj(usersIds.Distinct().ToList()));

                if (response.Message.IsSuccess)
                {
                    return(response.Message.Body.UsersData);
                }

                _logger.LogWarning(
                    "Error while geting users data by ids: {UsersIds}. Reason:{Errors}",
                    string.Join(", ", usersIds),
                    string.Join('\n', response.Message.Errors));
            }
            catch (Exception exc)
            {
                _logger.LogError(
                    "Can not get users data by ids: {UsersIds}. {ErrorsMessage}",
                    string.Join(", ", usersIds),
                    exc.Message);
            }

            errors.Add("Can not get users data. Please try again later.");

            return(null);
        }