protected async Task <Adapters.Oal.dbo_consignment_initial> SearchConsignmentInitialAsync(string consignmentNo) { var adapter = new Adapters.Oal.dbo_consignment_initialAdapter(); var query = $"SELECT [dt_created_date_field] FROM [dbo].[consignment_initial] WHERE [number] = '{consignmentNo}'"; Adapters.Oal.dbo_consignment_initial consignmentInitial = null; using (var conn = new System.Data.SqlClient.SqlConnection(adapter.ConnectionString)) using (var cmd = new System.Data.SqlClient.SqlCommand(query, conn)) { await conn.OpenAsync(); using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { consignmentInitial = new Adapters.Oal.dbo_consignment_initial { dt_created_date_field = reader["dt_created_date_field"].ReadNullable <DateTime>() }; } } } return(consignmentInitial); }
protected async Task <Adapters.Oal.dbo_consignment_update> SearchConsignmentUpdateAsync(string consignmentNo) { var adapter = new Adapters.Oal.dbo_consignment_initialAdapter(); var query = $"SELECT [id],[weight_double] FROM [dbo].[consignment_update] WHERE [number] = '{consignmentNo}'"; Adapters.Oal.dbo_consignment_update consignmentUpdate = null; using (var conn = new System.Data.SqlClient.SqlConnection(adapter.ConnectionString)) using (var cmd = new System.Data.SqlClient.SqlCommand(query, conn)) { await conn.OpenAsync(); using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { consignmentUpdate = new Adapters.Oal.dbo_consignment_update { id = reader["id"].ReadNullableString(), weight_double = reader["weight_double"].ReadNullable <double>() }; } } } return(consignmentUpdate); }
protected async Task <Adapters.Oal.dbo_consignment_initial> SearchConsignmentInitialAsync(string consignmentNo) { var adapter = new Adapters.Oal.dbo_consignment_initialAdapter(); var query = $"SELECT [weight_double], [item_category], [shipper_address_country] FROM [dbo].[consignment_initial] WHERE [number] = '{consignmentNo}'"; Adapters.Oal.dbo_consignment_initial consignment = null; using (var conn = new System.Data.SqlClient.SqlConnection(adapter.ConnectionString)) using (var cmd = new System.Data.SqlClient.SqlCommand(query, conn)) { await conn.OpenAsync(); using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { consignment = new Adapters.Oal.dbo_consignment_initial { weight_double = reader["weight_double"].ReadNullable <double>(), item_category = reader["item_category"].ReadNullableString(), shipper_address_country = reader["shipper_address_country"].ReadNullableString() }; } } } return(consignment); }
private async Task ProcessChildIpsImport(Adapters.Oal.dbo_ips_import parent, string consignmentNo) { var child = parent.Clone(); child.id = GenerateId(13); child.item_id = consignmentNo; child.data_code_name = "deli"; child.class_cd = GetClassCode(consignmentNo); var consignmentInitialAdapter = new Adapters.Oal.dbo_consignment_initialAdapter(); var consignmentInitialPolly = await Policy.Handle <SqlException>() .WaitAndRetryAsync(3, c => TimeSpan.FromMilliseconds(c * 500)) .ExecuteAndCaptureAsync(async() => await SearchConsignmentInitialAsync(consignmentNo)); if (null != consignmentInitialPolly.FinalException) { throw new Exception("Process child IPS import Polly failed", consignmentInitialPolly.FinalException); } var consignment = consignmentInitialPolly.Result; if (null != consignment) { child.item_weight_double = consignment.weight_double; if (!string.IsNullOrEmpty(consignment.shipper_address_country)) { child.orig_country_cd = consignment.shipper_address_country; } if (!string.IsNullOrEmpty(consignment.item_category)) { child.content = consignment.item_category.Equals("01") ? "M" : "D"; } else { child.content = "D"; } } var pattern = @"\w{2}\d{9}(?<country>\w{2})"; var match = System.Text.RegularExpressions.Regex.Match(consignmentNo, pattern); if (match.Success) { child.orig_country_cd = match.Groups["country"].Value; } if (null == child.item_weight_double) { child.item_weight_double = 0d; } m_deliIpsImportEventRows.Add(child); }
private static async Task InsertConsignmentInitial(IposBoem boem) { var consignmentInitialMap = new Integrations.Transforms.IposBoemToOalConsignmentInitial(); var consignmentInitialAdapter = new Adapters.Oal.dbo_consignment_initialAdapter(); var item = await consignmentInitialMap.TransformAsync(boem); var pr = Policy.Handle <SqlException>() .WaitAndRetryAsync(5, x => TimeSpan.FromMilliseconds(500 * Math.Pow(2, x))) .ExecuteAndCaptureAsync(() => consignmentInitialAdapter.InsertAsync(item)); var result = await pr; if (result.FinalException != null) { throw result.FinalException; // send to dead letter queue } System.Diagnostics.Debug.Assert(result.Result > 0, "Should be at least 1 row"); }