public virtual async Task SaveChangesAsync(TaxProvider[] taxProviders)
        {
            var pkMap = new PrimaryKeyResolvingMap();

            using (var repository = _repositoryFactory())
            {
                var dataExistEntities = await repository.GetStoreTaxProviderByIdsAsync(taxProviders.Where(x => !x.IsTransient()).Select(x => x.Id).ToArray());

                foreach (var taxProvider in taxProviders)
                {
                    var originalEntity = dataExistEntities.FirstOrDefault(x => x.Id == taxProvider.Id);
                    var modifiedEntity = AbstractTypeFactory <StoreTaxProviderEntity> .TryCreateInstance().FromModel(taxProvider, pkMap);

                    if (originalEntity != null)
                    {
                        modifiedEntity.Patch(originalEntity);
                    }
                    else
                    {
                        repository.Add(modifiedEntity);
                    }
                }
                //Raise domain events
                await repository.UnitOfWork.CommitAsync();

                pkMap.ResolvePrimaryKeys();
                //Save settings
                await _settingManager.DeepSaveSettingsAsync(taxProviders);
            }

            TaxCacheRegion.ExpireRegion();
        }
예제 #2
0
        public ActionResult ResetCache()
        {
            //TODO: Replace to some other (maybe with using reflection)
            ThemeEngineCacheRegion.ExpireRegion();
            CartCacheRegion.ExpireRegion();
            CatalogCacheRegion.ExpireRegion();
            ContentBlobCacheRegion.ExpireRegion();
            CustomerCacheRegion.ExpireRegion();
            MarketingCacheRegion.ExpireRegion();
            PricingCacheRegion.ExpireRegion();
            QuoteCacheRegion.ExpireRegion();
            RecommendationsCacheRegion.ExpireRegion();
            StaticContentCacheRegion.ExpireRegion();
            StoreCacheRegion.ExpireRegion();
            TaxCacheRegion.ExpireRegion();
            SubscriptionCacheRegion.ExpireRegion();
            SecurityCacheRegion.ExpireRegion();

            return(StoreFrontRedirect("~/"));
        }