Exemple #1
0
        public async Task GetCustomer(GetCustomerDetailByEmailQuery query)
        {
            try
            {
                _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", await _authHandler.GetAuthAccessToken());

                var response = await _httpClient.GetFromJsonAsync <GetCustomerDetailByEmailQueryResult>($"api/Customers?email={query.Email}");

                if (response.Payload != null)
                {
                    _apiCallResultSubject.OnNext(new ApiCallResult <string>()
                    {
                        IsSucceed = true,
                        Operation = "GetStripeCustomerByEmail",
                        Payload   = response.Payload
                    });
                }

                else
                {
                    _apiCallResultSubject.OnNext(new ApiCallResult <string>()
                    {
                        IsSucceed = false,
                        Operation = "GetStripeCustomerByEmail"
                    });
                }
            }

            catch (Exception ex)
            {
                _apiCallResultSubject.OnNext(new ApiCallResult <string>()
                {
                    IsSucceed    = false,
                    Operation    = "GetStripeCustomerByEmail",
                    ErrorMessage = ex.Message
                });
            }
        }
        public async Task <IActionResult> GetByEmail([FromQuery] GetCustomerDetailByEmailQuery query)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(base.BadRequest(ModelState));
                }

                var result = await _mediator.Send(query);

                return(base.Ok(result));
            }

            catch (NotFoundException)
            {
                return(base.NotFound());
            }

            catch (InvalidOperationException ex)
            {
                return(base.Conflict(ex.Message));
            }
        }