< Summary

Information
Class: Services.BitrixStockServices.SendSyncReportEmailJob
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/BitrixStockServices/SendSyncReportEmailJob.cs
Line coverage
50%
Covered lines: 7
Uncovered lines: 7
Coverable lines: 14
Total lines: 35
Line coverage: 50%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
ExecuteAsync()50%8436.36%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/BitrixStockServices/SendSyncReportEmailJob.cs

#LineLine coverage
 1using Hangfire;
 2using Services.HangfireService;
 3using SlqStudio.Application.Services.EmailService;
 4
 5namespace Services.BitrixStockServices;
 6
 7/// <summary>
 8/// Формирует Excel-отчёт синхронизации остатков и отправляет его на lex@interparts.ru.
 9/// Запускается автоматически после завершения BuildReportAsync для каждого пресета.
 10/// </summary>
 1011public class SendSyncReportEmailJob(
 1012    IBitrixStockSyncReportService reportService,
 1013    IEmailService emailService)
 14{
 15    private const string RecipientEmail = "lex@interparts.ru";
 16    public const string QueueName = HangfireQueueNames.Main;
 17
 18    [Queue(QueueName)]
 19    public async Task ExecuteAsync(string reportId, string presetName, CancellationToken ct = default)
 20    {
 721        var (bytes, filename) = await BitrixStockSyncReportExcelBuilder.BuildAsync(
 722            reportService, reportId, ct: ct);
 23
 1424        if (bytes == null || bytes.Length == 0) return;
 25
 026        var subject = $"[Авто] Отчёт синхронизации: {presetName} — {BitrixStockMskDateTime.FormatNow()}";
 027        var body = $"Автоматический отчёт синхронизации остатков Ozon.\n" +
 028                   $"Пресет: {presetName}\n" +
 029                   $"Файл во вложении: {filename}";
 30
 031        await emailService.SendEmailWithAttachmentAsync(
 032            RecipientEmail, subject, body, bytes, filename,
 033            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
 734    }
 35}