public void Save(AdminProductTypeViewModel adminProductTypeViewModel)
 {
     ProductType pb = new ProductType(adminProductTypeViewModel.Id)
     {
         Name = adminProductTypeViewModel.Name,
         Description=adminProductTypeViewModel.Description,
         Code=adminProductTypeViewModel.Code,
     };
     _productTypeRepository.Save(pb);
 }
 AdminProductTypeViewModel Map(ProductType productType)
 {
     return new AdminProductTypeViewModel
     {
         Id = productType.Id,
         Name = productType.Name,
         Description=productType.Description,
         isActive = productType._Status == EntityStatus.Active ? true : false,
         Code = productType.Code,
     };
 }
        private SaleProduct[] ConstructProducts(List<ProductImport> entities)
        {
           var temp = new List<SaleProduct>();
           var defaultSupplier = ObjectFactory.GetInstance<ISupplierRepository>().GetAll(true).FirstOrDefault(p => p.Name != null && p.Name.Equals("default"));
          if (defaultSupplier == null)
            {
                defaultSupplier = new Supplier(Guid.NewGuid()) { Name = "default", Code = "default", Description = "default" };
                try
                {
                    ObjectFactory.GetInstance<ISupplierRepository>().Save(defaultSupplier);

                }
                catch
                {
                }
            }

            foreach (var entity in entities)
            {
               var product = ObjectFactory.GetInstance<IProductRepository>().GetByCode(entity.ProductCode) as SaleProduct;
                    
                bool isNew = false;
                if(product==null)
                {
                    isNew = true;
                    product= new SaleProduct(Guid.NewGuid());
                }

                var brand = ObjectFactory.GetInstance<IProductBrandRepository>().GetAll(true)
                        .FirstOrDefault(
                            p => p.Code != null && (p.Code.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase)) ||
                            p.Name != null && p.Name.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase));

                if (string.IsNullOrEmpty(entity.BrandCode))
                    brand = ObjectFactory.GetInstance<IProductBrandRepository>().GetAll(true).FirstOrDefault(p => p.Code != null && (p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) || p.Name != null && p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase)));


                if (brand == null)
                {
                    brand = ObjectFactory.GetInstance<IProductBrandRepository>().GetAll(true).FirstOrDefault(p => p.Code != null && p.Code == "default") ??
                            new ProductBrand(Guid.NewGuid())
                            {
                                Code = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode,
                                Name = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode,
                                Supplier = defaultSupplier
                            };
                    try
                    {
                        ObjectFactory.GetInstance<IProductBrandRepository>().Save(brand);
                    }
                    catch
                    {
                    }
                }

                product.Brand = brand;

                if (product.ProductType == null)
                {
                    var productType = ObjectFactory.GetInstance<IProductTypeRepository>().GetAll(true).FirstOrDefault(
                     p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                         p.Name != null &&
                     p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));

                    if (productType == null)
                    {
                        productType = new ProductType(Guid.NewGuid())
                        {
                            Name = "default",
                            Code = "default",
                            Description = "default"
                        };
                        try
                        {
                            ObjectFactory.GetInstance<IProductTypeRepository>().Save(productType);
                        }
                        catch
                        {
                        }
                    }
                    product.ProductType = productType;
                }



                if (product.PackagingType == null)
                {
                    var packagingType = ObjectFactory.GetInstance<IProductPackagingTypeRepository>().GetAll(true).FirstOrDefault(
                        p => p.Code != null &&
                        p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                        p.Name != null &&
                        p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));
                    if (packagingType == null)
                    {
                        packagingType = new ProductPackagingType(Guid.NewGuid())
                        {
                            Name = "default",
                            Code =
                                "default",
                            Description = "default"
                        };
                        try
                        {
                            ObjectFactory.GetInstance<IProductPackagingTypeRepository>().Save(packagingType);
                        }
                        catch
                        {
                        }

                    }
                    product.PackagingType = packagingType;
                }


                if (product.Packaging == null)
                {
                    var packaging =
                        ObjectFactory.GetInstance<IProductPackagingRepository>().GetAll(true).FirstOrDefault(
                            p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                                p.Name != null &&
                                 p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));
                    if (packaging == null)
                    {
                        packaging = new ProductPackaging(Guid.NewGuid())
                        {
                            Name = "default",
                            Code =
                                "default",
                            Description =
                                "default",
                        };
                        try
                        {
                            ObjectFactory.GetInstance<IProductPackagingRepository>().Save(packaging);
                        }
                        catch
                        {

                        }
                    }
                    product.Packaging = packaging;
                }

                if (product.VATClass == null)
                {
                    var productVat = ObjectFactory.GetInstance<IVATClassRepository>().GetAll(true).FirstOrDefault(
                            p => p.VatClass != null &&
                            p.VatClass == "defaultVAT" ||
                            p.Name != null &&
                            p.Name.Equals("defaultVAT", StringComparison.CurrentCultureIgnoreCase));

                    if (productVat == null)
                    {
                        var viatItem = new VATClass.VATClassItem(Guid.NewGuid())
                        {
                            EffectiveDate = DateTime.Now,
                            Rate = 0,

                        };
                        productVat = new VATClass(Guid.NewGuid())
                        {
                            Name = "defaultVAT",
                            VatClass = "defaultVAT",
                        };
                        productVat.VATClassItems.Add(viatItem);
                        try
                        {
                            ObjectFactory.GetInstance<IVATClassRepository>().Save(productVat);
                        }
                        catch
                        {
                        }

                    }
                    product.VATClass = productVat;
                }
                if (product.Flavour == null)
                {
                    var flavor = ObjectFactory.GetInstance<IProductFlavourRepository>().GetAll(true).FirstOrDefault(
                            p => p.Name != null &&
                            p.Name == "defaultflavor" || p.Code
                            != null &&
                            p.Code.Equals("defaultflavor", StringComparison.CurrentCultureIgnoreCase));

                    if (flavor == null)
                    {
                        flavor = new ProductFlavour(Guid.NewGuid())
                        {
                            Name = "defaultflavor",
                            Code = "defaultflavor",
                            Description = "defaultflavor",
                            ProductBrand = brand
                        };
                        try
                        {
                            ObjectFactory.GetInstance<IProductFlavourRepository>().Save(flavor);
                        }
                        catch
                        {
                        }

                    }
                    product.Flavour = flavor;
                }

                product.ProductCode = entity.ProductCode;
                product._Status = EntityStatus.Active; 
                product.ExFactoryPrice = entity.ExFactoryPrice;
                product.Description = entity.Description.Trim();

                if (isNew || HasProductChanged(product))
                    temp.Add(product);
            }
            return temp.ToArray();

        }
 /*>*/
 public ProductTypeDTO Map(ProductType productType)
 {
     if (productType == null) return null;
     return Mapper.Map<ProductType, ProductTypeDTO>(productType);
 }
 protected ValidationResultInfo Validate(ProductType productType)
 {
     return _productTypeRepository.Validate(productType);
 }
Exemple #6
0
 public static ProductType Map(this tblProductType productType)
 {
     ProductType pt = new ProductType(productType.id)
     {
         Name = productType.name,
         Description=productType.Description,
          Code=productType.code
     };
     pt._SetDateCreated(productType.IM_DateCreated);
     pt._SetDateLastUpdated(productType.IM_DateLastUpdated);
     pt._SetStatus((EntityStatus)productType.IM_Status);
     return pt;
 }
        protected ProductType Map(ProductTypeImport productTypeImport)
        {
            var exists = Queryable.FirstOrDefault(_context.tblProductFlavour, p => p.code == productTypeImport.Code);
            Guid id = exists != null ? exists.id : Guid.NewGuid();

           
            var productType = new ProductType(id);
            productType.Name = productTypeImport.Name;
            productType.Code = productTypeImport.Code;
            productType.Description = productTypeImport.Description;
            

            return productType;

        }
        protected Guid AddProductType(string name, string code)
        {
            ProductType pt = new ProductType(Guid.NewGuid())

            {
                Name = name,
                 Code=code

            };
            pt._SetStatus(EntityStatus.Active);
            return _productTypeRepository.Save(pt); ;
        }
 private void AssertProductType(ProductType productTypeX, ProductType productTypeY)
 {
     Assert.IsNotNull(productTypeX);
     Assert.AreEqual(productTypeX.Code, productTypeY.Code);
     Assert.AreEqual(productTypeX.Name, productTypeY.Name);
     Assert.AreEqual(productTypeX.Description, productTypeY.Description);
     Assert.AreEqual(productTypeX._Status, productTypeY._Status);
 }
       private SaleProduct[] ConstructProducts(IEnumerable<ProductImport> entities)
       {
           var temp = new List<SaleProduct>();

           var defaultSupplier = ObjectFactory.GetInstance<ISupplierRepository>().GetAll(true).FirstOrDefault(p => p.Name != null && p.Name.Equals("default"));
           if (defaultSupplier == null)
           {
               defaultSupplier = new Supplier(Guid.NewGuid()) { Name = "default", Code = "default", Description = "default" };
               try
               {
                   ObjectFactory.GetInstance<ISupplierRepository>().Save(defaultSupplier);

               }
               catch
               {
               }
           }
          var validEntities = entities.Where(p => p.Description != null && !p.Description.ToLower().Contains("discontinued"));
          foreach (var entity in validEntities)
          {
              var product =
                  ObjectFactory.GetInstance<IProductRepository>().GetByCode(entity.ProductCode, true) as SaleProduct;
              bool isNew = false;
              if(product==null)
              {
                  product = new SaleProduct(Guid.NewGuid());
                  isNew = true;
              }
                             
               #region brand
               var allBrands = ObjectFactory.GetInstance<IProductBrandRepository>().GetAll(true).ToList();
               var brand = allBrands
                       .FirstOrDefault(
                           p =>
                           p.Code != null && p.Code.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase) ||
                           p.Name != null && p.Name.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase)
                           );

               if (string.IsNullOrEmpty(entity.BrandCode))
                   brand = allBrands.FirstOrDefault(p => p.Code != null && p.Code == "default");

                   if (brand == null)
                   {
                       brand = allBrands.FirstOrDefault(p => p.Code != null && p.Code == "default") ??
                               new ProductBrand(Guid.NewGuid())
                                   {
                                       Code = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode,
                                       Name = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode,
                                       Supplier = defaultSupplier
                                   };
                       try
                       {
                           ObjectFactory.GetInstance<IProductBrandRepository>().Save(brand);
                       }
                       catch
                       {
                       }
                   }
               
               product.Brand = brand;
               #endregion

               #region Product Type

               var productType = ObjectFactory.GetInstance<IProductTypeRepository>().GetAll(true).FirstOrDefault(
                       p => p.Code != null &&
                       p.Code.Equals(entity.ProductTypeCode, StringComparison.CurrentCultureIgnoreCase) ||
                       p.Code!= null &&p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                      p.Name != null &&
                       p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));
               if (productType == null)
               {
                   productType = new ProductType(Guid.NewGuid())
                                     {
                                         Name = string.IsNullOrEmpty(entity.ProductTypeCode)
                                                    ? "default"
                                                    : entity.ProductTypeCode,
                                         Code = string.IsNullOrEmpty(entity.ProductTypeCode)
                                                    ? "default"
                                                    : entity.ProductTypeCode,
                                         Description = string.IsNullOrEmpty(entity.ProductTypeCode)
                                                           ? "default"
                                                           : entity.ProductTypeCode
                                     };
                   try
                   {
                      ObjectFactory.GetInstance<IProductTypeRepository>().Save(productType);
                   }catch
                   {
                   }
               }
               product.ProductType = productType;
               #endregion

               #region Packaging type
               var allPackagingTypes = ObjectFactory.GetInstance<IProductPackagingTypeRepository>().GetAll(true).ToList();
               ProductPackagingType packagingType = null;

               if (string.IsNullOrEmpty(entity.PackagingTypeCode))
                   packagingType = allPackagingTypes.FirstOrDefault(p => p.Name != null && p.Name == "default");
               else
               {
                   packagingType = allPackagingTypes.FirstOrDefault(
                   p =>
                   p.Code != null && p.Code.Equals(entity.PackagingTypeCode, StringComparison.CurrentCultureIgnoreCase));
                   
               }
               if(packagingType==null)
               {
                   packagingType =allPackagingTypes.FirstOrDefault(p => p.Name != null && p.Name == "default")?? new ProductPackagingType(Guid.NewGuid())
                                       {
                                           Name =
                                               string.IsNullOrEmpty(entity.PackagingTypeCode)
                                                   ? "default"
                                                   : entity.PackagingTypeCode,
                                           Code =
                                               string.IsNullOrEmpty(entity.PackagingTypeCode)
                                                   ? "default"
                                                   : entity.PackagingTypeCode,
                                           Description =
                                               string.IsNullOrEmpty(entity.PackagingTypeCode)
                                                   ? "default"
                                                   : entity.PackagingTypeCode
                                       };
                   try
                   {
                       ObjectFactory.GetInstance<IProductPackagingTypeRepository>().Save(packagingType);
                   }
                   catch
                   {
                   }
               }
               product.PackagingType = packagingType;

               #endregion

               #region Packaging
               var packagings = ObjectFactory.GetInstance<IProductPackagingRepository>().GetAll(true).ToList();

               ProductPackaging packaging;
               if(string.IsNullOrEmpty(entity.PackagingCode))
                   packaging =
                       packagings.FirstOrDefault(
                           p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase));
               else
               {
                   packaging =
                       packagings.FirstOrDefault(
                           p =>
                           p.Code != null &&
                           p.Code.Equals(entity.PackagingCode, StringComparison.CurrentCultureIgnoreCase));
               }
               if(packaging==null)
               {
                   packaging = packagings.FirstOrDefault(
                       p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase)) ??
                               new ProductPackaging(Guid.NewGuid())
                                   {
                                       Name =
                                           string.IsNullOrEmpty(entity.PackagingCode) ? "default" : entity.PackagingCode,
                                       Code =
                                           string.IsNullOrEmpty(entity.PackagingCode) ? "default" : entity.PackagingCode,
                                       Description =
                                           string.IsNullOrEmpty(entity.PackagingCode) ? "default" : entity.PackagingCode
                                   };
                   try
                   {
                       ObjectFactory.GetInstance<IProductPackagingRepository>().Save(packaging);
                   }catch
                   {
                       
                   }
               }
               product.Packaging = packaging;
               #endregion

               #region VAT
               VATClass productVat;

               var productVats = ObjectFactory.GetInstance<IVATClassRepository>().GetAll(true).ToList();
               if(string.IsNullOrEmpty(entity.VATClass))
                  productVat= productVats.FirstOrDefault(p => p.VatClass != null  && p.VatClass.Equals("defaultVAT", StringComparison.CurrentCultureIgnoreCase));
               else
               {
                   productVat =
                       productVats.FirstOrDefault(
                           p =>
                           p.VatClass != null &&
                           p.VatClass.Equals(entity.VATClass, StringComparison.CurrentCultureIgnoreCase) ||
                           p.Name != null && p.Name.Equals(entity.VATClass, StringComparison.CurrentCultureIgnoreCase));
               }

               if(productVat==null)
               {
                   var viatItem = new VATClass.VATClassItem(Guid.NewGuid())
                                      {
                                          EffectiveDate = DateTime.Now,
                                          Rate = 0,

                                      };

                   productVat =
                       productVats.FirstOrDefault(
                           p =>
                           p.VatClass != null &&
                           p.VatClass.Equals("defaultVAT", StringComparison.CurrentCultureIgnoreCase)) ??
                       new VATClass(Guid.NewGuid())
                           {
                               Name = string.IsNullOrEmpty(entity.VATClass) ? "defaultVAT" : entity.VATClass,
                               VatClass = string.IsNullOrEmpty(entity.VATClass) ? "defaultVAT" : entity.VATClass,
                           };
                   productVat.VATClassItems.Add(viatItem);
                   try
                   {
                       ObjectFactory.GetInstance<IVATClassRepository>().Save(productVat);
                   }catch
                   {
                   }
               }
               product.VATClass = productVat;
               #endregion
              
               #region Flavour
               var allFlavors = ObjectFactory.GetInstance<IProductFlavourRepository>().GetAll(true).ToList();
               ProductFlavour flavor;
               if (string.IsNullOrEmpty(entity.ProductFlavourCode))
                   flavor =
                       allFlavors.FirstOrDefault(
                           p =>
                           p.Code != null && p.Code.Equals("defaultflavor", StringComparison.CurrentCultureIgnoreCase));
               else
               {
                   flavor=allFlavors.FirstOrDefault(p => p.Code != null && p.Code == entity.ProductFlavourCode);
               }
               if(flavor==null)
               {
                   flavor =
                       allFlavors.FirstOrDefault(
                           p =>
                           p.Code != null && p.Code.Equals("defaultflavor", StringComparison.CurrentCultureIgnoreCase)) ??
                       new ProductFlavour(Guid.NewGuid())
                           {
                               Name =
                                   string.IsNullOrEmpty(entity.ProductFlavourCode)
                                       ? "defaultflavor"
                                       : entity.ProductFlavourCode,
                               Code =
                                   string.IsNullOrEmpty(entity.ProductFlavourCode)
                                       ? "defaultflavor"
                                       : entity.ProductFlavourCode,
                               Description =
                                   string.IsNullOrEmpty(entity.ProductFlavourCode)
                                       ? "defaultflavor"
                                       : entity.ProductFlavourCode,
                               ProductBrand = product.Brand
                           };
                   try
                   {
                       ObjectFactory.GetInstance<IProductFlavourRepository>().Save(flavor);
                   }
                   catch (Exception ex)
                   {
                       FileUtility.LogError(ex.Message);
                   }
               }
               product.Flavour = flavor;
               #endregion

               #region Discount Group
               if(!string.IsNullOrEmpty(entity.DiscountGroup))
               {
                   DiscountGroup discountGroup = ObjectFactory.GetInstance<IGroupDiscountMapper>().FindByCode(entity.DiscountGroup);
                      
                   if(discountGroup==null)
                   {
                       discountGroup = new DiscountGroup(Guid.NewGuid())
                       {
                           Code = entity.DiscountGroup.Trim(),
                           Name = entity.DiscountGroup.Trim(),
                           _Status = EntityStatus.Active
                       };
                       try
                       {
                           ObjectFactory.GetInstance<IGroupDiscountMapper>().Insert(discountGroup);
                       }catch(Exception ex)
                       {
                           FileUtility.LogError(ex.Message);
                       }
                   }

               }
              
               #endregion
              
               product.ProductCode = entity.ProductCode;
               product.ExFactoryPrice = entity.ExFactoryPrice;
               product.Description = entity.Description;
              UpdateDefaultTierPricing(product.Id, product.ExFactoryPrice, product.ExFactoryPrice);

               if (isNew || HasProductChanged(product))
                   temp.Add(product);
           }
           return temp.ToArray();
       }
       private async Task<IEnumerable<Product>> ConstructEntities(IEnumerable<ProductImport> entities)
       {
           return await Task.Run(() =>
                                     {
                                        
               var temp = new List<SaleProduct>();
               var exisitingsproducts = _productRepository.GetAll(true).OfType<SaleProduct>().ToList();
               var defaultSupplier =
                   _supplierRepository.GetAll(true).FirstOrDefault(p => p.Name != null && p.Name.Equals("default"));
               var allBrands = _productBrandRepository.GetAll(true).ToList();
               if (defaultSupplier == null)
               {
                   defaultSupplier = new Supplier(Guid.NewGuid())
                                         {Name = "default", Code = "default", Description = "default"};
                   try
                   {
                       _supplierRepository.Save(defaultSupplier);

                   }
                   catch
                   {
                   }
               }
               
               foreach (var entity in entities)
               {
                   
                   var product = exisitingsproducts.FirstOrDefault(p =>  p.ProductCode !=null && p.ProductCode.Equals(entity.ProductCode,StringComparison.CurrentCultureIgnoreCase
                       )) ?? new SaleProduct(Guid.NewGuid());

                   
                   var brand = allBrands
                           .FirstOrDefault(
                               p =>p.Code != null && (p.Code.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase)) ||
                               p.Name != null && p.Name.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase));

                   if (string.IsNullOrEmpty(entity.BrandCode))
                       brand = allBrands.FirstOrDefault(p => p.Code != null && (p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) || p.Name != null && p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase)));
                               
                              
                   if (brand == null)
                   {
                       brand = allBrands.FirstOrDefault(p => p.Code != null && p.Code == "default") ??
                               new ProductBrand(Guid.NewGuid())
                                   {
                                       Code = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode,
                                       Name = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode,
                                       Supplier = defaultSupplier
                                   };
                       try
                       {
                           _productBrandRepository.Save(brand);
                       }
                       catch
                       {
                       }
                   }

                   product.Brand = brand;

                   if(product.ProductType==null)
                   {
                      var productType= _productTypeRepository.GetAll(true).FirstOrDefault(
                       p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                           p.Name != null &&
                       p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));

                       if (productType == null)
                       {
                           productType = new ProductType(Guid.NewGuid())
                           {
                               Name = "default",
                               Code = "default",
                               Description = "default"
                           };
                           try
                           {
                               _productTypeRepository.Save(productType);
                           }
                           catch
                           {
                           }
                       }
                       product.ProductType = productType;
                   }
                   
                  

                   if (product.PackagingType == null)
                   {
                       var packagingType = _productPackagingTypeRepository.GetAll(true).FirstOrDefault(
                           p => p.Code != null &&
                           p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                           p.Name != null &&
                           p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));
                       if (packagingType == null)
                       {
                          packagingType= new ProductPackagingType(Guid.NewGuid())
                           {
                               Name = "default",
                               Code =
                                   "default",
                               Description = "default"
                           };
                           try
                           {
                               _productPackagingTypeRepository.Save(packagingType);
                           }
                           catch
                           {
                           }
                           
                       }
                       product.PackagingType = packagingType;
                   }


                   if (product.Packaging == null)
                   {
                       var packaging =
                           _productPackagingRepository.GetAll(true).FirstOrDefault(
                               p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) ||
                                   p.Name != null &&
                                    p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase));
                       if (packaging == null)
                       {
                           packaging = new ProductPackaging(Guid.NewGuid())
                                           {
                                               Name = "default",
                                               Code =
                                                   "default",
                                               Description =
                                                   "default",
                                           };
                           try
                           {
                               _productPackagingRepository.Save(packaging);
                           }
                           catch
                           {

                           }
                       }
                       product.Packaging = packaging;
                   }

                   if (product.VATClass == null)
                   {
                       var productVat =
                           _vatClassRepository.GetAll(true).FirstOrDefault(
                               p => p.VatClass != null &&
                               p.VatClass == "defaultVAT" ||
                               p.Name != null &&
                               p.Name.Equals("defaultVAT", StringComparison.CurrentCultureIgnoreCase));

                       if (productVat == null)
                       {
                           var viatItem = new VATClass.VATClassItem(Guid.NewGuid())
                                              {
                                                  EffectiveDate = DateTime.Now,
                                                  Rate = 0,

                                              };
                           productVat = new VATClass(Guid.NewGuid())
                                            {
                                                Name = "defaultVAT",
                                                VatClass = "defaultVAT",
                                            };
                           productVat.VATClassItems.Add(viatItem);
                           try
                           {
                               _vatClassRepository.Save(productVat);
                           }
                           catch
                           {
                           }

                       }
                       product.VATClass = productVat;
                   }
                   if(product.Flavour==null)
                   {
                       var flavor =
                           _flavourRepository.GetAll(true).FirstOrDefault(
                               p =>p.Name !=null &&
                               p.Name == "defaultflavor" ||p.Code
                               !=null &&
                               p.Code.Equals("defaultflavor", StringComparison.CurrentCultureIgnoreCase));

                       if (flavor == null)
                       {
                           flavor = new ProductFlavour(Guid.NewGuid())
                                        {
                                            Name = "defaultflavor",
                                            Code = "defaultflavor",
                                            Description = "defaultflavor",
                                            ProductBrand = brand
                                        };
                           try
                           {
                               _flavourRepository.Save(flavor);
                           }
                           catch
                           {
                           }

                       }
                       product.Flavour = flavor;
                   }
                   
                   product.ProductCode = entity.ProductCode;
                   product._Status =EntityStatus.New; //GeneralHelper.GetStatus(entity.Status);
                   product.ExFactoryPrice = entity.ExFactoryPrice;
                   product.Description = entity.Description;

                   

                   temp.Add(product);
               }
               return temp.OfType<Product>().ToList();
           });

       }