Пример #1
0
        public Pricelist[] GetPricelistsByIdAsync(string[] ids)
        {
            var pricingRepositoryImpl = new PricingRepositoryImpl();

            Pricelist[] priceList = null;

            VirtoCommerce.Domain.Pricing.Model.Pricelist[] result = null;
            if (ids != null)
            {
                using (var repository = new PricingModuleCoreContext())
                {
                    var pricelistEntities = pricingRepositoryImpl.GetPricelistByIds(ids);
                    result = pricelistEntities.Select(x => x.ToModel(AbstractTypeFactory <Pricelist> .TryCreateInstance())).ToArray();
                    List <Pricelist> list = result.OfType <Pricelist>().ToList();
                    priceList = list.Cast <Pricelist>().ToArray();

                    foreach (var res in priceList)
                    {
                        res.Vendors = repository.GetVendorAssigned(res.Id);
                    }

                    return(priceList);
                }
            }
            return(priceList);
        }
Пример #2
0
        public void DeletePriceList(string[] priceListsid)
        {
            if (priceListsid == null)
            {
                throw new ArgumentNullException(nameof(priceListsid));
            }

            var pricingRepositoryImpl = new PricingRepositoryImpl();

            if (priceListsid == null)
            {
                throw new ArgumentNullException("priceListsid is null");
            }

            using (var repository = new PricingModuleCoreContext())
            {
                var priceDetailList = repository.GetPriceListDetails(priceListsid);
                foreach (var result in priceDetailList)
                {
                    repository.Remove(result);
                    CommitChanges(repository);
                }
            }

            pricingRepositoryImpl.DeletePricelists(priceListsid);
        }
Пример #3
0
 public override void SetupDatabase()
 {
     using (var context = new PricingRepositoryImpl(_connectionString, _container.Resolve <AuditableInterceptor>()))
     {
         var initializer = new SetupDatabaseInitializer <PricingRepositoryImpl, Data.Migrations.Configuration>();
         initializer.InitializeDatabase(context);
     }
 }
Пример #4
0
 public override void SetupDatabase()
 {
     using (var context = new PricingRepositoryImpl("VirtoCommerce"))
     {
         var initializer = new SetupDatabaseInitializer <PricingRepositoryImpl, Data.Migrations.Configuration>();
         initializer.InitializeDatabase(context);
     }
 }
Пример #5
0
        private IPricingRepository GetPricingRepository()
        {
            var dbContextFactory = new DesignTimeDbContextFactory();
            var dbContext        = dbContextFactory.CreateDbContext(new string[0]);

            var result = new PricingRepositoryImpl(dbContext);

            return(result);
        }
Пример #6
0
        public virtual async Task SavePricelistsAsync(Pricelist[] priceLists)
        {
            if (priceLists == null)
            {
                throw new ArgumentNullException(nameof(priceLists));
            }

            var pkMap = new PrimaryKeyResolvingMap();

            var pricingRepositoryImpl = new PricingRepositoryImpl();

            using (var repository = new PricingModuleCoreContext())
            {
                using (var changeTracker = GetChangeTracker(repository))
                {
                    bool saveFailed;
                    var  pricelistsIds        = priceLists.Select(x => x.Id).Where(x => x != null).Distinct().ToArray();
                    var  alreadyExistEntities = GetPricelistsByIdAsync(pricelistsIds);
                    foreach (var pricelist in priceLists)
                    {
                        var sourceEntity = AbstractTypeFactory <PricelistExEntity> .TryCreateInstance().FromModel(pricelist, pkMap);

                        var targetEntityAlreadyExist = alreadyExistEntities.FirstOrDefault(x => x.Id == pricelist.Id);

                        if (targetEntityAlreadyExist != null)
                        {
                            var targetEntity = AbstractTypeFactory <PricelistExEntity> .TryCreateInstance().ToModel(targetEntityAlreadyExist);

                            repository.Attach(targetEntity);
                            sourceEntity.Patch(targetEntity);
                        }
                        else
                        {
                            repository.Add(sourceEntity);
                        }
                    }
                    do
                    {
                        saveFailed = false;
                        try
                        {
                            CommitChanges(repository);
                            pkMap.ResolvePrimaryKeys();
                        }
                        catch (DbUpdateConcurrencyException ex)
                        {
                            var entry = ex.Entries.Single();
                            entry.OriginalValues.SetValues(entry.GetDatabaseValues());
                        }
                    } while (saveFailed);
                }
            }
        }
Пример #7
0
        public override void SetupDatabase(SampleDataLevel sampleDataLevel)
        {
            using (var context = new PricingRepositoryImpl("VirtoCommerce"))
            {
                IDatabaseInitializer <PricingRepositoryImpl> initializer;

                switch (sampleDataLevel)
                {
                case SampleDataLevel.Full:
                case SampleDataLevel.Reduced:
                    initializer = new PricingSampleDatabaseInitializer();
                    break;

                default:
                    initializer = new SetupDatabaseInitializer <PricingRepositoryImpl, Data.Migrations.Configuration>();
                    break;
                }

                initializer.InitializeDatabase(context);
            }
        }
        private static IPricingRepository GetPricingRepository()
        {
            var result = new PricingRepositoryImpl("VirtoCommerce", new EntityPrimaryKeyGeneratorInterceptor(), new AuditableInterceptor(null));

            return(result);
        }