using IRaCIS.Core.Domain.Share;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.FileProviders;
using System.IO;

namespace IRaCIS.Core.API
{
    public static class IRacisHostFileStore
    {

        public static void UseIRacisHostStaticFileStore(this IApplicationBuilder app, IWebHostEnvironment env)
        {

            var uploadPath = Path.Combine(Directory.GetParent(env.ContentRootPath.TrimEnd('\\')).FullName, StaticData.UploadFileFolder);
            var dicomPath = Path.Combine(Directory.GetParent(env.ContentRootPath.TrimEnd('\\')).FullName, StaticData.TrialDataFolder);


            if (!Directory.Exists(uploadPath))
            {
                Directory.CreateDirectory(uploadPath);
            }

            if (!Directory.Exists(dicomPath))
            {
                Directory.CreateDirectory(dicomPath);
            }

            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(uploadPath),
                RequestPath = $"/{StaticData.UploadFileFolder}"
            });


            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(dicomPath),
                RequestPath = $"/{StaticData.TrialDataFolder}"
            });

        }
    }
}