Ejemplo n.º 1
0
 public LayoutController(ICategoryLayoutService categoryLayoutService,
                         IBrandLayoutService brandLayoutService,
                         ICollectionLayoutService collectionLayoutService,
                         IProductLayoutService productLayoutService,
                         IPageLayoutService pageLayoutService)
 {
     _categoryLayoutService   = categoryLayoutService;
     _brandLayoutService      = brandLayoutService;
     _collectionLayoutService = collectionLayoutService;
     _productLayoutService    = productLayoutService;
     _pageLayoutService       = pageLayoutService;
 }
 public GetProductLayoutViewPathHandler(IProductLayoutService productLayoutService)
 {
     _productLayoutService = productLayoutService;
 }
Ejemplo n.º 3
0
        public ProductValidator(
            IEnumerable <IValidatorConsumer <ProductDto> > validators,
            ITranslationService translationService, IProductService productService, IProductLayoutService productLayoutService,
            IBrandService brandService,
            IVendorService vendorService, CommonSettings commonSettings)
            : base(validators)
        {
            RuleFor(x => x.Name).NotEmpty().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.Name.Required"));
            //RuleFor(x => x.ProductType).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.ProductType.Required"));
            //RuleFor(x => x.BackorderMode).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.BackorderMode.Required"));
            //RuleFor(x => x.DownloadActivationType).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.DownloadActivationType.Required"));
            //RuleFor(x => x.IntervalUnitType).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.IntervalUnitType.Required"));
            //RuleFor(x => x.GiftCardType).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.GiftCardType.Required"));
            //RuleFor(x => x.LowStockActivity).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.LowStockActivity.Required"));
            //RuleFor(x => x.ManageInventoryMethod).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.ManageInventoryMethod.Required"));
            //RuleFor(x => x.RecurringCyclePeriod).IsInEnum().WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.RecurringCyclePeriod.Required"));

            if (!commonSettings.AllowEditProductEndedAuction)
            {
                RuleFor(x => x.AuctionEnded && x.ProductTypeId == ProductType.Auction).Equal(false).WithMessage(translationService.GetResource("Api.Catalog.Products.Cannoteditauction"));
            }

            RuleFor(x => x.ProductTypeId == ProductType.Auction && !x.AvailableEndDateTimeUtc.HasValue).Equal(false).WithMessage(translationService.GetResource("Api.Catalog.Products.Fields.AvailableEndDateTime.Required"));

            RuleFor(x => x).MustAsync(async(x, y, context) =>
            {
                if (!string.IsNullOrEmpty(x.ParentGroupedProductId))
                {
                    var product = await productService.GetProductById(x.ParentGroupedProductId);
                    if (product == null)
                    {
                        return(false);
                    }
                }
                return(true);
            }).WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.ParentGroupedProductId.NotExists"));

            RuleFor(x => x).MustAsync(async(x, y, context) =>
            {
                if (!string.IsNullOrEmpty(x.ProductLayoutId))
                {
                    var layout = await productLayoutService.GetProductLayoutById(x.ProductLayoutId);
                    if (layout == null)
                    {
                        return(false);
                    }
                }
                return(true);
            }).WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.ProductLayoutId.NotExists"));

            RuleFor(x => x).MustAsync(async(x, y, context) =>
            {
                if (!string.IsNullOrEmpty(x.VendorId))
                {
                    var vendor = await vendorService.GetVendorById(x.VendorId);
                    if (vendor == null)
                    {
                        return(false);
                    }
                }
                return(true);
            }).WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.VendorId.NotExists"));

            RuleFor(x => x).MustAsync(async(x, y, context) =>
            {
                if (!string.IsNullOrEmpty(x.BrandId))
                {
                    var brand = await brandService.GetBrandById(x.BrandId);
                    if (brand == null)
                    {
                        return(false);
                    }
                }
                return(true);
            }).WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.BrandId.NotExists"));

            RuleFor(x => x).MustAsync(async(x, y, context) =>
            {
                if (!string.IsNullOrEmpty(x.Id))
                {
                    var product = await productService.GetProductById(x.Id);
                    if (product == null)
                    {
                        return(false);
                    }
                }
                return(true);
            }).WithMessage(translationService.GetResource("Api.Catalog.Product.Fields.Id.NotExists"));
        }