39 lines
1.9 KiB
C#
39 lines
1.9 KiB
C#
using Gremlin_BlazorServer.Data.EntityClasses;
|
|
|
|
namespace Gremlin_BlazorServer.Services;
|
|
|
|
public static class HostingService {
|
|
// private static IWebHostEnvironment hostingEnvironment;
|
|
private static readonly HttpContextAccessor accessor = new();
|
|
|
|
private static IWebHostEnvironment WebEnv() => accessor.HttpContext?.RequestServices.GetRequiredService<IWebHostEnvironment>() ?? throw new InvalidOperationException();
|
|
|
|
// public HostingService(IWebHostEnvironment newHostingEnvironment) => hostingEnvironment = newHostingEnvironment;
|
|
|
|
public static string GetImgPath() => Path.Combine(WebEnv().WebRootPath, "img");
|
|
public static string GetQuotePath() => Path.Combine(WebEnv().WebRootPath, "quotes");
|
|
|
|
public static string? GetQuotePath(Quote quote, Contact recipient) {
|
|
if (recipient.Account?.AccountName is null || quote.Description is null) {
|
|
Console.WriteLine("Quote.Path not setable! No acount or desciption in the quote...");
|
|
return null;
|
|
}
|
|
|
|
string accountName = recipient.Account.AccountName.Replace(" ", "_");
|
|
string description = quote.Description.Replace(" ", "_");
|
|
|
|
return Path.Combine(WebEnv().WebRootPath, "quotes", accountName, $"{DateTime.Today.Year}-{DateTime.Today.Month}-{recipient.LastName}-{description}");
|
|
}
|
|
|
|
public static string? GetPdfUrl(Quote quote, Contact recipient) {
|
|
if (quote.QuotationNumber is null || recipient.Account?.AccountName is null || quote.Description is null) {
|
|
Console.WriteLine("No path, account, description or quotation number in the quote!");
|
|
return null;
|
|
}
|
|
|
|
string accountName = recipient.Account.AccountName.Replace(" ", "_");
|
|
string description = quote.Description.Replace(" ", "_");
|
|
|
|
return Path.Combine(accountName, $"{DateTime.Today.Year}-{DateTime.Today.Month}-{recipient.LastName}-{description}", $"{quote.QuotationNumber}.pdf");
|
|
}
|
|
} |