Exemplo n.º 1
0
        /// <summary>
        /// Calls Addres APi to get MCf address and then calls MCF to create Business partner
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <CreateBusinesspartnerResponse> CreateBusinessPartner(CreateBusinesspartnerRequest request)
        {
            _logger.LogInformation($"Creating Business Partner: CreateBusinessPartner({nameof(request)} : {request})");

            try
            {
                var address         = request.Address;
                var addressResponse = await _addressApi.ToMcfMailingAddressAsync(address);

                var createBpresponse = ValidateAddress(addressResponse);

                if (createBpresponse != null)
                {
                    return(createBpresponse);
                }

                var addressInfo = addressResponse?.Data;
                var businessPartnerMcfrequest = GetBusinessPartnerMcfRequest(request, addressInfo);
                var mcfResp = await _mcfClient.CreateBusinessPartner(businessPartnerMcfrequest);

                var resp = new CreateBusinesspartnerResponse()
                {
                    BpId = mcfResp.PartnerId
                };

                return(resp);
            }

            catch (Exception ex)
            {
                _logger.LogError(ex, "Failed to create Buiness Partner");
                throw;
            }
        }
Exemplo n.º 2
0
        private CreateBusinesspartnerResponse ValidateAddress(RestSharp.IRestResponse <McfAddressinfo> addressResponse)
        {
            CreateBusinesspartnerResponse response = null;

            if (!addressResponse.IsSuccessful && addressResponse?.Data == null)
            {
                var message = $"Address validator service failed with the error {addressResponse.Content}";
                _logger.LogError(message);
                if (addressResponse.StatusCode == System.Net.HttpStatusCode.BadRequest)
                {
                    response = new CreateBusinesspartnerResponse()
                    {
                        ErrorMessage   = message,
                        HttpStatusCode = System.Net.HttpStatusCode.BadRequest
                    };
                }
                else
                {
                    throw new Exception(message);
                }
            }
            return(response);
        }