public LICSRequestDelivery[] GetRequestDeliveries()
        {
            LICSRequestDelivery[] deliveries      = new LICSRequestDelivery[] { };
            IPluginSettings       plugingSettings = _pluginSettings.AllAvailablePluginSettings().FirstOrDefault(pl => pl.CheckDeliveries);

            if (plugingSettings == null)
            {
                //_logger.Log("There was not adjusted any article setting");
                return(deliveries);
            }

            try
            {
                foreach (var plugin in CustomerDataPlugins)
                {
                    if (((string)plugin.Metadata[CurrentServiceInformation.NameForPluginMetadata]).Equals(Enum.GetName(typeof(CustomDataSourceTypes), plugingSettings.PluginType)))
                    {
                        deliveries = plugin.Value.GetRequestDeliveries(plugingSettings);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                //         _logger.Log(ex);
            }
            return(deliveries);
        }
 public LICSRequestDelivery[] GetRequestDeliveries()
 {
     LICSRequestDelivery[] requestDeliveries = new LICSRequestDelivery[] { };
     try
     {
         using (var connection = new SqlConnection(DbConnection))
         {
             connection.Open();
             var           cmdText = _pluginSettings.DeliveriesQuery;
             SqlCommand    cmd     = new SqlCommand(cmdText, connection);
             SqlDataReader reader  = cmd.ExecuteReader();
             requestDeliveries = LoadDeliveries(reader, connection);
         }
     }
     catch (Exception ex)
     {
     }
     return(requestDeliveries);
 }
        private LICSRequestDelivery[] LoadDeliveries(IDataReader reader, SqlConnection connection)
        {
            DataTable table = new DataTable();
            List <LICSRequestDelivery> deliveries = new List <LICSRequestDelivery>();

            table.Load(reader);
            foreach (DataRow row in table.AsEnumerable())
            {
                try
                {
                    LICSRequestDelivery deliveryItem = new LICSRequestDelivery();

                    foreach (DataColumn column in row.Table.Columns)
                    {
                        var          res          = row[column.ColumnName];
                        PropertyInfo propertyInfo = deliveryItem.GetType().GetProperty(column.ColumnName);
                        if (row[column.ColumnName].GetType().Equals(DBNull.Value.GetType()))
                        {
                            propertyInfo.SetValue(deliveryItem, Convert.ChangeType(GetDefaultValue(propertyInfo.PropertyType), propertyInfo.PropertyType), null);
                        }
                        else
                        {
                            propertyInfo.SetValue(deliveryItem, Convert.ChangeType(row[column.ColumnName].ToString().Trim(), propertyInfo.PropertyType), null);
                        }
                    }
                    deliveryItem.Positions = GetDeliveryPositions(connection, deliveryItem.DeliveryNo);
                    deliveries.Add(deliveryItem);
                }
                catch (Exception ex)
                {
                    _loger.Log("Exception while reflect DataColumn values using Reflection in Load Deliveries");
                    _loger.Log(ex);
                }
                //string deliveryNo = (row["DeliveryNo"] ?? string.Empty).ToString();

                //DateTime deliveryDate;
                //if (!DateTime.TryParse(row["DeliveryDate"].ToString(), out deliveryDate))
                //{

                //}

                //DateTime orderDate;
                //if (!DateTime.TryParse(row["OrderDate"].ToString(), out orderDate))
                //{

                //}
                //LICSRequestDelivery delivery = new LICSRequestDelivery
                //{
                //    DeliveryNo = deliveryNo,
                //    DeliveryDate = deliveryDate,
                //    DeliveryArea = string.Empty,//(row["DeliveryArea"] ?? string.Empty).ToString(), According to sebastian's comments
                //    DeliveryPlace = string.Empty,// (row["DeliveryPlace"] ?? string.Empty).ToString(),  According to sebastian's comments
                //    OrderDate = orderDate
                //};

                //delivery.Positions = GetDeliveryPositions(connection, deliveryNo);
                //deliveries.Add(delivery);
            }

            return(deliveries.ToArray());
        }