コード例 #1
0
        public ImportResult Execute(NopCommerceDataReader dataReader)
        {
            using (new NotificationDisabler())
            {
                var nopImportContext = new NopImportContext();
                var messages         = new List <string>
                {
                    _importPictureData.ImportPictures(dataReader, nopImportContext),
                    _importCountryData.ProcessCountries(dataReader, nopImportContext),
                    _importRegionData.ProcessRegions(dataReader, nopImportContext),
                    _importAddresses.ProcessAddresses(dataReader, nopImportContext),
                    _importUsers.ProcessUsers(dataReader, nopImportContext),
                    _importTaxRates.ProcessTaxRates(dataReader, nopImportContext),
                    _importBrands.ProcessBrands(dataReader, nopImportContext),
                    _importSpecifications.ProcessSpecifications(dataReader, nopImportContext),
                    _importSpecificationAttributeOptions.ProcessSpecificationAttributeOptions(dataReader, nopImportContext),
                    _importOptions.ProcessOptions(dataReader, nopImportContext),
                    _importTags.ProcessTags(dataReader, nopImportContext),
                    _importCategories.ProcessCategories(dataReader, nopImportContext),
                    _importProducts.ProcessProducts(dataReader, nopImportContext),
                    _importOrders.ProcessOrders(dataReader, nopImportContext)
                };

                _indexService.InitializeAllIndices();
                return(new ImportResult
                {
                    Messages = messages,
                    Success = true
                });
            }
        }
コード例 #2
0
        public string ProcessCategories(NopCommerceDataReader dataReader, NopImportContext nopImportContext)
        {
            var categoryDatas = dataReader.GetCategoryData();

            IEnumerable <CategoryData> parentCategories = categoryDatas.Where(data => !data.ParentId.HasValue);

            var productSearch = _uniquePageService.GetUniquePage <ProductSearch>();

            _session.Transact(session =>
            {
                foreach (CategoryData categoryData in parentCategories)
                {
                    UpdateCategory(session, categoryData, productSearch, categoryDatas, nopImportContext);
                }
            });
            return(string.Format("{0} categories processed.", categoryDatas.Count));
        }
コード例 #3
0
 public ImportResult UpdateOrdersAndUsers(NopCommerceDataReader dataReader)
 {
     using (new NotificationDisabler())
     {
         var nopImportContext = new NopImportContext();
         var messages         = new List <string>
         {
             _importUsers.ProcessUsers(dataReader, nopImportContext),
             _importOrders.ProcessOrders(dataReader, nopImportContext)
         };
         _indexService.InitializeAllIndices();
         return(new ImportResult
         {
             Messages = messages,
             Success = true
         });
     }
 }
コード例 #4
0
        private void UpdateCategory(ISession session, CategoryData categoryData, Webpage parent, HashSet <CategoryData> allData, NopImportContext nopImportContext)
        {
            CategoryData data          = categoryData;
            var          suggestParams = new SuggestParams
            {
                DocumentType = typeof(Category).FullName,
                PageName     = data.Name,
                UseHierarchy = true
            };
            var category = new Category
            {
                Name               = data.Name,
                UrlSegment         = string.IsNullOrWhiteSpace(data.Url) ? _webpageUrlService.Suggest(parent, suggestParams) : data.Url,
                Parent             = parent,
                CategoryAbstract   = data.Abstract.LimitCharacters(500),
                PublishOn          = data.Published ? CurrentRequestData.Now.Date : (DateTime?)null,
                RevealInNavigation = true
            };
            var mediaFile = nopImportContext.FindNew <MediaFile>(data.PictureId);

            if (mediaFile != null)
            {
                category.FeatureImage = mediaFile.FileUrl;
            }
            session.Save(category);
            nopImportContext.AddEntry(data.Id, category);
            List <CategoryData> children = allData.Where(d => d.ParentId == data.Id).ToList();

            foreach (CategoryData child in children)
            {
                UpdateCategory(session, child, category, allData, nopImportContext);
            }
        }