예제 #1
0
 public static BlobFileModel GetFileInfo(BlobFileType fileType, string key, bool withFileData = true)
 {
     CloudBlobContainer container = GetContainer(fileType.ToString());
     CloudBlockBlob blob = container.GetBlockBlobReference(key);
     if (blob == null || !blob.Exists())
         return null;
     blob.FetchAttributes();
     BlobFileModel file = new BlobFileModel(blob, withFileData);
     return file;
 }
예제 #2
0
        public static void InsertFileWithStaticName(BlobFileType fileType, string staticFileName, BlobFileModel file,
            string userId = "")
        {
            CloudBlobContainer container = GetContainer(fileType.ToString());
            CloudBlockBlob blob = container.GetBlockBlobReference(staticFileName);
            file.Data.Position = 0;
            blob.UploadFromStream(file.Data);

            blob.Metadata["FileName"] = file.FileName;
            blob.Metadata["ContentType"] = file.ContentType;
            blob.Metadata["ContentLength"] = file.Data.Length.ToString();
            blob.Metadata["BlobFileType"] = fileType.ToString();
            blob.Metadata["DtUploaded"] = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            blob.SetMetadata();
        }
예제 #3
0
        public BlobFile AddWatermark(string userId, BlobFile blobFileOriginal,  HttpPostedFileBase file)
        {
            Stream stream = AddWaterMarkToImage(file);

            BlobFileModel blobWatermark = new BlobFileModel(stream, string.Format("{0}", blobFileOriginal.Filename), "image/png");
            BlobFile blobFile = new BlobFile
            {
                Container = (int)BlobFileType.ImagesWaterMark,
                CreatedBy = userId,
                Filename = blobWatermark.FileName,
                BlobKey = Common.GetGuid(),
                dtCreated = DateTime.Now
            };

            CloudStorageManagerHelper.InsertFileWithStaticName((BlobFileType)blobFile.Container, blobFile.BlobKey, blobWatermark, userId);

            return blobFile;
        }
예제 #4
0
        /// <summary>
        /// insert File in the Blob.
        /// Modify the image to add a watermark and add to a Blob.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="file"></param>
        /// <returns>return List of blobs relationship with the image</returns>
        public List<BlobFile> CreateImage(string userId, HttpPostedFileBase file)
        {
            BlobFileModel blobOriginal = new BlobFileModel(file);
            BlobFile blobFile = new BlobFile
            {
                Container = (int)BlobFileType.ImagesOriginal,
                CreatedBy = userId,
                Filename = blobOriginal.FileName,
                BlobKey = Common.GetGuid(),
                dtCreated = DateTime.Now
            };

            CloudStorageManagerHelper.InsertFileWithStaticName(BlobFileType.ImagesOriginal, blobFile.BlobKey, blobOriginal, userId);

            List<BlobFile> lst = new List<BlobFile>();
            lst.Add(blobFile);
            lst.Add(AddWatermark(userId,blobFile, file));

            return lst;
        }
예제 #5
0
        public static BlobFileModel GetFileInfo(BlobFileType fileType, string key, DateTime filerDate,
            bool withFileData = true)
        {
            CloudBlobContainer container = GetContainer(fileType.ToString());
            CloudBlockBlob blob = container.GetBlockBlobReference(key);

            if (blob == null || !blob.Exists())
                return null;

            blob.FetchAttributes();

            if (!blob.Metadata.Any() &&
                (blob.Metadata["DtUploaded"] == null || Convert.ToDateTime(blob.Metadata["DtUploaded"]) > filerDate))
            {
                blob.Delete();
                return null;
            }

            BlobFileModel file = new BlobFileModel(blob, withFileData);
            return file;
        }
예제 #6
0
        public static void SaveImagesBlob(string userId, HttpPostedFileBase upImage)
        {
            #region Create Blob Original Image
            BlobFileModel blobOriginal = new BlobFileModel(upImage);
            BlobFile blobFile = new BlobFile
            {
                Container = (int)BlobFileType.ImagesOriginal,
                CreatedBy = userId,
                Filename = blobOriginal.FileName,
                BlobKey = Common.GetGuid(),
                dtCreated = DateTime.Now
            };
            #endregion
            CloudStorageManagerHelper.InsertFileWithStaticName(BlobFileType.ImagesOriginal, blobFile.BlobKey, blobOriginal, userId);

            BlobFileModel blobWaterMark = CloudStorageManagerHelper.GetFileInfo(BlobFileType.ImagesOriginal, "Watermark.png");

            Bitmap imageWithWaterMark= AddWaterMark(blobOriginal.Data);

            byte[] data = imageWithWaterMark.ImageToByteArray();

            BlobFileModel blobImageWithWaterMark = new BlobFileModel(imageWithWaterMark.ToStream(ImageFormat.Png), string.Format("{0}_WaterMark", blobOriginal.FileName),
                "Image");
            BlobFile blobFileWithWaterMark = new BlobFile
            {
                Container = (int)BlobFileType.ImagesWaterMark,
                CreatedBy = userId,
                Filename = blobImageWithWaterMark.FileName,
                BlobKey = Common.GetGuid(),
                dtCreated = DateTime.Now
            };

            CloudStorageManagerHelper.InsertFileWithStaticName((BlobFileType)blobFileWithWaterMark.Container, blobFileWithWaterMark.BlobKey, blobImageWithWaterMark, userId);

            var blobHelper = new BlobFilesHelper();
            blobHelper.Add(blobFileWithWaterMark);
        }
예제 #7
0
        /// <summary>
        /// Save the Shopping Cart Data
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="shopCart"></param>
        private static void SaveCart(string userId, ShoppingCartModel shopCart)
        {
            // Serialize the object Shopping Cart model to json
            var serializer = new JavaScriptSerializer();
            string content = serializer.Serialize(shopCart);

            string key = string.Format("{0}_Cart", userId);

            // Create the blob model
            BlobFilesHelper blobFileHelper = new BlobFilesHelper();
            BlobFileModel blob = new BlobFileModel(content, key, "String");
            BlobFile blobFile = null;

            if (blobFileHelper.Exist(key))
            {
                // Get the blob File
                blobFile = blobFileHelper.GetByKey(key);

                blobFileHelper.Update(blobFile);
            }
            else
            {
                // Create the blob File
                blobFile = new BlobFile
                {
                    Container = (int)BlobFileType.Cart,
                    CreatedBy = userId,
                    Filename = blob.FileName,
                    BlobKey = blob.FileName,
                    dtCreated = DateTime.Now
                };
                blobFileHelper.Add(blobFile);
            }

            // Save the Blob model in Azure Storage
            CloudStorageManagerHelper.InsertFileWithStaticName((BlobFileType)blobFile.Container, key, blob);
        }