public LICSRequestOrder[] GetRequestOrders() { LICSRequestOrder[] requestOrders = new LICSRequestOrder[] { }; try { IPluginSettings plugingSettings = _pluginSettings.AllAvailablePluginSettings().FirstOrDefault(pl => pl.CheckOrders); if (plugingSettings == null) { //_logger.Log("There was not adjusted any orders setting"); return(requestOrders); } foreach (var plugin in CustomerDataPlugins) { if (((string)plugin.Metadata[CurrentServiceInformation.NameForPluginMetadata]).Equals(Enum.GetName(typeof(CustomDataSourceTypes), plugingSettings.CheckOrders))) { requestOrders = plugin.Value.GetRequestOrders(plugingSettings); break; } } } catch (Exception ex) { // _logger.Log(ex); } return(requestOrders); }
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 LICSRequestOrder[] LoadOrders(IDataReader reader, SqlConnection connection) { DataTable table = new DataTable(); List <LICSRequestOrder> orders = new List <LICSRequestOrder>(); table.Load(reader); foreach (DataRow row in table.AsEnumerable()) { LICSRequestOrder orderItem = new LICSRequestOrder(); PropertyInfo propertyInfo = null; try { foreach (DataColumn column in row.Table.Columns) { // _loger.Log("LICSRequestOrderTest"); // var res = row[column.ColumnName]; propertyInfo = orderItem.GetType().GetProperty(column.ColumnName); if (propertyInfo == null) { // _loger.Log("LICSRequestOrder"); _loger.Log(propertyInfo, "propertyInfo"); _loger.Log(string.Format("{0} = {1}", column.ColumnName, Convert.ToString(row[column.ColumnName]))); continue; } // _loger.Log(row[column.ColumnName], "row[column.ColumnName]"); bool columnValueEqualsNull = row[column.ColumnName].GetType().Equals(DBNull.Value.GetType()); //_loger.Log(columnValueEqualsNull, "columnValueEqualsNull"); if (columnValueEqualsNull) { _loger.Log(string.Format("{0} = {1}", column.ColumnName, "Is DB Null")); propertyInfo.SetValue(orderItem, Convert.ChangeType(GetDefaultValue(propertyInfo.PropertyType), propertyInfo.PropertyType), null); } else { // _loger.Log(string.Format("{0} = {1}", column.ColumnName, Convert.ToString(row[column.ColumnName]))); propertyInfo.SetValue(orderItem, Convert.ChangeType(Convert.ToString(row[column.ColumnName]).Trim(), propertyInfo.PropertyType), null); } } orderItem.Recipient = GetOrderRecipient(connection, orderItem.OrderNo); orderItem.Positions = GetRequestOrderPositions(connection, orderItem.OrderNo); if (orderItem.Positions.Length > 0) { orders.Add(orderItem); } else { string errorDescription = "There aren't positions in Order number " + orderItem.OrderNo; _loger.Log(errorDescription); MailLogger.Instance.LogMail(new ContentDescription(errorDescription)); } } catch (FormatException formatEx) { _loger.Log("FormatException while reflect DataColumn values using Reflection in LoadOrders"); _loger.Log(formatEx); string mailMessage = string.Format("There was FormatException with Order number = {0}, problem field name = {1}", orderItem.OrderNo, propertyInfo.Name); MailLogger.Instance.LogMail(new ContentDescription(mailMessage, formatEx.Message)); } catch (Exception ex) { _loger.Log("Exception while reflect DataColumn values using Reflection in LoadOrders"); _loger.Log(ex); } } return(orders.ToArray()); }