/// <summary> /// Wysyłanie transferu do innego banku /// </summary> /// <returns></returns> private async Task SendTransferToAnotherBank() { var idBank = NumberAccountHelper.ExtractIdBank(_transferModel.AccountTo); var ip = BankIdMappingHelper.GetIP(idBank); var url = $"http://{ip}/transfer"; var username = ConfigurationManager.AppSettings["User"]; var password = ConfigurationManager.AppSettings["Password"]; using (var client = new HttpClient()) { var authValue = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}"))); client.DefaultRequestHeaders.Authorization = authValue; var content = new StringContent(JsonConvert.SerializeObject(_transferModel), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); if (response.StatusCode == HttpStatusCode.BadRequest || response.StatusCode == HttpStatusCode.NotFound) { var valueResponse = await response.Content.ReadAsStringAsync(); var errorDetailWeb = JsonConvert.DeserializeObject <ErrorDetailWeb>(valueResponse); throw new FaultException($"The bank receiver responded : {errorDetailWeb.Error}"); } if (response.StatusCode == HttpStatusCode.Unauthorized) { var valueResponse = await response.Content.ReadAsStringAsync(); var errorDetailWeb = JsonConvert.DeserializeObject <ErrorDetailWeb>(valueResponse); throw new Exception($"Error authorization in receiver bank. details: {errorDetailWeb.Error}"); } if (response.StatusCode != HttpStatusCode.Created) { var valueResponse = await response.Content.ReadAsStringAsync(); var errorDetailWeb = JsonConvert.DeserializeObject <ErrorDetailWeb>(valueResponse); throw new Exception( $"Error in receiver bank. details: {errorDetailWeb.Error} code: {response.StatusCode}"); } } }