示例#1
0
        private Guid GetSitefinitySiteId()
        {
            Guid siteId;

            using (var connection = SqlSessionFactory.Create(SitefinityConnectionString))
            {
                siteId = connection.QueryFirstOrDefault <Guid>($"select id from sf_sites where nme = '{SitefinitySiteName}'");
            }

            return(siteId);
        }
        public IEnumerable <Product> Execute(IEnumerable <ProductViewModel> sitefinityProducts)
        {
            _session = SessionFactory.Create(ConnectionString);

            var connection = SqlSessionFactory.Create(ConfigurationManager.ConnectionStrings["SitefinityConnectionString"].ConnectionString);

            var catalog = _session.Query <ProductCatalog>().First(x => x.Name == SitefinitySiteName);

            _defaultPriceGroup = catalog.PriceGroup;

            var products = new List <Product>();

            try
            {
                foreach (var sfProduct in sitefinityProducts)
                {
                    var product = _session.Query <Product>()
                                  .SingleOrDefault(a => a.Sku == sfProduct.Item.Sku && (a.VariantSku == null || a.VariantSku == string.Empty));

                    if (product != null)
                    {
                        Log.Warn($"product {product.Name.ToShortName(25)} with sku {sfProduct.Item.Sku} already exists in Ucommerce");
                        continue;
                    }

                    product = new Product();

                    AddProduct(product, sfProduct);
                    AddProductCategoryAssociations(product, sfProduct);
                    products.Add(product);
                }
            }
            finally
            {
                connection.Close();
                connection.Dispose();
                _session.Close();
            }

            return(products);
        }