public ProductInfo[] GetByIds(int[] productIDs)
        {
            Throws.IfArrayArgumentNullOrEmpty(productIDs, _ => productIDs);

            using (DpcModelDataContext context = _customer.DatabaseType == DatabaseType.Postgres
                    ? GetNpgSqlDpcModelDataContext(_customer.ConnectionString)
                    : GetSqlServerDpcModelDataContext(_customer.ConnectionString))
            {
                var products = context.GetProducts(new ProductLocator
                {
                    Language    = _language,
                    IsLive      = _state,
                    Version     = 1,
                    QueryFormat = _isJson ? "json" : "xml"
                }).Where(p =>
                         productIDs.Contains(p.DpcId)
                         ).ToArray();

                var list = new List <ProductInfo>();
                // производим запрос - без этого не будет работать dependency
                foreach (var product in products)
                {
                    var item = new ProductInfo
                    {
                        Id                    = product.DpcId,
                        Updated               = product.Updated,
                        Alias                 = product.Alias,
                        Hash                  = product.Hash,
                        Title                 = product.Title,
                        LastPublishedUserId   = product.UserUpdatedId,
                        LastPublishedUserName = product.UserUpdated
                    };

                    list.Add(item);
                }

                return(list.ToArray());
            }
        }
Example #2
0
 public int[] GetAllProductId(ProductLocator locator, int page, int pageSize)
 {
     return(_context.GetProducts(locator)
            .OrderBy(x => x.DpcId).Skip(page * pageSize).Take(pageSize)
            .Select(x => x.DpcId).ToArray());
 }