public static LICSRequest ConvertToLICSRequest(this OutputPayLoad navisionOutputPayload) { LICSRequest licsRequest = new LICSRequest(); List <LICSRequestArticle> listLicsRequestArticles = new List <LICSRequestArticle>(); List <LICSRequestOrderPosition> orderPositions = new List <LICSRequestOrderPosition>(); LICSRequestOrder requestOrder = new LICSRequestOrder(); requestOrder.ShipmentDate = DateTime.ParseExact(navisionOutputPayload.OrderHeader.Date, "dd.MM.yy", System.Globalization.CultureInfo.InvariantCulture); requestOrder.OrderNo = navisionOutputPayload.OrderHeader.OrderNumber; requestOrder.CustomerNo = Convert.ToString(navisionOutputPayload.OrderHeader.CustomerNumber); requestOrder.DistributionCenter = navisionOutputPayload.OrderHeader.WarehouseOrder; LICSRequestOrderRecipient orderRecipient = new LICSRequestOrderRecipient(); orderRecipient.Name = navisionOutputPayload.OrderHeader.CustomerName; // orderRecipient.AdditionalName = (string)navisionOutputPayload.OrderHeader.CustomerName2; RESOLVE THIS PROBLEM orderRecipient.Street = navisionOutputPayload.OrderHeader.CustomerStreet; orderRecipient.ZIPCode = Convert.ToString(navisionOutputPayload.OrderHeader.CustomerZIP); orderRecipient.City = navisionOutputPayload.OrderHeader.CustomerTown; foreach (OutputPayLoadOutputPosition outputPosition in navisionOutputPayload.Positions) { LICSRequestOrderPosition orderPosition = new LICSRequestOrderPosition(); orderPosition.ArticleGroup = outputPosition.VPECode; orderPosition.PositionNo = (int)outputPosition.ArticleRowNumber; orderPosition.ArticleNo = outputPosition.ArticleNumber; orderPosition.TargetQuantity = Convert.ToDouble(outputPosition.VPECount); LICSRequestArticle requestArticle = new LICSRequestArticle(); requestArticle.ArticleNo = outputPosition.ArticleNumber; requestArticle.ArticleDescription = outputPosition.Description; requestArticle.ArticleDescription2 = outputPosition.Description2; requestArticle.ArticleGroup = outputPosition.VPECode; requestArticle.ArticleGroupFactor = outputPosition.BaseUnitQuantity; orderPositions.Add(orderPosition); listLicsRequestArticles.Add(requestArticle); } requestOrder.Positions = orderPositions.ToArray(); requestOrder.Recipient = orderRecipient; licsRequest.ArticleImport = listLicsRequestArticles.ToArray(); licsRequest.OrderImport = new LICSRequestOrder[] { requestOrder }; return(licsRequest); }
private LICSRequestOrderRecipient GetOrderRecipient(SqlConnection connection, string referenceNo) { string getOrderRecipientQuery = string.Format(_pluginSettings.OrderRecipientQuery, referenceNo); _loger.Log(string.Format("OrderRecipient reques sql {0}", getOrderRecipientQuery)); SqlCommand cmd = new SqlCommand(getOrderRecipientQuery, connection); SqlDataReader reader = cmd.ExecuteReader(); DataTable table = new DataTable(); table.Load(reader); LICSRequestOrderRecipient orderRecipient = new LICSRequestOrderRecipient(); foreach (DataRow row in table.Rows) { try { foreach (DataColumn column in row.Table.Columns) { var res = row[column.ColumnName]; PropertyInfo propertyInfo = orderRecipient.GetType().GetProperty(column.ColumnName); if (propertyInfo == null) { _loger.Log("LICSRequestOrderRecipient"); _loger.Log(string.Format("{0} = {1}", column.ColumnName, Convert.ToString(res))); _loger.Log(propertyInfo, "propertyInfo"); continue; } if (row[column.ColumnName].GetType().Equals(DBNull.Value.GetType())) { propertyInfo.SetValue(orderRecipient, Convert.ChangeType(GetDefaultValue(propertyInfo.PropertyType), propertyInfo.PropertyType), null); } else { propertyInfo.SetValue(orderRecipient, Convert.ChangeType(Convert.ToString(row[column.ColumnName]).Trim(), propertyInfo.PropertyType), null); } } } catch (Exception ex) { _loger.Log("Exception while reflect DataColumn values using Reflection in GetOrderRecipient"); _loger.Log(ex); } } return(orderRecipient); }