public void GetIcon_StateUnderTest_ExpectedBehavior(string fileName)
        {
            MemoryStreamIconGenerator.GenerateIcons(_iconData, Path.GetTempPath(), _mockLogger.Object);
            var result = MemoryStreamIconGenerator.GetIcon(fileName);

            Assert.IsNotNull(result);
        }
 public void GenerateIcons_StateUnderTest_ExpectedBehavior()
 {
     Assert.DoesNotThrow(() =>
     {
         MemoryStreamIconGenerator.GenerateIcons(_iconData, Path.GetTempPath(), _mockLogger.Object);
     });
 }
예제 #3
0
 public void GenerateIcons_StateUnderTest_ExpectedBehavior()
 {
     Assert.DoesNotThrow(() =>
     {
         MemoryStreamIconGenerator.GenerateIcons(_iconData, _mockWebHostEnvironment.Object, _mockLogger.Object);
     });
 }
예제 #4
0
    public static async Task InitStartUp(this WebApplication app)
    {
        using var scope = app.Services.CreateScope();
        var services = scope.ServiceProvider;
        var env      = services.GetRequiredService <IWebHostEnvironment>();

        var dbConnection = services.GetRequiredService <IDbConnection>();
        var setupHelper  = new SetupRunner(dbConnection);

        try
        {
            if (!setupHelper.TestDatabaseConnection())
            {
                return;
            }
        }
        catch (Exception e)
        {
            app.Logger.LogCritical(e, e.Message);
            return;
        }

        if (setupHelper.IsFirstRun())
        {
            try
            {
                app.Logger.LogInformation("Initializing first run configuration...");
                setupHelper.InitFirstRun();
                app.Logger.LogInformation("Database setup successfully.");
            }
            catch (Exception e)
            {
                app.Logger.LogCritical(e, e.Message);
            }
        }

        try
        {
            var mediator = services.GetRequiredService <IMediator>();
            var iconData = await mediator.Send(new GetAssetDataQuery(AssetId.SiteIconBase64));

            MemoryStreamIconGenerator.GenerateIcons(iconData, env.WebRootPath, app.Logger);
        }
        catch (Exception e)
        {
            // Non critical error, just log, do not block application start
            app.Logger.LogError(e, e.Message);
        }
    }
예제 #5
0
    public IActionResult SiteIcon(string filename)
    {
        var iconBytes = MemoryStreamIconGenerator.GetIcon(filename);

        if (iconBytes is null)
        {
            return(NotFound());
        }

        var contentType = "image/png";
        var ext         = Path.GetExtension(filename);

        contentType = ext switch
        {
            ".png" => "image/png",
            ".ico" => "image/x-icon",
            _ => contentType
        };
        return(File(iconBytes, contentType));
    }