Проработка ротор

This commit is contained in:
Olga Nemt 2024-06-30 12:19:37 +05:00
parent 57db8df9da
commit a1567d49f9
10 changed files with 40 additions and 249 deletions

View File

@ -1,209 +0,0 @@
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.ProcessMaps;
/// <summary>
/// РТК план проработка для ротора
/// </summary>
public class ProcessMapPlanOperationReamingRotorDto : ProcessMapPlanBaseDto
{
/// <summary>
/// Максимальное давление, атм
/// </summary>
[Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")]
public double MaxPressure { get; set; }
/// <summary>
/// Перепад давления, атм.
/// </summary>
[Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")]
public double DifferentialPressure { get; set; }
/// <summary>
/// Уставки, т., затяжка
/// </summary>
[Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")]
public double SetpointsTight { get; set; }
/// <summary>
/// Уставки, т., посадка
/// </summary>
[Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")]
public double SetpointsSlackingOff { get; set; }
/// <summary>
/// Максимально допустимый момент, кН*м.
/// </summary>
[Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")]
public double MaxTorque { get; set; }
/// <summary>
/// Проработка 1, Количество повторений, шт.
/// </summary>
[Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")]
public double Reaming1NumberOfRepetitions { get; set; }
/// <summary>
/// Проработка 1, Скорость, м/ч., Вверх
/// </summary>
[Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
public double Reaming1ROPUp { get; set; }
/// <summary>
/// Проработка 1, Скорость, м/ч., Вниз
/// </summary>
[Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
public double Reaming1ROPDown { get; set; }
/// <summary>
/// Проработка 1, Обороты, об/мин., Вверх
/// </summary>
[Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
public double Reaming1RPMUp { get; set; }
/// <summary>
/// Проработка 1, Обороты, об/мин., Вниз
/// </summary>
[Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
public double Reaming1RPMDown { get; set; }
/// <summary>
/// Проработка 1, Расход, л/с., Вверх
/// </summary>
[Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
public double Reaming1FlowRateUp { get; set; }
/// <summary>
/// Проработка 1, Расход, л/с., Вниз
/// </summary>
[Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
public double Reaming1FlowRateDown { get; set; }
/// <summary>
/// Проработка 1, Интервал проработки, м.
/// </summary>
[Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")]
public double Reaming1Interval { get; set; }
/// <summary>
/// Остановка над забоем, м.
/// </summary>
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
public double Reaming1StopPointOffBottom { get; set; }
/// <summary>
/// Проработка 2, Количество повторений, шт.
/// </summary>
[Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")]
public double Reaming2NumberOfRepetitions { get; set; }
/// <summary>
/// Проработка 2, Скорость, м/ч., Вверх
/// </summary>
[Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
public double Reaming2ROPUp { get; set; }
/// <summary>
/// Проработка 2, Скорость, м/ч., Вниз
/// </summary>
[Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
public double Reaming2ROPDown { get; set; }
/// <summary>
/// Проработка 2, Обороты, об/мин., Вверх
/// </summary>
[Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
public double Reaming2RPMUp { get; set; }
/// <summary>
/// Проработка 2, Обороты, об/мин., Вниз
/// </summary>
[Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
public double Reaming2RPMDown { get; set; }
/// <summary>
/// Проработка 2, Расход, л/с., Вверх
/// </summary>
[Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
public double Reaming2FlowRateUp { get; set; }
/// <summary>
/// Проработка 2, Расход, л/с., Вниз
/// </summary>
[Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
public double Reaming2FlowRateDown { get; set; }
/// <summary>
/// Проработка 2, Интервал проработки, м.
/// </summary>
[Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")]
public double Reaming2Interval { get; set; }
/// <summary>
/// Остановка над забоем, м.
/// </summary>
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
public double Reaming2StopPointOffBottom { get; set; }
/// <summary>
/// Проработка 3, Количество повторений, шт.
/// </summary>
[Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")]
public double Reaming3NumberOfRepetitions { get; set; }
/// <summary>
/// Проработка 3, Скорость, м/ч., Вверх
/// </summary>
[Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
public double Reaming3ROPUp { get; set; }
/// <summary>
/// Проработка 3, Скорость, м/ч., Вниз
/// </summary>
[Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
public double Reaming3ROPDown { get; set; }
/// <summary>
/// Проработка 3, Обороты, об/мин., Вверх
/// </summary>
[Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
public double Reaming3RPMUp { get; set; }
/// <summary>
/// Проработка 3, Обороты, об/мин., Вниз
/// </summary>
[Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
public double Reaming3RPMDown { get; set; }
/// <summary>
/// Проработка 3, Расход, л/с., Вверх
/// </summary>
[Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
public double Reaming3FlowRateUp { get; set; }
/// <summary>
/// Проработка 3, Расход, л/с., Вниз
/// </summary>
[Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
public double Reaming3FlowRateDown { get; set; }
/// <summary>
/// Проработка 3, Интервал проработки, м.
/// </summary>
[Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")]
public double Reaming3Interval { get; set; }
/// <summary>
/// Остановка над забоем, м.
/// </summary>
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
public double Reaming3StopPointOffBottom { get; set; }
/// <summary>
/// Примечание
/// </summary>
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
public string Note { get; set; } = string.Empty;
}

View File

@ -22,7 +22,7 @@ namespace AsbCloudDb.Model
public virtual DbSet<ProcessMapPlanRotor> ProcessMapPlanRotor => Set<ProcessMapPlanRotor>();
public virtual DbSet<ProcessMapPlanSlide> ProcessMapPlanSlide => Set<ProcessMapPlanSlide>();
public virtual DbSet<ProcessMapPlanReam> ProcessMapPlanReams => Set<ProcessMapPlanReam>();
public virtual DbSet<ProcessMapPlanOperationReamingRotor> ProcessMapPlanOperationReamingRotor => Set<ProcessMapPlanOperationReamingRotor>();
public virtual DbSet<ProcessMapPlanReamingRotor> ProcessMapPlanOperationReamingRotor => Set<ProcessMapPlanReamingRotor>();
public virtual DbSet<ProcessMapPlanReamingSlide> ProcessMapPlanOperationReamingSlide => Set<ProcessMapPlanReamingSlide>();
public virtual DbSet<ProcessMapPlanOperationLoadCapacity> ProcessMapPlanOperationLoadCapacity => Set<ProcessMapPlanOperationLoadCapacity>();
public virtual DbSet<ProcessMapPlanSurvey> ProcessMapPlanSurvey => Set<ProcessMapPlanSurvey>();
@ -473,7 +473,7 @@ namespace AsbCloudDb.Model
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanOperationReamingRotor>()
modelBuilder.Entity<ProcessMapPlanReamingRotor>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
@ -573,7 +573,7 @@ namespace AsbCloudDb.Model
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanOperationReamingRotor>()
modelBuilder.Entity<ProcessMapPlanReamingRotor>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);

View File

@ -83,7 +83,7 @@ namespace AsbCloudDb.Model
DbSet<ProcessMapPlanReam> ProcessMapPlanReams { get; }
DbSet<ProcessMapPlanRotor> ProcessMapPlanRotor { get; }
DbSet<ProcessMapPlanSlide> ProcessMapPlanSlide { get; }
DbSet<ProcessMapPlanOperationReamingRotor> ProcessMapPlanOperationReamingRotor { get; }
DbSet<ProcessMapPlanReamingRotor> ProcessMapPlanOperationReamingRotor { get; }
DbSet<ProcessMapPlanReamingSlide> ProcessMapPlanOperationReamingSlide { get; }
DbSet<ProcessMapPlanOperationLoadCapacity> ProcessMapPlanOperationLoadCapacity { get; }
DbSet<ProcessMapPlanSurvey> ProcessMapPlanSurvey { get; }

View File

@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMaps;
[Table("t_process_map_plan_operation_reaming_rotor"), Comment("РТК проработка ротор")]
public class ProcessMapPlanOperationReamingRotor : ProcessMapPlanBase
public class ProcessMapPlanReamingRotor : ProcessMapPlanBase
{
[Column("max_pressure"), Comment("Максимальное давление, атм")]
[Range(0.0, 400.0)]
@ -154,5 +154,5 @@ public class ProcessMapPlanOperationReamingRotor : ProcessMapPlanBase
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanOperationReamingRotor? Previous { get; set; }
public virtual ProcessMapPlanReamingRotor? Previous { get; set; }
}

View File

@ -146,11 +146,11 @@ namespace AsbCloudInfrastructure
Item = src.Adapt<ProcessMapPlanSlideDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanOperationReamingRotorDto>>.NewConfig()
.Include<ProcessMapPlanOperationReamingRotor, ChangeLogDto<ProcessMapPlanOperationReamingRotorDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanOperationReamingRotorDto>()
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanReamingRotorDto>>.NewConfig()
.Include<ProcessMapPlanReamingRotor, ChangeLogDto<ProcessMapPlanReamingRotorDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanReamingRotorDto>()
{
Item = src.Adapt<ProcessMapPlanOperationReamingRotorDto>()
Item = src.Adapt<ProcessMapPlanReamingRotorDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanReamingSlideDto>>.NewConfig()
@ -429,7 +429,7 @@ namespace AsbCloudInfrastructure
services.AddTransient<ProcessMapPlanRotorParser>();
services.AddTransient<ProcessMapPlanSlideParser>();
services.AddTransient<ProcessMapPlanReamParser>();
services.AddTransient<ProcessMapPlanOperationReamingRotorParser>();
services.AddTransient<ProcessMapPlanReamingRotorParser>();
services.AddTransient<ProcessMapPlanReamingSlideParser>();
services.AddTransient<ProcessMapPlanOperationLoadCapacityParser>();
services.AddTransient<ProcessMapPlanSurveyParser>();
@ -455,7 +455,7 @@ namespace AsbCloudInfrastructure
services.AddTransient<ProcessMapPlanRotorExportService>();
services.AddTransient<ProcessMapPlanSlideExportService>();
services.AddTransient<ProcessMapPlanReamExportService>();
services.AddTransient<ProcessMapPlanOperationReamingRotorExportService>();
services.AddTransient<ProcessMapPlanReamingRotorExportService>();
services.AddTransient<ProcessMapPlanReamingSlideExportService>();
services.AddTransient<ProcessMapPlanOperationLoadCapacityExportService>();
services.AddTransient<ProcessMapPlanSurveyExportService>();
@ -495,8 +495,8 @@ namespace AsbCloudInfrastructure
ProcessMapPlanBaseRepository<ProcessMapPlanReam, ProcessMapPlanReamDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanOperationReamingRotorDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanOperationReamingRotor, ProcessMapPlanOperationReamingRotorDto>>();
IChangeLogRepository<ProcessMapPlanReamingRotorDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanReamingRotor, ProcessMapPlanReamingRotorDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanReamingSlideDto, ProcessMapPlanBaseRequestWithWell>,
@ -568,7 +568,7 @@ namespace AsbCloudInfrastructure
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanRotorDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanSlideDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanOperationReamingRotorDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanReamingRotorDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanReamingSlideDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanOperationLoadCapacityDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanSurveyDto>>();

View File

@ -3,13 +3,13 @@ using AsbCloudApp.Data.ProcessMaps;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanOperationReamingRotorTemplate : ITemplateParameters
public class ProcessMapPlanReamingRotorTemplate : ITemplateParameters
{
public string SheetName => "Проработка ротор";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanOperationReamingRotorTemplate.xlsx";
public string FileName => "ProcessMapPlanReamingRotorTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{

View File

@ -10,16 +10,16 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanOperationReamingRotorExportService : ProcessMapPlanExportService<ProcessMapPlanOperationReamingRotorDto>
public class ProcessMapPlanReamingRotorExportService : ProcessMapPlanExportService<ProcessMapPlanReamingRotorDto>
{
public ProcessMapPlanOperationReamingRotorExportService(
IChangeLogRepository<ProcessMapPlanOperationReamingRotorDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
public ProcessMapPlanReamingRotorExportService(
IChangeLogRepository<ProcessMapPlanReamingRotorDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationReamingRotorTemplate();
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanReamingRotorTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{

View File

@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanOperationReamingRotorParser : ProcessMapPlanParser<ProcessMapPlanOperationReamingRotorDto>
public class ProcessMapPlanReamingRotorParser : ProcessMapPlanParser<ProcessMapPlanReamingRotorDto>
{
public ProcessMapPlanOperationReamingRotorParser(IWellOperationRepository wellOperationRepository)
public ProcessMapPlanReamingRotorParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationReamingRotorTemplate();
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamingRotorTemplate();
protected override ProcessMapPlanOperationReamingRotorDto BuildDto(IDictionary<string, object?> row, int rowNumber)
protected override ProcessMapPlanReamingRotorDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);

View File

@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests;
using Microsoft.EntityFrameworkCore;
using Xunit;
namespace AsbCloudWebApi.Controllers.ProcessMaps;
namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations;
/// <summary>
/// РТК план проработка для ротора
/// </summary>
public class ProcessMapPlanOperationReamingRotorControllerTest :
ProcessMapPlanBaseControllerTest<ProcessMapPlanOperationReamingRotor, ProcessMapPlanOperationReamingRotorDto>
public class ProcessMapPlanReamingRotorControllerTest :
ProcessMapPlanBaseControllerTest<ProcessMapPlanReamingRotor, ProcessMapPlanReamingRotorDto>
{
public ProcessMapPlanOperationReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingRotor")
public ProcessMapPlanReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingRotor")
{
}
private readonly ProcessMapPlanOperationReamingRotorDto dto = new ProcessMapPlanOperationReamingRotorDto()
private readonly ProcessMapPlanReamingRotorDto dto = new ProcessMapPlanReamingRotorDto()
{
IdWell = 1,
DepthStart = 1,
@ -63,7 +63,7 @@ public class ProcessMapPlanOperationReamingRotorControllerTest :
SetpointsSlackingOff = 5
};
private readonly ProcessMapPlanOperationReamingRotor entity = new ProcessMapPlanOperationReamingRotor()
private readonly ProcessMapPlanReamingRotor entity = new ProcessMapPlanReamingRotor()
{
IdWell = 1,
DepthEnd = 10,
@ -114,17 +114,17 @@ public class ProcessMapPlanOperationReamingRotorControllerTest :
await Get(entity, dto);
}
protected override ProcessMapPlanOperationReamingRotor GetByNote(DbSet<ProcessMapPlanOperationReamingRotor> dbSet, ProcessMapPlanOperationReamingRotorDto dto)
protected override ProcessMapPlanReamingRotor GetByNote(DbSet<ProcessMapPlanReamingRotor> dbSet, ProcessMapPlanReamingRotorDto dto)
{
throw new NotImplementedException();
}
protected override ProcessMapPlanOperationReamingRotorDto GetByNote(IEnumerable<ProcessMapPlanOperationReamingRotorDto> dtos, ProcessMapPlanOperationReamingRotorDto dto)
protected override ProcessMapPlanReamingRotorDto GetByNote(IEnumerable<ProcessMapPlanReamingRotorDto> dtos, ProcessMapPlanReamingRotorDto dto)
{
throw new NotImplementedException();
}
protected override ProcessMapPlanOperationReamingRotor? GetByWellId()
protected override ProcessMapPlanReamingRotor? GetByWellId()
{
throw new NotImplementedException();
}

View File

@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps;
/// <summary>
/// РТК план проработка для ротора
/// </summary>
public class ProcessMapPlanOperationReamingRotorController :
ProcessMapPlanBaseController<ProcessMapPlanOperationReamingRotor, ProcessMapPlanOperationReamingRotorDto>
public class ProcessMapPlanReamingRotorController :
ProcessMapPlanBaseController<ProcessMapPlanReamingRotor, ProcessMapPlanReamingRotorDto>
{
public ProcessMapPlanOperationReamingRotorController(
IChangeLogRepository<ProcessMapPlanOperationReamingRotorDto, ProcessMapPlanBaseRequestWithWell> repository,
public ProcessMapPlanReamingRotorController(
IChangeLogRepository<ProcessMapPlanReamingRotorDto, ProcessMapPlanBaseRequestWithWell> repository,
IWellService wellService,
ProcessMapPlanOperationReamingRotorParser parserService,
ProcessMapPlanReamingRotorParser parserService,
ITelemetryService telemetryService,
ProcessMapPlanOperationReamingRotorExportService processMapPlanExportService)
ProcessMapPlanReamingRotorExportService processMapPlanExportService)
: base(repository, wellService, parserService, processMapPlanExportService, telemetryService)
{
}