コード例 #1
0
ファイル: LocalApiContext.cs プロジェクト: Kooboo/Ecommerce
 public LocalApiContext(ApiContext context, CommerceInstance instance)
 {
     InstanceName = context.InstanceName;
     Culture = context.Culture;
     Customer = context.Customer;
     _instance = instance;
 }
コード例 #2
0
 public System.Collections.IEnumerable Enumerate(CommerceInstance instance, CultureInfo culture)
 {
     foreach (var data in new BatchedQuery<Product>(Query(instance), 1000))
     {
         var product = data as Product;
         yield return ProductModel.Create(product, culture, CategoryTree.Get(instance.Name));
     }
 }
コード例 #3
0
ファイル: QueryContext.cs プロジェクト: Kooboo/Ecommerce
 public QueryContext(CommerceInstance instance, string keywords, int pageIndex, int pageSize, object config)
 {
     Instance = instance;
     Keywords = keywords;
     PageIndex = pageIndex;
     PageSize = pageSize;
     Config = config;
 }
コード例 #4
0
        public override ActionResult Execute(IEnumerable<Order> orders, object config, CommerceInstance instance)
        {
            foreach (var order in orders)
            {
                Event.Raise(new ApproveOrder(order.Id), instance);
            }

            return null;
        }
コード例 #5
0
ファイル: DeleteCommand.cs プロジェクト: Kooboo/Ecommerce
        public override ActionResult Execute(IEnumerable<Customer> customers, object config, CommerceInstance instance)
        {
            var service = new CustomerService(instance);
            foreach (var customer in customers)
            {
                service.Delete(customer);
            }

            return null;
        }
コード例 #6
0
        public override ActionResult Execute(IEnumerable<Product> products, object config, CommerceInstance instance)
        {
            var service = new ProductService(instance);
            foreach (var product in products)
            {
                service.Unpublish(product);
            }

            return null;
        }
コード例 #7
0
ファイル: EventSlot.cs プロジェクト: Kooboo/Ecommerce
        private void Handle(IEvent @event, CommerceInstance commerceInstance)
        {
            // TODO: Need to be passed in?
            var instance = CommerceInstance.Current;

            var rules = RuleManager.GetManager(instance.Name).GetRules(@event.GetType().Name);
            var activities = new List<ConfiguredActivity>();
            foreach (var rule in rules)
            {
                activities.AddRange(rule.Execute(@event));
            }

            ScheduleActivities(activities.Where(it => it.Async), @event, instance);
            ExecuteActivities(activities.Where(it => !it.Async), @event);
        }
コード例 #8
0
        private void InitGlobalSettings(CommerceInstance instance)
        {
            var settings = new GlobalSettings
            {
                Image = new ImageSettings
                {
                    Types =
                    {
                        new ImageType("List", 240, 240),
                        new ImageType("Detail", 300, 300, true),
                        new ImageType("Thumbnail", 240, 240),
                        new ImageType("Cart", 50, 50)
                    }
                }
            };

            var service = new SettingService(instance.Database);
            service.Set(settings);
        }
コード例 #9
0
 ActionResult ITopbarCommand.Execute(IEnumerable<object> dataItems, object config, CommerceInstance instance)
 {
     return Execute(dataItems.OfType<Product>(), config, instance);
 }
コード例 #10
0
 public abstract ActionResult Execute(IEnumerable<Product> products, object config, CommerceInstance instance);
コード例 #11
0
 bool ITopbarCommand.CanExecute(object context, CommerceInstance instance)
 {
     return CanExecute(context as Product, instance);
 }
コード例 #12
0
ファイル: DeleteCommand.cs プロジェクト: Kooboo/Ecommerce
 public override bool CanExecute(Kooboo.Commerce.Customers.Customer customer, CommerceInstance instance)
 {
     return true;
 }
コード例 #13
0
 public abstract bool CanExecute(Product product, CommerceInstance instance);
コード例 #14
0
ファイル: PromotionService.cs プロジェクト: Kooboo/Ecommerce
 public PromotionService(CommerceInstance instance)
 {
     _instance = instance;
     _repository = instance.Database.Repository<Promotion>();
 }
コード例 #15
0
 public abstract ActionResult Execute(IEnumerable<Order> orders, object config, CommerceInstance instance);
コード例 #16
0
 public abstract bool CanExecute(Customer customer, CommerceInstance instance);
コード例 #17
0
ファイル: EventSlot.cs プロジェクト: Kooboo/Ecommerce
        private void ScheduleActivities(IEnumerable<ConfiguredActivity> activities, IEvent @event, CommerceInstance instance)
        {
            var repository = instance.Database.Repository<ScheduledActivity>();

            foreach (var activity in activities)
            {
                repository.Insert(new ScheduledActivity(@event, activity));
            }
        }
コード例 #18
0
ファイル: TopbarCommands.cs プロジェクト: Kooboo/Ecommerce
 public static IEnumerable<ITopbarCommand> GetCommands(ControllerContext controllerContext, object context, CommerceInstance instance)
 {
     return GetCommands(controllerContext).Where(x => x.CanExecute(context, instance));
 }
コード例 #19
0
ファイル: PaymentService.cs プロジェクト: Kooboo/Ecommerce
 public PaymentService(CommerceInstance instance)
 {
     _instance = instance;
     _repository = _instance.Database.Repository<Payment>();
 }
コード例 #20
0
ファイル: ProductService.cs プロジェクト: Kooboo/Ecommerce
 public ProductService(CommerceInstance instance)
 {
     _instance = instance;
     _database = instance.Database;
 }
コード例 #21
0
ファイル: OrderService.cs プロジェクト: Kooboo/Ecommerce
 public OrderService(CommerceInstance instance)
 {
     _instance = instance;
     _orderRepository = _instance.Database.Repository<Order>();
 }
コード例 #22
0
 public ProductTypeService(CommerceInstance instance)
 {
     _instance = instance;
     _productTypes = _instance.Database.Repository<ProductType>();
     _customFields = _instance.Database.Repository<CustomFieldDefinition>();
 }
コード例 #23
0
 public ShippingMethodService(CommerceInstance instance)
 {
     _instance = instance;
     _repository = _instance.Database.Repository<ShippingMethod>();
 }
コード例 #24
0
 public override bool CanExecute(Kooboo.Commerce.Products.Product product, CommerceInstance instance)
 {
     return product.IsPublished;
 }
コード例 #25
0
ファイル: LocalApiContext.cs プロジェクト: Kooboo/Ecommerce
 public LocalApiContext(CultureInfo culture, CommerceInstance instance)
     : base(instance.Name, culture)
 {
     _instance = instance;
 }
コード例 #26
0
 bool ITopbarCommand.CanExecute(object dataItem, CommerceInstance instance)
 {
     return CanExecute(dataItem as Order, instance);
 }
コード例 #27
0
ファイル: BrandService.cs プロジェクト: Kooboo/Ecommerce
 public BrandService(CommerceInstance instance)
 {
     _instance = instance;
 }
コード例 #28
0
ファイル: RebuildTask.cs プロジェクト: Kooboo/Ecommerce
        private void DoWork(CommerceInstance instance)
        {
            IndexStore store = null;

            try
            {
                var rebuildDirectory = IndexStores.GetDirectory(Context.Instance, Context.Culture, Context.ModelType, true);
                var liveDirectory = IndexStores.GetDirectory(Context.Instance, Context.Culture, Context.ModelType, false);

                // Ensure temp folder are deleted (last rebuild might encounter errors when deleting the temp folder)
                Kooboo.IO.IOUtility.DeleteDirectory(rebuildDirectory, true);
                Kooboo.IO.IOUtility.DeleteDirectory(liveDirectory + "-tmp", true);

                var total = _source.Count(instance, Context.Culture);
                var totalRebuilt = 0;

                Progress = 0;

                store = new IndexStore(Context.ModelType, FSDirectory.Open(rebuildDirectory), Analyzers.GetAnalyzer(Context.Culture));

                foreach (var data in _source.Enumerate(instance, Context.Culture))
                {
                    if (_cancelling)
                    {
                        break;
                    }

                    store.Index(data);

                    totalRebuilt++;
                    Progress = (int)Math.Round(totalRebuilt * 100 / (double)total);
                }

                if (_cancelling)
                {
                    store.Dispose();

                    UpdateTaskInfo(info =>
                    {
                        info.ClearError();
                        info.LastRebuildStatus = RebuildStatus.Cancelled;
                    });

                    _cancelling = false;
                    _cancelledEvent.Set();

                    Status = RebuildStatus.Cancelled;
                }
                else
                {
                    store.Commit();
                    store.Dispose();

                    UpdateTaskInfo(info =>
                    {
                        info.ClearError();
                        info.LastRebuildStatus = RebuildStatus.Success;
                        info.LastSucceededRebuildTimeUtc = DateTime.UtcNow;
                    });

                    // Replace old index files with the new ones

                    IndexStores.Close(Context.Instance, Context.Culture, Context.ModelType);

                    var liveDirectoryExists = System.IO.Directory.Exists(liveDirectory);
                    if (liveDirectoryExists)
                    {
                        System.IO.Directory.Move(liveDirectory, liveDirectory + "-tmp");
                        Kooboo.IO.IOUtility.DeleteDirectory(liveDirectory, true);
                    }

                    System.IO.Directory.Move(rebuildDirectory, liveDirectory);

                    if (liveDirectoryExists)
                    {
                        Kooboo.IO.IOUtility.DeleteDirectory(liveDirectory + "-tmp", true);
                    }

                    Status = RebuildStatus.Success;
                }

                Progress = 0;
            }
            catch (Exception ex)
            {
                if (store != null)
                {
                    store.Dispose();
                }

                UpdateTaskInfo(info =>
                {
                    info.LastRebuildStatus = RebuildStatus.Failed;
                    info.LastRebuildError = ex.Message;
                    info.LastRebuildErrorDetail = ex.StackTrace;
                });

                Status = RebuildStatus.Failed;
            }
        }
コード例 #29
0
 public override bool CanExecute(Order order, CommerceInstance instance)
 {
     return order.Status == OrderStatus.Paid && order.ProcessingStatus != "Approved";
 }
コード例 #30
0
 public abstract bool CanExecute(Order order, CommerceInstance instance);