コード例 #1
0
ファイル: CustomerService.cs プロジェクト: Wipcore/Ecommerce
 public CustomerService(ICommerceDatabase db, IRepository<Customer> customerRepository, IRepository<Address> addressRepository, IRepository<CustomerCustomField> customerCustomFieldRepository)
 {
     _db = db;
     _customerRepository = customerRepository;
     _addressRepository = addressRepository;
     _customerCustomFieldRepository = customerCustomFieldRepository;
 }
コード例 #2
0
        // Passing in ICommerceDatabase instead of CommerceDatabase is because,
        // in IoC container the service type is ICommerceDatabase.
        // If we ask for CommerceDatabase here, the IoC container will not be able to provide the CommerceDatabase instance.
        public CommerceRepository(ICommerceDatabase database)
        {
            Require.NotNull(database, "database");
            Require.That(database is CommerceDatabase, "Requires type " + typeof(CommerceDatabase) + ".");

            _database = (CommerceDatabase)database;
        }
コード例 #3
0
ファイル: MostCostOrder.cs プロジェクト: Wipcore/Ecommerce
        public IPagedList<OrderQueryModel> Query(IEnumerable<ExtendedQueryParameter> parameters, ICommerceDatabase db, int pageIndex, int pageSize)
        {
            if (pageIndex <= 1)
                pageIndex = 1;

            int num = 10;
            var numPara = parameters.FirstOrDefault(o => o.Name == "Num");
            if (numPara != null && numPara.Value != null && !string.IsNullOrEmpty(numPara.Value.ToString()))
                num = Convert.ToInt32(numPara.Value);
            decimal totalPrice = 100.0m;
            var totalPara = parameters.FirstOrDefault(o => o.Name == "TotalPrice");
            if (totalPara != null && totalPara.Value != null && !string.IsNullOrEmpty(totalPara.Value.ToString()))
                totalPrice = Convert.ToDecimal(totalPara.Value);

            var customerQuery = db.GetRepository<Customer>().Query();
            IQueryable<OrderQueryModel> query = db.GetRepository<Order>().Query()
                .Join(customerQuery,
                           order => order.CustomerId,
                           customer => customer.Id,
                           (order, customer) => new { Order = order, Customer = customer })
                .Select(o => new OrderQueryModel() { Customer = o.Customer, Order = o.Order })
                .Where(o => o.Order.Total > totalPrice)
                .OrderByDescending(o => o.Order.Total);
            var total = query.Count();
            var data = query.Skip(0).Take(num).ToArray();
            return new PagedList<OrderQueryModel>(data, pageIndex, pageSize, total);
        }
コード例 #4
0
ファイル: ProductService.cs プロジェクト: Wipcore/Ecommerce
 public ProductService(ICommerceDatabase db, IRepository<Product> repoProduct, IRepository<ProductPrice> repoProductPrice, IRepository<ProductPriceVariantValue> repoProductPriceVariants, IRepository<CustomField> repoCustomField)
 {
     _db = db;
     _repoProduct = repoProduct;
     _repoProductPrice = repoProductPrice;
     _repoProductPriceVariants = repoProductPriceVariants;
     _repoCustomField = repoCustomField;
 }
コード例 #5
0
 public static void Transactional(this ICommerceDatabase database, Action action)
 {
     using (var tx = database.BeginTransaction())
     {
         action();
         tx.Commit();
     }
 }
コード例 #6
0
 public CustomerController(ICommerceDatabase db, ICustomerService customerService, ICountryService countryService, IOrderService orderService,
     IExtendedQueryManager extendedQueryManager)
 {
     _db = db;
     _customerService = customerService;
     _countryService = countryService;
     _orderService = orderService;
     _extendedQueryManager = extendedQueryManager;
 }
コード例 #7
0
        private void AddLanguageChildItems(MenuItem parent, Language lang, ICommerceDatabase database)
        {
            var culture = CultureInfo.GetCultureInfo(lang.Name);

            AddLanguageChildItem <Brand>(parent, culture, "Brands", "Brand", database.Repository <Brand>().Query());
            AddLanguageChildItem <Category>(parent, culture, "Categories", "Category", database.Repository <Category>().Query());
            AddLanguageChildItem <Product>(parent, culture, "Products", "Product", database.Repository <Product>().Query());
            AddLanguageChildItem <ProductType>(parent, culture, "Product types", "ProductType", database.Repository <ProductType>().Query());
        }
コード例 #8
0
        public void CreateDatabase(ICommerceDatabase database)
        {
            Require.NotNull(database, "database");

            // TODO: Ugly cast? Maybe better to directly expose entity framework DbContext as a property?
            var dbContext = ((CommerceDatabase)database).DbContext;
            var objectContext = ToObjectContext(dbContext);
            var script = objectContext.CreateDatabaseScript();
            dbContext.Database.ExecuteSqlCommand(script);
        }
コード例 #9
0
        public void DeleteDatabase(ICommerceDatabase database)
        {
            Require.NotNull(database, "database");

            var dbContext = ((CommerceDatabase)database).DbContext;
            var objectContext = ToObjectContext(dbContext);
            var storeItemCollection = (StoreItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
            var script = SqlScripts.DropObjects(storeItemCollection);
            dbContext.Database.ExecuteSqlCommand(script);
        }
コード例 #10
0
        public void CreateDatabase(ICommerceDatabase database)
        {
            Require.NotNull(database, "database");

            // TODO: Ugly cast? Maybe better to directly expose entity framework DbContext as a property?
            var dbContext     = ((CommerceDatabase)database).DbContext;
            var objectContext = ToObjectContext(dbContext);
            var script        = objectContext.CreateDatabaseScript();

            dbContext.Database.ExecuteSqlCommand(script);
        }
コード例 #11
0
        public void DeleteDatabase(ICommerceDatabase database)
        {
            Require.NotNull(database, "database");

            var dbContext           = ((CommerceDatabase)database).DbContext;
            var objectContext       = ToObjectContext(dbContext);
            var storeItemCollection = (StoreItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
            var script = SqlScripts.DropObjects(storeItemCollection);

            dbContext.Database.ExecuteSqlCommand(script);
        }
コード例 #12
0
ファイル: OrderController.cs プロジェクト: Wipcore/Ecommerce
        public OrderController(ICommerceDatabase db, IOrderService orderService, ICustomerService customerService, IProductService productService, ICountryService countryService, IPaymentMethodService paymentMethodService,
            IExtendedQueryManager extendedQueryManager)
        {
            _db = db;
            _orderService = orderService;
            _customerService = customerService;
            _productService = productService;
            _countryService = countryService;
            _paymentMethodService = paymentMethodService;

            _extendedQueryManager = extendedQueryManager;
        }
コード例 #13
0
        public static T Transactional <T>(this ICommerceDatabase database, Func <T> action)
        {
            T result;

            using (var tx = database.BeginTransaction())
            {
                result = action();
                tx.Commit();
            }

            return(result);
        }
コード例 #14
0
 public ProductController(
         ICommerceDatabase db,
         ISettingService settingService,
         IProductService productService,
         IProductTypeService productTypeService,
         IBrandService brandService,
         ICategoryService categoryService,
         IExtendedQueryManager extendedQueryManager)
 {
     _db = db;
     _settingService = settingService;
     _productService = productService;
     _productTypeService = productTypeService;
     _brandService = brandService;
     _categoryService = categoryService;
     _extendedQueryManager = extendedQueryManager;
 }
コード例 #15
0
        public IPagedList<CustomerQueryModel> Query(IEnumerable<ExtendedQueryParameter> parameters, ICommerceDatabase db, int pageIndex, int pageSize)
        {
            if (pageIndex <= 1)
                pageIndex = 1;
            int num = 10;
            var numPara = parameters.FirstOrDefault(o => o.Name == "Num");
            if (numPara != null && numPara.Value != null && !string.IsNullOrEmpty(numPara.Value.ToString()))
                num = Convert.ToInt32(numPara.Value);

            var orderQuery = db.GetRepository<Order>().Query();
            IQueryable<CustomerQueryModel> query = db.GetRepository<Customer>().Query()
                .GroupJoin(orderQuery,
                           customer => customer.Id,
                           order => order.CustomerId,
                           (customer, orders) => new { Customer = customer, Orders = orders.Count() })
                .Select(o => new CustomerQueryModel() { Customer = o.Customer, OrdersCount = o.Orders })
                .OrderByDescending(o => o.OrdersCount);
            var total = query.Count();
            var data = query.Skip(0).Take(num).ToArray();
            return new PagedList<CustomerQueryModel>(data, pageIndex, pageSize, total);
        }
コード例 #16
0
        public IPagedList<CustomerQueryModel> Query(IEnumerable<ExtendedQueryParameter> parameters, ICommerceDatabase db, int pageIndex, int pageSize)
        {
            if (pageIndex <= 1)
                pageIndex = 1;

            int days = 7;
            var para = parameters.FirstOrDefault(o => o.Name == "Days");
            if (para != null && para.Value != null)
                days = Convert.ToInt32(para.Value);
            DateTime lastDate = DateTime.Today.AddDays(-1 * days);

            var orderQuery = db.GetRepository<Order>().Query()
                .Where(o => o.CreatedAtUtc > lastDate);
            IQueryable<CustomerQueryModel> query = db.GetRepository<Customer>().Query()
                .GroupJoin(orderQuery,
                           customer => customer.Id,
                           order => order.CustomerId,
                           (customer, orders) => new { Customer = customer, Orders = orders.Count() })
                .Select(o => new CustomerQueryModel() { Customer = o.Customer, OrdersCount = o.Orders })
                .OrderByDescending(o => o.Customer.Id);
            var total = query.Count();
            var data = query.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToArray();
            return new PagedList<CustomerQueryModel>(data, pageIndex, pageSize, total);
        }
コード例 #17
0
 public static IQueryable <T> Query <T>(this ICommerceDatabase database)
     where T : class
 {
     return(database.Repository <T>().Query());
 }
コード例 #18
0
 public static T Find <T>(this ICommerceDatabase database, params object[] ids)
     where T : class
 {
     return(database.Repository <T>().Find(ids));
 }
コード例 #19
0
ファイル: PromotionService.cs プロジェクト: Wipcore/Ecommerce
 public PromotionService(ICommerceDatabase db)
 {
     _db = db;
 }
コード例 #20
0
 public ChangeSavingPointsActivity(ICommerceDatabase database)
 {
     _database = database;
 }
コード例 #21
0
 public PredefinedCustomFieldService(ICommerceDatabase database)
 {
     _repository = database.Repository <CustomFieldDefinition>();
 }
コード例 #22
0
 public ProductService(CommerceInstance instance)
 {
     _instance = instance;
     _database = instance.Database;
 }
コード例 #23
0
ファイル: CategoryService.cs プロジェクト: Wipcore/Ecommerce
 public CategoryService(ICommerceDatabase db, IRepository<Category> categoryRepository, IRepository<CategoryCustomField> categoryCustomFieldRepository)
 {
     _db = db;
     _categoryRepository = categoryRepository;
     _categoryCustomFieldRepository = categoryCustomFieldRepository;
 }
コード例 #24
0
 public PredefinedCustomFieldService(ICommerceDatabase database)
 {
     _repository = database.Repository<CustomFieldDefinition>();
 }
コード例 #25
0
 public CountryService(ICommerceDatabase database)
 {
     _countryRepository = database.Repository <Country>();
 }
コード例 #26
0
ファイル: BrandService.cs プロジェクト: Wipcore/Ecommerce
 public BrandService(ICommerceDatabase db, IRepository<Brand> brandRepository, IRepository<BrandCustomField> brandCustomFieldRepository)
 {
     _db = db;
     _brandRepository = brandRepository;
     _brandCustomFieldRepository = brandCustomFieldRepository;
 }
コード例 #27
0
ファイル: CountryService.cs プロジェクト: Kooboo/Ecommerce
 public CountryService(ICommerceDatabase database)
 {
     _countryRepository = database.Repository<Country>();
 }
コード例 #28
0
ファイル: ProductService.cs プロジェクト: Kooboo/Ecommerce
 public ProductService(CommerceInstance instance)
 {
     _instance = instance;
     _database = instance.Database;
 }
コード例 #29
0
 public static void Insert <T>(this ICommerceDatabase database, T entity)
     where T : class
 {
     database.Repository <T>().Insert(entity);
 }
コード例 #30
0
 public static void Delete <T>(this ICommerceDatabase database, T entity)
     where T : class
 {
     database.Repository <T>().Delete(entity);
 }
コード例 #31
0
 public SettingService(ICommerceDatabase database)
 {
     _repository = database.Repository <SettingItem>();
 }