public async Task <IActionResult> PostImage([FromBody] ImagePostRequest request) { //Upload Image CloudBlockBlob blockBlob = _container.GetBlockBlobReference($"{request.Id}.{request.EncodingFormat}"); HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create(request.URL); HttpWebResponse aResponse = (await aRequest.GetResponseAsync()) as HttpWebResponse; var stream = aResponse.GetResponseStream(); await blockBlob.UploadFromStreamAsync(stream); stream.Dispose(); //Save metadata var savedImage = new SavedImage(); savedImage.UserId = request.UserId; savedImage.Description = request.Description; savedImage.StorageUrl = blockBlob.Uri.ToString(); savedImage.Tags = new List <SavedImageTag>(); foreach (var tag in request.Tags) { savedImage.Tags.Add(new SavedImageTag() { Tag = tag }); } _context.Add(savedImage); _context.SaveChanges(); return(Ok()); }
public async Task <IActionResult> PostImage([FromBody] ImagePostRequest request) { System.IO.Stream stream = null; IActionResult result = Ok(); try { _logger.Info($"Call PostImage with data: user: {request.UserId}, image: (Id: {request.Id}, description: {request.Description}, tags: {request.Tags}, url: {request.URL})"); var blockBlob = _container.GetBlockBlobReference(string.Format("{0}.{1}", request.Id, request.EncodingFormat)); var aRequest = (HttpWebRequest)WebRequest.Create(request.URL); var aResponse = (await aRequest.GetResponseAsync()) as HttpWebResponse; stream = aResponse.GetResponseStream(); await blockBlob.UploadFromStreamAsync(stream); var savedImage = new SavedImage { UserId = request.UserId, Description = request.Description, StorageUrl = blockBlob.Uri.ToString(), Tags = new List <SavedImageTag>() }; foreach (var tag in request.Tags) { savedImage.Tags.Add(new SavedImageTag { Tag = tag }); } _logger.Debug("PostImage, saving data in db"); _context.Add(savedImage); _context.SaveChanges(); _logger.Debug("PostImage, succes"); } catch (Exception e) { _logger.Error(e, e.Message); result = BadRequest(); } finally { if (stream != null) { stream.Dispose(); } stream.Close(); } return(result); }
private async Task <string> UploadPicture(Stream source) { var text = _imageText ?? string.Empty; var pictureEncoded = ConvertService.Base64FromStream(source).Result; var image = new SavedImage() { ImageConverted = pictureEncoded, Text = text }; // var response = await ApiService.PostImagesConverted(image); return(""); //return response; }
public IHttpActionResult Post(SavedImage image /*[FromBody]string text, [FromBody]string imageSerialized*/) { try { lock (_lock) { _database.Images.Add(image); _database.SaveChanges(); } return(Ok()); } catch (Exception e) { return(InternalServerError(e.InnerException)); } }
public static async Task <string> PostImagesConverted(SavedImage entry) { var client = new HttpClient(); var parsedEntry = JsonConvert.SerializeObject(entry); var response = await client.PostAsync(_uri + "api/Images/Post", new StringContent(parsedEntry) { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }); if (response.StatusCode == HttpStatusCode.OK) { return("OK"); } return(await response.Content.ReadAsStringAsync()); }
public async Task <IActionResult> PostImage([FromBody] ImagePostRequest request) { Contract.Requires(request != null); //if (request == null) //{ // throw new ArgumentNullException(nameof(request)); //} //Uri requestUri = new Uri(request.URL); HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create(request.URL); HttpWebResponse aResponse = (await aRequest.GetResponseAsync().ConfigureAwait(false)) as HttpWebResponse; // Get a reference to a blob named "sample-file" in a container named "sample-container" string blobName = $"{request.Id}.{request.EncodingFormat}"; BlobClient blockBlob = this._container.GetBlobClient(blobName); using (var stream = aResponse.GetResponseStream()) { await blockBlob.UploadAsync(stream).ConfigureAwait(false); } //Save metadata var savedImage = new SavedImage() { UserId = request.UserId, Description = request.Description, StorageUrl = blockBlob.Uri }; foreach (var tag in request.Tags) { savedImage.Tags.Add(new SavedImageTag() { Tag = tag }); } _context.Add(savedImage); _context.SaveChanges(); return(Ok()); }
private void saveImages(ItemModel itemModel, ICollection <IFormFile> files) { foreach (var file in files) { if (file.Length > 0) { var savedImage = new SavedImage(); savedImage.ContentType = file.ContentType; savedImage.FileName = file.Name; //var memStream = new MemoryStream(); using (var memStream = new MemoryStream()) { file.CopyTo(memStream); savedImage.Content = memStream.ToArray(); } itemModel.Image.Add(savedImage); } } }
private void SaveImageMetadata(ImagePostRequest request, CloudBlockBlob blockBlob) { var savedImage = new SavedImage(); savedImage.UserId = request.UserId; savedImage.Description = request.Description; savedImage.StorageUrl = blockBlob.Uri.ToString(); savedImage.Tags = new List <SavedImageTag>(); foreach (var tag in request.Tags) { savedImage.Tags.Add(new SavedImageTag() { Tag = tag }); } _context.Add(savedImage); _context.SaveChanges(); }
public List <SavedImage> SaveFiles(string projectCode, string internalPath, string imageSize, HttpPostedFileBase file, bool newFile) { try { var inputFileName = Path.GetFileNameWithoutExtension(file.FileName); var inputFileExtension = Path.GetExtension(file.FileName); //for clean url path, if someone enter \, replaces double \\, triple need two calls to replace internalPath = internalPath.Replace("\\", "/").Replace("//", "/").Replace("//", "/"); var projectDir = Path.Combine(AppSettings.MediaPath, projectCode); var projectWeb = Url.Combine(AppSettings.MediaUrl, projectCode); var serverDir = Path.Combine(projectDir, internalPath); Directory.CreateDirectory(serverDir); var serverSavePath = Path.Combine(serverDir, inputFileName + inputFileExtension); if (newFile) { inputFileName = CheckFileExist(inputFileName, inputFileExtension, serverDir, 0); serverSavePath = Path.Combine(serverDir, inputFileName + inputFileExtension); } file.SaveAs(serverSavePath); List <SavedImage> files = new List <SavedImage>(); if (!string.IsNullOrEmpty(imageSize)) { var sizes = imageSize.ToLower().Split(','); foreach (var sizeXY in sizes) { var subDir = Path.Combine(projectDir, "_" + sizeXY, internalPath); var subWeb = Url.Combine(projectWeb, "_" + sizeXY, internalPath); var size = sizeXY.Split('x'); if (size.Length == 2) { int.TryParse(size[0], out int x); int.TryParse(size[1], out int y); if (x > 0 && y > 0) { ResizeSettings resizeSetting = new ResizeSettings { Width = x, Height = y, Format = "png", Mode = FitMode.Pad, PaddingColor = Color.White, }; Directory.CreateDirectory(subDir); var subFile = Path.Combine(subDir, inputFileName + ".png"); ImageBuilder.Current.Build(serverSavePath, subFile, resizeSetting); var saved = new SavedImage(); saved.Name = inputFileName + ".png"; saved.Size = sizeXY; saved.Url = Url.Combine(subWeb, inputFileName + ".png"); files.Add(saved); } } } } return(files); } catch (System.Exception e) { var saved = new SavedImage(); saved.Name = "ERROR"; saved.Size = e.Message; saved.Url = AppSettings.WebSite; return(new List <SavedImage>() { saved }); } }
public async Task SaveImage(SavedImage image) { _context.Add(image); await this.SaveAsync(); }