Beispiel #1
0
        public async Task <IActionResult> PostHomepageCarouselMedia([FromForm] HomepageCarouselMediaModel homepageCarouselMediaModel)
        {
            var requestForm = Request.Form;
            var file        = requestForm.Files[0];
            var result      = new Result <string>();
            //var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
            string fileNameForStorage = Guid.NewGuid().ToString();

            try
            {
                //add image name to db
                HomepageCarouselMedia homepageCarouselMedia = new HomepageCarouselMedia
                {
                    ImageUrl = $@"Images/HomepageCarouselImages/{fileNameForStorage}"
                };
                await _context.HomepageCarouselMedia.AddAsync(homepageCarouselMedia);

                await _context.SaveChangesAsync();

                var bucketName = "luxe_media";
                GoogleCredential credential = null;
                using (var jsonStream = new FileStream("xxxxx.json", FileMode.Open,
                                                       FileAccess.Read, FileShare.Read))
                {
                    credential = GoogleCredential.FromStream(jsonStream);
                }
                var storageClient = StorageClient.Create(credential);

                using (var memoryStream = new MemoryStream())
                {
                    await file.CopyToAsync(memoryStream);

                    await storageClient.UploadObjectAsync(bucketName, $@"wwwroot/Images/HomepageCarouselImages/{fileNameForStorage}", "image/jpeg", memoryStream);
                }

                result.Data = $@"{fileNameForStorage} successfully uploaded";
            }
            catch (Exception e)
            {
                result.ErrorMessage = e.Message;
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Beispiel #2
0
        public async Task <IActionResult> PostHomepageCarouselMedia([FromForm] HomepageCarouselMediaModel homepageCarouselMediaModel)
        {
            var requestForm = Request.Form;
            var file        = requestForm.Files[0];
            var result      = new Result <string>();
            var fileName    = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');

            // fileName = RemoveWhitespace(fileName);
            try
            {
                // add image
                bool isStoreSuccess = await StoreImage("HomepageCarouselImages", fileName, file);

                if (!isStoreSuccess)
                {
                    throw new Exception("Store image locally failed.");
                }

                //add image name to db
                HomepageCarouselMedia homepageCarouselMedia = new HomepageCarouselMedia
                {
                    ImageUrl = $@"Images/HomepageCarouselImages/{fileName}"
                };
                await _context.HomepageCarouselMedia.AddAsync(homepageCarouselMedia);

                await _context.SaveChangesAsync();

                result.Data = $@"{fileName} successfully uploaded";
            }
            catch (Exception e)
            {
                result.ErrorMessage = e.Message;
                return(BadRequest(result));
            }
            return(Ok(result));
        }