Example #1
0
        public ProductListing GetProductListing()
        {
            ProductListing productListing = new ProductListing();

            productListing.Sections = new List <Section>();
            SectionRepository sectionRepository = new SectionRepository();

            List <WebStoreData.Models.Section> sectionsDB = sectionRepository.GetSections().ToList();



            foreach (var sectionDB in sectionsDB)
            {
                WebStore.Models.Section section = new Section();
                section.Name       = sectionDB.Name;
                section.IsLongText = sectionDB.IsLongText;
                section.SectionId  = sectionDB.SectionId;
                section.Url        = sectionDB.Url;
                section.Order      = sectionDB.Order;
                productListing.Sections.Add(section);
                section.Categories = new List <Category>();
                foreach (var categoryDB in sectionDB.Categories)
                {
                    WebStore.Models.Category category = new Category();
                    category.Name       = categoryDB.Name;
                    category.SectionId  = categoryDB.SectionId;
                    category.CategoryId = categoryDB.CategoryId;
                    category.Url        = categoryDB.Url;
                    if (category.SectionId == section.SectionId)
                    {
                        section.Categories.Add(category);
                    }
                    category.SubCategories = new List <Subcategory>();
                    foreach (var subcategoryDB in categoryDB.Subcategories)
                    {
                        WebStore.Models.Subcategory subcategory = new Subcategory();
                        subcategory.Name          = subcategoryDB.Name;
                        subcategory.Image         = subcategoryDB.Image;
                        subcategory.CategoryId    = subcategoryDB.CategoryId;
                        subcategory.SubcategoryId = subcategoryDB.SubcategoryId;
                        subcategory.Url           = subcategoryDB.Url;
                        if (subcategory.CategoryId == category.CategoryId)
                        {
                            category.SubCategories.Add(subcategory);
                        }
                        subcategory.Products = new List <Product>();
                        foreach (var productDB in subcategoryDB.Products)
                        {
                            WebStore.Models.Product product = new Product();
                            product.Name          = productDB.Name;
                            product.Price         = productDB.Price;
                            product.Image         = productDB.Image;
                            product.Rating        = productDB.Rating;
                            product.SubcategoryId = productDB.SubcategoryId;
                            product.ProductId     = productDB.ProductId;
                            if (product.SubcategoryId == subcategory.SubcategoryId)
                            {
                                subcategory.Products.Add(product);
                            }
                            product.Descriptions = new List <ProductDescription>();
                            //product.ShortDiscription=new List<ProductDescription>();
                            product.Pictures = new List <string>();
                            foreach (var productDescriptionDB in productDB.ProductDescriptions)
                            {
                                WebStore.Models.ProductDescription productDescription = new  WebStore.Models.ProductDescription();

                                productDescription.Name      = productDescriptionDB.Name;
                                productDescription.Text      = productDescriptionDB.Text;
                                productDescription.IsShort   = productDescriptionDB.IsShort;
                                productDescription.ProductId = productDescriptionDB.ProductId;
                                product.Descriptions.Add(productDescription);

                                if (productDescription.IsShort == true)
                                {
                                    string shortDescription = productDescriptionDB.Name + ":" + productDescriptionDB.Text;
                                    product.ShortDescriptions.Add(shortDescription);
                                }
                            }

                            foreach (var productPictureDB in productDB.ProductPictures)
                            {
                                product.Pictures.Add(productPictureDB.Picture);
                            }
                        }
                    }
                }
            }
            productListing.Sections = productListing.Sections.OrderBy(x => x.Order).ToList();
            return(productListing);
        }
        private static void uploadAzureBlobStorage(Product product, HttpPostedFileBase image)
        {
            // get connection string for azure cloud storage
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

            // a client to storage access
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

            // Retrieve a reference to a container.
            CloudBlobContainer container = blobClient.GetContainerReference("images");

            // Create the container if it doesn't already exist.
            if (!container.Exists())
            {
                container.CreateIfNotExists();

                // set container to public
                container.SetPermissions(
                    new BlobContainerPermissions
                    {
                        PublicAccess = BlobContainerPublicAccessType.Blob
                    }
                );
            }

            // Retrieve reference to a blob named after product name.
            CloudBlockBlob blockBlob = container.GetBlockBlobReference(image.FileName);
            blockBlob.Properties.ContentType = image.ContentType;

            var data = new byte[image.ContentLength];
            image.InputStream.Read(data, 0, image.ContentLength);

            // Create or overwrite the product name blob with contents from a local file.
            blockBlob.UploadFromByteArray(data, 0, image.ContentLength);

            // set uri to product
            product.ImageURL = blockBlob.Uri.AbsoluteUri;
        }