using AsbCloudApp.Data; using AsbCloudInfrastructure.Services.Email; using Microsoft.Extensions.Configuration; using System; using System.IO; namespace AsbCloudInfrastructure { class DrillingMailBodyFactory : BaseFactory { private readonly string platformName; private readonly string platformUrl; public DrillingMailBodyFactory(IConfiguration configuration) : base(configuration) { platformName = configuration.GetValue("email:platformName", "Цифровое бурение"); platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/"); } public override string MakeSubject(WellDto well, string action) { var subj = $"{well.Deposit}, {well.Cluster}, {well.Caption}. Программа бурения. {action}"; return subj; } public string MakeMailBodyForNewPublisher(WellDto well, string publisherName, string documentCategory) { var drillingProgramHref = MakeDrillingProgramHref(well); var body = $"

Здравствуйте, {publisherName}.

" + $"На портале {platformName} началось создание программы бурения скважины {drillingProgramHref}," + $" куст {well.Cluster}, месторождение {well.Deposit}." + $"

От вас ожидается загрузка на портал документа «{documentCategory}» в формате excel (*.xlsx)." + MakeSignatue() + $""; return body; } public string MakeMailBodyForApproverNewFile(WellDto well, string approverName, int idFile, string fileName) { var drillingProgramHref = MakeDrillingProgramHref(well); var body = $"

Здравствуйте, {approverName}.

" + $"На портал {platformName} загружен документ {fileName}" + $" для согласования при создании программы бурения скважины {drillingProgramHref}, куст ({well.Cluster})" + $", месторождение ({well.Deposit}).
" + MakeSignatue() + $""; return body; } public string MakeMailBodyForPublisherOnReject(WellDto well, string publisherName, int idFile, string fileName, FileMarkDto fileMark) { var drillingProgramHref = MakeDrillingProgramHref(well); var body = $"

Здравствуйте, {publisherName}.

" + $"На портале {platformName} отклонен загруженный вами документ {fileName} " + $" по программе бурения скважины {drillingProgramHref}," + $" куст {well.Cluster}, месторождение {well.Deposit}." + $" Комментарий согласующего ({fileMark.User?.Name} {fileMark.User?.Surname}):
{fileMark.Comment}" + MakeSignatue() + $""; return body; } public string MakeMailBodyForPublisherOnFullAccept(WellDto well, string publisherName, int idFile, string fileName) { var drillingProgramHref = MakeDrillingProgramHref(well); var body = $"

Здравствуйте, {publisherName}.

" + $"На портале {platformName} полностью согласован документ {fileName} " + $" по программе бурения скважины {drillingProgramHref}," + $" куст {well.Cluster}, месторождение {well.Deposit}." + MakeSignatue() + $""; return body; } private string MakeDrillingProgramHref(WellDto well) { var drillingProgramUrl = $"{platformUrl}/well/{well.Id}/drillingProgram"; var drillingProgramHref = MakeHref(drillingProgramUrl, well.Caption); return drillingProgramHref; } } }