예제 #1
0
        public IEnumerable <ContentTierViewModel> Get()
        {
            List <ContentTierViewModel> contentTiersVM = new List <ContentTierViewModel>();
            var allProducts = _productSvc.GetAll();

            var contentTiers = allProducts.SelectMany(d => d.ContentTiers);

            foreach (var contentTier in contentTiers.GroupBy(e => e.Name))
            {
                ContentTierViewModel contentTierVm = new ContentTierViewModel
                {
                    Id       = Guid.NewGuid().ToString(),
                    Name     = contentTier.Key,
                    Products = allProducts.Where(e => e.ContentTiers.Any(f => f.Name == contentTier.Key)).ToList()
                               .ToViewModel <List <Business.Modules.Product.Model.Product>, List <ProductViewModel> >()
                };

                foreach (var product in contentTierVm.Products)
                {
                    product.ContentTiers = new List <Models.Product.ContentTier> {
                        product.ContentTiers.First(e => e.Name == contentTier.Key)
                    };
                }

                contentTiersVM.Add(contentTierVm);
            }

            return(contentTiersVM);
        }
예제 #2
0
        public ContentTierViewModel Post([FromBody] ContentTierViewModel viewModel)
        {
            List <ProductViewModel> destinations = new List <ProductViewModel>();

            foreach (var product in viewModel.Products)
            {
                Business.Modules.Product.Model.Product productDetail = null;

                if (!string.IsNullOrEmpty(product.Name))
                {
                    productDetail = _productSvc.GetById(product.ExternalId);
                }
                if (productDetail != null)
                {
                    if (!string.IsNullOrEmpty(product.ContentTiers.First().Name))
                    {
                        if (!string.IsNullOrEmpty(product.ContentTiers.First().Id))
                        {
                            var category = productDetail.ContentTiers.FirstOrDefault(e => e.Id == product.ContentTiers.First().Id);

                            category.Name     = product.ContentTiers.First().Name;
                            category.Brands   = product.ContentTiers.First().Brands;
                            category.TitleIds = product.ContentTiers.First().TitleIds;
                        }
                        else
                        {
                            var contentTier = new Business.Modules.Product.Model.ContentTier
                            {
                                Name     = product.ContentTiers.First().Name,
                                Brands   = product.ContentTiers.First().Brands,
                                TitleIds = product.ContentTiers.First().TitleIds
                            };

                            productDetail.ContentTiers.Add(contentTier);
                        }
                    }
                    else
                    {
                        productDetail.ContentTiers.RemoveAll(e => e.Id == product.ContentTiers.First().Id);
                    }

                    var blModel = _productSvc.Save(productDetail);

                    destinations.Add(blModel.ToViewModel <Business.Modules.Product.Model.Product, ProductViewModel>());
                }
            }

            var newModel = new ContentTierViewModel();

            newModel.Id = viewModel.Id;
            if (newModel.Id == null)
            {
                newModel.Id = new Guid().ToString();
            }
            newModel.Name = viewModel.Name;

            var newProducts = new List <ProductViewModel>();

            foreach (var product in viewModel.Products)
            {
                if (product.ContentTiers.Any() && !string.IsNullOrWhiteSpace(product.ContentTiers.First().Name))
                {
                    newProducts.Add(product);
                }
            }

            newModel.Products = newProducts;

            return(newModel);
        }
예제 #3
0
 public bool Delete([FromBody] ContentTierViewModel viewModel)
 {
     _productSvc.DeleteContentTierByName(viewModel.Name);
     return(true);
 }