コード例 #1
0
        public async Task <ProductAttributeServiceModel> GetProductAttributeByIdAsync(GetProductAttributeByIdServiceModel model)
        {
            var productAttribute = await this.context.ProductAttributes.FirstOrDefaultAsync(x => x.Id == model.Id && x.SellerId == model.OrganisationId && x.IsActive);

            if (productAttribute != null)
            {
                var productAttributeServiceModel = new ProductAttributeServiceModel
                {
                    Id               = productAttribute.Id,
                    Order            = productAttribute.Order,
                    LastModifiedDate = productAttribute.LastModifiedDate,
                    CreatedDate      = productAttribute.CreatedDate
                };

                var productAttributeTranslations = productAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.Language == model.Language && x.IsActive);

                if (productAttributeTranslations == null)
                {
                    productAttributeTranslations = productAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.IsActive);
                }

                productAttributeServiceModel.Name = productAttributeTranslations?.Name;

                var productAttributeItems = await this.context.ProductAttributeItems.Where(x => x.ProductAttributeId == productAttribute.Id && x.IsActive).ToListAsync();

                if (productAttributeItems != null)
                {
                    var productAttributeItemServiceModels = new List <ProductAttributeItemServiceModel>();

                    foreach (var productAttributeItem in productAttributeItems)
                    {
                        var productAttributeItemServiceModel = new ProductAttributeItemServiceModel
                        {
                            Id               = productAttributeItem.Id,
                            Order            = productAttributeItem.Order,
                            LastModifiedDate = productAttributeItem.LastModifiedDate,
                            CreatedDate      = productAttributeItem.CreatedDate
                        };

                        var productAttributeItemTranslations = await this.context.ProductAttributeItemTranslations.FirstOrDefaultAsync(x => x.ProductAttributeItemId == productAttributeItem.Id && x.Language == model.Language && x.IsActive);

                        if (productAttributeItemTranslations == null)
                        {
                            productAttributeItemTranslations = await this.context.ProductAttributeItemTranslations.FirstOrDefaultAsync(x => x.ProductAttributeItemId == productAttributeItem.Id && x.IsActive);
                        }

                        productAttributeItemServiceModel.Name = productAttributeItemTranslations?.Name;

                        productAttributeItemServiceModels.Add(productAttributeItemServiceModel);
                    }

                    productAttributeServiceModel.ProductAttributeItems = productAttributeItemServiceModels;
                }

                return(productAttributeServiceModel);
            }

            return(default);
コード例 #2
0
        public async Task <PagedResults <IEnumerable <ProductAttributeServiceModel> > > GetAsync(GetProductAttributesServiceModel model)
        {
            var productAttributes = this.context.ProductAttributes.Where(x => x.IsActive);

            if (!string.IsNullOrWhiteSpace(model.SearchTerm))
            {
                productAttributes = productAttributes.Where(x => x.ProductAttributeTranslations.Any(x => x.Name.StartsWith(model.SearchTerm) && x.IsActive));
            }

            productAttributes = productAttributes.ApplySort(model.OrderBy);

            var pagedProductAttributes = productAttributes.PagedIndex(new Pagination(productAttributes.Count(), model.ItemsPerPage), model.PageIndex);

            var pagedProductAttributeServiceModels = new PagedResults <IEnumerable <ProductAttributeServiceModel> >(pagedProductAttributes.Total, pagedProductAttributes.PageSize);

            var productAttributeServiceModels = new List <ProductAttributeServiceModel>();

            foreach (var pagedProductAttribute in pagedProductAttributes.Data.ToList())
            {
                var productAttributeServiceModel = new ProductAttributeServiceModel
                {
                    Id               = pagedProductAttribute.Id,
                    Order            = pagedProductAttribute.Order,
                    LastModifiedDate = pagedProductAttribute.LastModifiedDate,
                    CreatedDate      = pagedProductAttribute.CreatedDate
                };

                var productAttributeTranslations = pagedProductAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.Language == model.Language && x.IsActive);

                if (productAttributeTranslations == null)
                {
                    productAttributeTranslations = pagedProductAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.IsActive);
                }

                productAttributeServiceModel.Name = productAttributeTranslations?.Name;

                productAttributeServiceModels.Add(productAttributeServiceModel);
            }

            pagedProductAttributeServiceModels.Data = productAttributeServiceModels;

            return(pagedProductAttributeServiceModels);
        }