diff --git a/AsbCloudApp/Data/Progress/ProgressDto.cs b/AsbCloudApp/Data/Progress/ProgressDto.cs
new file mode 100644
index 00000000..3ad2c50a
--- /dev/null
+++ b/AsbCloudApp/Data/Progress/ProgressDto.cs
@@ -0,0 +1,18 @@
+namespace AsbCloudApp.Data.Progress;
+
+///
+/// DTO прогресса
+///
+public class ProgressDto
+{
+ ///
+ /// прогресс 0 - 100%
+ ///
+ public float Progress { get; set; }
+
+ ///
+ /// название текущей операции генерации
+ ///
+ public string? Operation { get; set; }
+
+}
diff --git a/AsbCloudApp/Data/Progress/ProgressExceptionDto.cs b/AsbCloudApp/Data/Progress/ProgressExceptionDto.cs
new file mode 100644
index 00000000..cb264178
--- /dev/null
+++ b/AsbCloudApp/Data/Progress/ProgressExceptionDto.cs
@@ -0,0 +1,29 @@
+using System;
+
+namespace AsbCloudApp.Data.Progress;
+
+///
+/// DTO прогресса с ошибкой
+///
+public class ProgressExceptionDto
+{
+ ///
+ /// прогресс 0 - 100%
+ ///
+ public float Progress { get; set; }
+
+ ///
+ /// название текущей операции генерации
+ ///
+ public string? Operation { get; set; }
+
+ ///
+ /// Отображаемый текст ошибки
+ ///
+ public string Message { get; set; } = null!;
+
+ ///
+ /// Инфо об исключении
+ ///
+ public Exception Exception { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/Progress/ReportProgressDto.cs b/AsbCloudApp/Data/Progress/ReportProgressDto.cs
new file mode 100644
index 00000000..b14166e9
--- /dev/null
+++ b/AsbCloudApp/Data/Progress/ReportProgressDto.cs
@@ -0,0 +1,12 @@
+namespace AsbCloudApp.Data.Progress;
+
+///
+/// DTO завершенного прогресса генерации рапорта-диаграммы
+///
+public class ReportProgressFinalDto : ReportProgressDto
+{
+ ///
+ /// файл
+ ///
+ public FileInfoDto file { get; set; }
+}
diff --git a/AsbCloudApp/Data/Progress/ReportProgressFinalDto.cs b/AsbCloudApp/Data/Progress/ReportProgressFinalDto.cs
new file mode 100644
index 00000000..b5ce965a
--- /dev/null
+++ b/AsbCloudApp/Data/Progress/ReportProgressFinalDto.cs
@@ -0,0 +1,17 @@
+namespace AsbCloudApp.Data.Progress;
+
+///
+/// DTO прогресса генерации рапорта-диаграммы
+///
+public class ReportProgressDto : ProgressDto
+{
+ ///
+ /// номер текущей страницы
+ ///
+ public int CurrentPage { get; set; }
+
+ ///
+ /// предполагаемое суммарное количество страниц
+ ///
+ public int TotalPages { get; set; }
+}
diff --git a/AsbCloudApp/Data/ReportProgressDto.cs b/AsbCloudApp/Data/ReportProgressDto.cs
deleted file mode 100644
index c7bf4cbb..00000000
--- a/AsbCloudApp/Data/ReportProgressDto.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-namespace AsbCloudApp.Data
-{
- ///
- /// DTO прогресса генерации рапорта-диаграммы
- ///
- public class ReportProgressDto
- {
- ///
- /// прогресс 0 - 100%
- ///
- public float Progress { get; set; }
-
- ///
- /// название текущей операции генерации
- ///
- public string? Operation { get; set; }
-
- ///
- /// номер текущей страницы
- ///
- public int CurrentPage { get; set; }
-
- ///
- /// предполагаемое суммарное количество страниц
- ///
- public int TotalPages { get; set; }
- }
-}
diff --git a/AsbCloudApp/Services/IReportService.cs b/AsbCloudApp/Services/IReportService.cs
index 85d72020..5f992a20 100644
--- a/AsbCloudApp/Services/IReportService.cs
+++ b/AsbCloudApp/Services/IReportService.cs
@@ -1,4 +1,6 @@
using AsbCloudApp.Data;
+using AsbCloudApp.Data.Progress;
+using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
@@ -11,26 +13,30 @@ namespace AsbCloudApp.Services
///
public interface IReportService
{
- ///
- /// категория рапорта
- ///
- int ReportCategoryId { get; }
///
/// Поставить рапорт в очередь на формирование
///
///
///
- ///
- ///
- ///
- ///
+ ///
///
///
- string EnqueueCreateReportWork(int idWell, int idUser, int stepSeconds,
- int format, DateTime begin, DateTime end,
+ string EnqueueCreateReportWork(int idWell, int idUser, ReportParametersRequest request,
Action