/// <summary> /// Builds the relative url for the specified image. /// </summary> public string BuildUrl(string virtualPath, int?width, int?height) { if (string.IsNullOrWhiteSpace(virtualPath)) { throw new ArgumentException(nameof(ImageStorageProviderLocalWebsite), new ArgumentException(nameof(BuildUrl), new ArgumentNullException(nameof(virtualPath)))); } var builder = new ImageUrlBuilder(); if (width.HasValue && height.HasValue) { builder.Resize(i => i.Dimensions(width.Value, height.Value)); } else if (width.HasValue || height.HasValue) { if (width.HasValue) { builder.Resize(i => i.Width(width.Value)); } if (height.HasValue) { builder.Resize(i => i.Height(height.Value)); } } else { builder.Cache(CacheOptions.Always); } builder.Resize(i => i.Crop()); return(builder.BuildUrl(virtualPath)); }
private static string GenerateSrcsetValue(string imageUrl) { var imageUrlBuilder = new ImageUrlBuilder(imageUrl); return(string.Join(",", ProjectOptions.ResponsiveWidths.Select(w => $"{imageUrlBuilder.WithWidth(Convert.ToDouble(w)).Url} {w}w"))); }
private static string GenerateSrcsetValue(string imageUrl, IConfiguration configuration) { var imageUrlBuilder = new ImageUrlBuilder(imageUrl); var responsiveWidths = configuration.GetSection(nameof(AppConfiguration)).Get <AppConfiguration>().ResponsiveWidthsArray; return(string.Join(",", responsiveWidths.Select(w => $"{imageUrlBuilder.WithWidth(Convert.ToDouble(w)).Url} {w}w"))); }
/// <summary> /// Generates an image URI using the source <param name="imageUri"/> and <see cref="ImageResizer.FluentExtensions.ImageUrlBuilder"/> instance. /// </summary> /// <param name="imageUri">The source image URI.</param> /// <param name="builder">A <see cref="ImageResizer.FluentExtensions.ImageUrlBuilder"/> instance to use for generating the image URI.</param> /// <returns>The generated image URI.</returns> public virtual string GetImageUrl(string imageUri, ImageUrlBuilder builder) { Ensure.Argument.NotNullOrEmpty(imageUri, "imageUri"); Ensure.Argument.NotNull(builder, "builder"); return(builder.BuildUrl(imageUri)); }
public static IImageLoaderType ImageWizard(this IUrlHelper urlHelper) { ImageUrlBuilder imageWizard = urlHelper.ActionContext.HttpContext.RequestServices.GetRequiredService <ImageUrlBuilder>(); imageWizard.UrlHelper = urlHelper; return(imageWizard); }
public void WithDpr_TransformedQuery(double dpr, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithDpr(dpr); Assert.Equal(expectedQuery, builder.Url.Query); }
public void WithFocalPointCrop_TransformedQuery(double x, double y, double z, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithFocalPointCrop(x, y, z); Assert.Equal(expectedQuery, builder.Url.Query); }
public void WithFormat_TransformedQuery(string format, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithFormat(format); Assert.Equal(expectedQuery, builder.Url.Query); }
public void WithQuality_TransformedQuery(double quality, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithQuality(quality); Assert.Equal(expectedQuery, builder.Url.Query); }
public void WithCompression_TransformedQuery(ImageCompression compression, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithCompression(compression); Assert.Equal(expectedQuery, builder.Url.Query); }
public void ConstructorWithUri_NewBuilder_BaseUrl() { var expected = new Uri(BaseUrl); var builder = new ImageUrlBuilder(expected); Assert.Equal(expected, builder.Url); }
public void WithAutomaticFormat_TransformedQuery() { var builder = new ImageUrlBuilder(BaseUrl); builder.WithAutomaticFormat(); Assert.Equal("?auto=webp", builder.Url.Query); }
public void WithWidthAndHeight_TransformedQuery(double width, double height, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithWidth(width).WithHeight(height); Assert.Equal(expectedQuery, builder.Url.Query); }
public void WithFitModeEnum_TransformedQuery(ImageFitMode fitMode, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithFitMode(fitMode); Assert.Equal(expectedQuery, builder.Url.Query); }
public async Task <ArtistViewModel> GetArtistDetailsAsync( string artistSlug, string userId) { ArtistViewModel artistViewModel = new ArtistViewModel(); await using NpgsqlConnection connection = new NpgsqlConnection(_databaseOptions.ConnectionString); await connection.OpenAsync(); string sqlCommand = @"select a.id as artist_id, a.first_name, a.last_name, aslug.name as artist_slug, a.has_image, a.created_at, a.modified_at, a.is_approved from artists as a inner join artist_slugs as aslug on aslug.artist_id = a.id where case when @user_id <> '' then (a.is_approved = true or a.user_id = @user_id) else a.is_approved = true end and aslug.artist_id = (select artist_id from artist_slugs where name = @artist_slug) and aslug.is_primary = true order by a.first_name asc;"; await using NpgsqlCommand command = new NpgsqlCommand(sqlCommand, connection); command.Parameters.AddWithValue("@user_id", userId); command.Parameters.AddWithValue("@artist_slug", artistSlug); await using NpgsqlDataReader reader = await command.ExecuteReaderAsync(); if (reader.HasRows) { while (await reader.ReadAsync()) { int artistId = Convert.ToInt32(reader[0]); string firstName = _textInfo.ToTitleCase(Convert.ToString(reader[1])).Trim(); string lastName = _textInfo.ToTitleCase(Convert.ToString(reader[2])).Trim(); string artistPrimarySlug = Convert.ToString(reader[3]); bool artistHasImage = Convert.ToBoolean(reader[4]); DateTime createdAt = Convert.ToDateTime(reader[5]); DateTime?modifiedAt = reader[6] == DBNull.Value ? (DateTime?)null : Convert.ToDateTime(reader[6]); bool isApproved = Convert.ToBoolean(reader[7]); string artistFullName = $"{firstName} {lastName}".Trim(); string artistImageUrl = ImageUrlBuilder .BuildImageUrl(artistHasImage, artistId, ImageSize.Standard); string artistImageAlternateText = ImageUrlBuilder .GetImageAlternateText(artistHasImage, artistFullName); artistViewModel.Id = artistId; artistViewModel.FirstName = firstName; artistViewModel.LastName = lastName; artistViewModel.FullName = $"{firstName} {lastName}"; artistViewModel.PrimarySlug = artistPrimarySlug; artistViewModel.IsApproved = isApproved; artistViewModel.ImageUrl = artistImageUrl; artistViewModel.ImageAlternateText = artistImageAlternateText; artistViewModel.CreatedAt = createdAt; artistViewModel.ModifiedAt = modifiedAt; } } else { throw new ArtistNotFoundException(artistSlug); } return(artistViewModel); }
public void WithRectangleCrop_TransformedQuery(double x, double y, double width, double height, string expectedQuery) { var builder = new ImageUrlBuilder(BaseUrl); builder.WithRectangleCrop(x, y, width, height); Assert.Equal(expectedQuery, builder.Url.Query); }
public void WithAutomaticCompressionAndBackup_TransformedQuery(ImageFormat format, string expectedFormat) { var builder = new ImageUrlBuilder(BaseUrl); var expectedQuery = $"?fm={expectedFormat}&auto=webp"; builder.WithAutomaticFormat(format); Assert.Equal(expectedQuery, builder.Url.Query); }
public static void FromFabrik(this ImageUrlBuilder builder, ViewHelperConfiguration configuration) { builder.AddModifier(src => TransformUri(src, configuration.StorageServerUri, configuration.MediaServerUri)); if (configuration.Version.IsNotNullOrEmpty()) { builder.SetParameter("v", configuration.Version); } }
public void WithFormatEnum_TransformedQuery(ImageFormat format, string expectedFormat) { var builder = new ImageUrlBuilder(BaseUrl); var expectedQuery = $"?fm={expectedFormat}"; builder.WithFormat(format); Assert.Equal(expectedQuery, builder.Url.Query); }
/// <summary> /// Builds a url to a contentful image using the specified properties. /// </summary> /// <returns>The url.</returns> public async Task <string> BuildUrl() { if (Asset != null) { Url = Asset.File?.Url; if (string.IsNullOrEmpty(Url)) { AssetId = Asset.SystemProperties?.Id; } } if (string.IsNullOrEmpty(Url)) { var asset = await _client.GetAssetAsync(AssetId, ""); Url = asset.File.Url; } var queryBuilder = new ImageUrlBuilder(); if (Width > 0) { queryBuilder.SetWidth(Width); } if (Height > 0) { queryBuilder.SetHeight(Height); } if (JpgQuality.HasValue) { queryBuilder.SetJpgQuality(JpgQuality.Value); } if (CornerRadius.HasValue) { queryBuilder.SetCornerRadius(CornerRadius.Value); } if (!string.IsNullOrEmpty(BackgroundColor)) { queryBuilder.SetBackgroundColor(BackgroundColor); } queryBuilder.SetFocusArea(FocusArea); queryBuilder.SetResizingBehaviour(ResizeBehaviour); queryBuilder.SetFormat(Format); if (ProgressiveJpg) { queryBuilder.UseProgressiveJpg(); } return($"{Url}{queryBuilder.Build()}"); }
public void AddingResizeBehaviourDefaulShouldNotAddAnyQueryString() { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetResizingBehaviour(ImageResizeBehaviour.Default).Build(); //Assert Assert.Equal(string.Empty, result); }
public void SettingJpgQualityShouldSetCorrectQueryString(int quality) { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetJpgQuality(quality).Build(); //Assert Assert.Equal($"?q={quality}", result); }
public void AddingFocusAreaShouldSetCorrectQueryString(ImageFocusArea focusArea) { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetFocusArea(focusArea).Build(); //Assert Assert.Equal($"?f={focusArea.ToString().ToLower()}", result); }
public void SettingCornerRadiusShouldSetCorrectQueryString(int radius) { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetCornerRadius(radius).Build(); //Assert Assert.Equal($"?r={radius}", result); }
public void SettingBackgroundShouldAddCorrectQueryString(string bg, string expected) { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetBackgroundColor(bg).Build(); //Assert Assert.Equal(expected, result); }
public void AddingMultipleQueryParametersShouldCorrectlyAddQueryStringValues() { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetHeight(23).SetWidth(34).Build(); //Assert Assert.Equal("?h=23&w=34", result); }
public void Setting8BitPngAndFormatInDifferentOrderShouldSetCorrectQueryString() { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.Set8BitPng().SetFormat(ImageFormat.Png).Build(); //Assert Assert.Equal($"?fm=png&fl=png8", result); }
public void SettingFormatToJpgShouldAllowForJpgSpecificValues() { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetFormat(ImageFormat.Jpg).SetJpgQuality(34).UseProgressiveJpg().Build(); //Assert Assert.Equal("?fm=jpg&q=34&fl=progressive", result); }
public void Setting8BitPngShouldSetCorrectQueryString() { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.Set8BitPng().Build(); //Assert Assert.Equal($"?fm=png&fl=png8", result); }
public void AddingImageFormatShouldSetCorrectQueryString(ImageFormat format, string expected) { //Arrange var builder = new ImageUrlBuilder(); //Act var result = builder.SetFormat(format).Build(); //Assert Assert.Equal(expected, result); }
public static string ImageUrl(this UrlHelper url, string imagePath, ImageUrlBuilder builder) { if (string.IsNullOrEmpty(imagePath)) throw new ArgumentNullException("imagePath"); if (builder == null) throw new ArgumentNullException("builder"); if (VirtualPathUtility.IsAppRelative(imagePath)) imagePath = VirtualPathUtility.ToAbsolute(imagePath); return builder.BuildUrl(imagePath); }
public static string ImageUrl(this UrlHelper url, string imagePath, Action<ImageUrlBuilder> configure) { if (string.IsNullOrEmpty(imagePath)) throw new ArgumentNullException("imagePath"); if (configure == null) throw new ArgumentNullException("configure"); var builder = new ImageUrlBuilder(); configure(builder); return url.ImageUrl(imagePath, builder); }
public void SetUp() { builder = new ImageUrlBuilder(); }
internal AlignmentExpression(ImageUrlBuilder builder) : base(builder) { }
public static MvcHtmlString BuildImage(this HtmlHelper html, string src, ImageUrlBuilder builder, string alternateText = "", object htmlAttributes = null) { var imageUrl = html.CreateUrlHelper().ImageUrl(src, builder); return html.Image(imageUrl.ToString()); }