public void GeneratorName() { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); Assert.AreEqual(gen.Name, nameof(GuidFileNameGenerator)); }
public void NullEmptyWhiteSpaceAppendix(string name, string appendix) { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); var fileName = gen.GetFileName(name, appendix); Assert.IsTrue(fileName == $"img-{uid}.png"); }
public void LetterCase() { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); var fileName = gen.GetFileName("996 Sucks.PNG", "ICU"); Assert.IsTrue(fileName == $"img-{uid}-icu.png"); }
public void Appendix() { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); var fileName = gen.GetFileName("Microsoft Rocks.png", "origin"); Assert.IsTrue(fileName == $"img-{uid}-origin.png"); }
public void EmptyFileName(string name) { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); Assert.Throws <ArgumentNullException>(() => { gen.GetFileName(name); }); }
public void TestInvalidFileName(string name) { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); Assert.Catch <ArgumentException>(() => { var fileName = gen.GetFileName(name); }); }
public void TestNullEmptyWhiteSpaceAppendix() { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); var fileName1 = gen.GetFileName("Choose .NET Core.png", string.Empty); var fileName2 = gen.GetFileName("And Microsoft Azure.png", null); var fileName3 = gen.GetFileName("Stay away from 996.png", " "); Assert.IsTrue(fileName1 == $"img-{uid}.png"); Assert.IsTrue(fileName2 == $"img-{uid}.png"); Assert.IsTrue(fileName3 == $"img-{uid}.png"); }
public void TestInvalidFileName() { var uid = Guid.NewGuid(); var gen = new GuidFileNameGenerator(uid); Assert.Catch <ArgumentException>(() => { var fileName = gen.GetFileName("007 Stupid"); }); Assert.Catch <ArgumentException>(() => { var fileName = gen.GetFileName(".icu"); }); Assert.Catch <ArgumentNullException>(() => { var fileName = gen.GetFileName(" "); }); }
public async Task <IActionResult> UploadImageAsync(IFormFile file) { try { if (null == file) { Logger.LogError("file is null."); return(BadRequest()); } if (file.Length > 0) { var name = Path.GetFileName(file.FileName); if (name == null) { return(BadRequest()); } var ext = Path.GetExtension(name).ToLower(); var allowedImageFormats = new[] { ".png", ".jpg", ".jpeg", ".bmp", ".gif" }; if (!allowedImageFormats.Contains(ext)) { Logger.LogError($"Invalid file extension: {ext}"); return(BadRequest()); } var uid = Guid.NewGuid(); IFileNameGenerator gen = new GuidFileNameGenerator(uid); var primaryFileName = gen.GetFileName(name); var secondaryFieName = gen.GetFileName(name, "origin"); using (var stream = new MemoryStream()) { await file.CopyToAsync(stream); // Add watermark MemoryStream watermarkedStream = null; if (_blogConfig.WatermarkSettings.IsEnabled && ext != ".gif") { var watermarker = new ImageWatermarker(stream, ext) { SkipWatermarkForSmallImages = true, SmallImagePixelsThreshold = Constants.SmallImagePixelsThreshold }; Logger.LogInformation($"Adding watermark onto image {primaryFileName}"); watermarkedStream = watermarker.AddWatermark( _blogConfig.WatermarkSettings.WatermarkText, Color.FromArgb(128, 128, 128, 128), WatermarkPosition.BottomRight, 15, _blogConfig.WatermarkSettings.FontSize); } var response = await _imageStorageProvider.InsertAsync(primaryFileName, watermarkedStream != null? watermarkedStream.ToArray() : stream.ToArray()); if (_blogConfig.WatermarkSettings.KeepOriginImage) { var arr = stream.ToArray(); _ = Task.Run(async() => await _imageStorageProvider.InsertAsync(secondaryFieName, arr)); } Logger.LogInformation("Image Uploaded: " + JsonConvert.SerializeObject(response)); if (response.IsSuccess) { return(Json(new { location = $"/uploads/{response.Item}" })); } Logger.LogError(response.Message); return(ServerError()); } } return(BadRequest()); } catch (Exception e) { Logger.LogError(e, "Error uploading image."); return(ServerError()); } }