/// <summary>
        /// Loads Product informations for a company
        /// </summary>
        /// <param name="company"></param>
        /// <returns></returns>
        public List <BikeProduct> LoadProductByCompany(Company company)
        {
            List <BikeProduct> result = new List <BikeProduct>();

            using (var service = new SampleService.SampleServiceClient())
            {
                List <Product> response = service.LoadProductByCompany(company);

                response.ForEach(x =>
                {
                    var bike = new BikeProduct()
                    {
                        Id               = x.Id,
                        Name             = x.Name,
                        InstallationDate = x.InstallationDate,
                    };
                    ConvertPropertyBag(x, bike);
                    result.Add(bike);
                });
            }
            return(result);
        }
 private BikeProduct ConvertPropertyBag(Product x, BikeProduct bike)
 {
     try
     {
         if (x.PropertyBag.Keys.Contains("Articlenumber"))
         {
             bike.Articlenumber = x.PropertyBag["Articlenumber"].ToString();
         }
         if (x.PropertyBag.Keys.Contains("MakeFlag"))
         {
             bike.MakeFlag = (bool)x.PropertyBag["MakeFlag"];
         }
         if (x.PropertyBag.Keys.Contains("FinishedGoodsFlag"))
         {
             bike.FinishedGoodsFlag = (bool)x.PropertyBag["FinishedGoodsFlag"];
         }
         if (x.PropertyBag.Keys.Contains("Color"))
         {
             bike.Color = (string)x.PropertyBag["Color"];
         }
         if (x.PropertyBag.Keys.Contains("StandardCost"))
         {
             bike.StandardCost = (decimal)x.PropertyBag["StandardCost"];
         }
         if (x.PropertyBag.Keys.Contains("ListPrice"))
         {
             bike.ListPrice = (decimal)x.PropertyBag["ListPrice"];
         }
         if (x.PropertyBag.Keys.Contains("Size"))
         {
             bike.Size = (string)x.PropertyBag["Size"];
         }
         if (x.PropertyBag.Keys.Contains("SizeMeasure"))
         {
             bike.SizeMeasure = (string)x.PropertyBag["SizeMeasure"];
         }
         if (x.PropertyBag.Keys.Contains("WeightMeasure"))
         {
             bike.WeightMeasure = (string)x.PropertyBag["WeightMeasure"];
         }
         if (x.PropertyBag.Keys.Contains("Weight"))
         {
             bike.Weight = (decimal?)x.PropertyBag["Weight"];
         }
         if (x.PropertyBag.Keys.Contains("DaysToManufacture"))
         {
             bike.DaysToManufacture = (int)x.PropertyBag["DaysToManufacture"];
         }
         if (x.PropertyBag.Keys.Contains("ProductLine"))
         {
             bike.ProductLine = (string)x.PropertyBag["ProductLine"];
         }
         if (x.PropertyBag.Keys.Contains("Class"))
         {
             bike.Class = (string)x.PropertyBag["Class"];
         }
         if (x.PropertyBag.Keys.Contains("Style"))
         {
             bike.Style = (string)x.PropertyBag["Style"];
         }
         if (x.PropertyBag.Keys.Contains("SubCategoryId"))
         {
             bike.SubCategoryId = (int)x.PropertyBag["SubCategoryId"];
         }
         if (x.PropertyBag.Keys.Contains("ProductModelId"))
         {
             bike.ProductModelId = (int)x.PropertyBag["ProductModelId"];
         }
         if (x.PropertyBag.Keys.Contains("SellEndDate"))
         {
             bike.SellEndDate = (DateTime?)x.PropertyBag["SellEndDate"];
         }
         if (x.PropertyBag.Keys.Contains("CustomerOrderQty"))
         {
             bike.CustomerOrderQty = (int)x.PropertyBag["CustomerOrderQty"];
         }
     }
     catch (Exception ex)
     {
         logger.Warning("could not convert propertybag!", ex);
     }
     return(bike);
 }