Пример #1
0
        public void SaveAverageProductRates(AverageProductRate item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            using (var repository = _repositoryFactory())
            {
                using (var changeTracker = GetChangeTracker(repository))
                {
                    var alreadyExistEntities = repository.GetAverageProductRatesByProductIds(new[] { item.ProductId });

                    var sourceEntity = AbstractTypeFactory <AverageProductRateEntity> .TryCreateInstance()
                                       .FromModel(item);

                    var targetEntity = alreadyExistEntities.FirstOrDefault(x => x.ProductId == sourceEntity.ProductId);
                    if (targetEntity != null)
                    {
                        changeTracker.Attach(targetEntity);
                        sourceEntity.Patch(targetEntity);
                    }
                    else
                    {
                        repository.Add(sourceEntity);
                    }

                    CommitChanges(repository);
                }
            }
        }
Пример #2
0
        public virtual AverageProductRateEntity FromModel(AverageProductRate averageProductRate)
        {
            if (averageProductRate == null)
            {
                throw new ArgumentNullException(nameof(averageProductRate));
            }

            AverageRate = averageProductRate.AverageRate;
            ProductId   = averageProductRate.ProductId;

            return(this);
        }
Пример #3
0
        public virtual AverageProductRate ToModel(AverageProductRate averageProductRate)
        {
            if (averageProductRate == null)
            {
                throw new ArgumentNullException(nameof(averageProductRate));
            }

            averageProductRate.AverageRate = AverageRate;
            averageProductRate.ProductId   = ProductId;

            return(averageProductRate);
        }