feat(dal): создана таблица ScheduleResponseAreaTimeOffsets. В таблицу JobGroup добавлено поле IsWorkGroupTimezone
This commit is contained in:
@@ -23,6 +23,11 @@
|
|||||||
|
|
||||||
public DateTimeOffset ReferenceDate { get; set; }
|
public DateTimeOffset ReferenceDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Использовать таймзону рабочей группы ответственного за ЭК шаблона
|
||||||
|
/// </summary>
|
||||||
|
public bool IsWorkGroupTimezone { get; set; }
|
||||||
|
|
||||||
public Guid ScheduleExcludeTypeId { get; set; }
|
public Guid ScheduleExcludeTypeId { get; set; }
|
||||||
|
|
||||||
public Guid? ScheduleExcludeTypeCalendarId { get; set; }
|
public Guid? ScheduleExcludeTypeCalendarId { get; set; }
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
public DateTimeOffset ReferenceDate { get; set; }
|
public DateTimeOffset ReferenceDate { get; set; }
|
||||||
|
|
||||||
|
public bool IsWorkGroupTimezone { get; set; }
|
||||||
|
|
||||||
public required JobGroupTypeResponse GroupType { get; set; }
|
public required JobGroupTypeResponse GroupType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ namespace PARR.API.Controllers.V1
|
|||||||
ScheduleExcludeTypeId = request.ScheduleExcludeTypeId,
|
ScheduleExcludeTypeId = request.ScheduleExcludeTypeId,
|
||||||
ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId,
|
ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId,
|
||||||
IsAutoDistributionEnabled = request.IsAutoDistributionEnabled,
|
IsAutoDistributionEnabled = request.IsAutoDistributionEnabled,
|
||||||
|
IsWorkGroupTimezone = request.IsWorkGroupTimezone
|
||||||
//IsAgent = request.IsAgent,
|
//IsAgent = request.IsAgent,
|
||||||
//AgentName = request.AgentName,
|
//AgentName = request.AgentName,
|
||||||
//AgentTimeOutSec = request.AgentTimeOutSec,
|
//AgentTimeOutSec = request.AgentTimeOutSec,
|
||||||
@@ -255,6 +256,7 @@ namespace PARR.API.Controllers.V1
|
|||||||
orig.ScheduleExcludeTypeId = request.ScheduleExcludeTypeId;
|
orig.ScheduleExcludeTypeId = request.ScheduleExcludeTypeId;
|
||||||
orig.ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId;
|
orig.ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId;
|
||||||
orig.IsAutoDistributionEnabled = request.IsAutoDistributionEnabled;
|
orig.IsAutoDistributionEnabled = request.IsAutoDistributionEnabled;
|
||||||
|
orig.IsWorkGroupTimezone = request.IsWorkGroupTimezone;
|
||||||
//orig.IsAgent = request.IsAgent;
|
//orig.IsAgent = request.IsAgent;
|
||||||
//orig.AgentName = request.AgentName;
|
//orig.AgentName = request.AgentName;
|
||||||
//orig.AgentTimeOutSec = request.AgentTimeOutSec;
|
//orig.AgentTimeOutSec = request.AgentTimeOutSec;
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ namespace PARR.DAL.Context
|
|||||||
|
|
||||||
public DbSet<ScheduleExcludeTypeCalendar> ScheduleExcludeTypeCalendars { get; set; }
|
public DbSet<ScheduleExcludeTypeCalendar> ScheduleExcludeTypeCalendars { get; set; }
|
||||||
public DbSet<ScheduleExcludeType> ScheduleExcludeTypes { get; set; }
|
public DbSet<ScheduleExcludeType> ScheduleExcludeTypes { get; set; }
|
||||||
|
public DbSet<ScheduleResponseAreaTimeOffset> ScheduleResponseAreaTimeOffsets { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
4137
PARR.DAL/Migrations/20260130002924_tblAddScheduleResponseAreaTimeOffset.Designer.cs
generated
Normal file
4137
PARR.DAL/Migrations/20260130002924_tblAddScheduleResponseAreaTimeOffset.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,49 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace PARR.DAL.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class tblAddScheduleResponseAreaTimeOffset : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<bool>(
|
||||||
|
name: "IsWorkGroupTimezone",
|
||||||
|
schema: "job",
|
||||||
|
table: "Groups",
|
||||||
|
type: "boolean",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: false);
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "ResponseAreaTimeOffsets",
|
||||||
|
schema: "schedule",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
ResponseArea = table.Column<string>(type: "text", nullable: false),
|
||||||
|
TimeOffset = table.Column<string>(type: "text", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_ResponseAreaTimeOffsets", x => x.ResponseArea);
|
||||||
|
},
|
||||||
|
comment: "Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "ResponseAreaTimeOffsets",
|
||||||
|
schema: "schedule");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "IsWorkGroupTimezone",
|
||||||
|
schema: "job",
|
||||||
|
table: "Groups");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1678,6 +1678,9 @@ namespace PARR.DAL.Migrations
|
|||||||
b.Property<bool>("IsAutoDistributionEnabled")
|
b.Property<bool>("IsAutoDistributionEnabled")
|
||||||
.HasColumnType("boolean");
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
|
b.Property<bool>("IsWorkGroupTimezone")
|
||||||
|
.HasColumnType("boolean");
|
||||||
|
|
||||||
b.Property<DateTimeOffset>("ReferenceDate")
|
b.Property<DateTimeOffset>("ReferenceDate")
|
||||||
.HasColumnType("timestamp with time zone");
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
@@ -2569,6 +2572,23 @@ namespace PARR.DAL.Migrations
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.Schedule.ScheduleResponseAreaTimeOffset", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("ResponseArea")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("TimeOffset")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("ResponseArea");
|
||||||
|
|
||||||
|
b.ToTable("ResponseAreaTimeOffsets", "schedule", t =>
|
||||||
|
{
|
||||||
|
t.HasComment("Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Name")
|
b.Property<string>("Name")
|
||||||
|
|||||||
@@ -92,6 +92,12 @@ namespace PARR.DAL.Models.Job
|
|||||||
public DateTimeOffset ReferenceDate { get; set; }
|
public DateTimeOffset ReferenceDate { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Использовать таймзону рабочей группы ответственного за ЭК шаблона
|
||||||
|
/// </summary>
|
||||||
|
public bool IsWorkGroupTimezone { get; set; } = false;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Включить автораспределение
|
/// Включить автораспределение
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
20
PARR.DAL/Models/Schedule/ScheduleResponseAreaTimeOffset.cs
Normal file
20
PARR.DAL/Models/Schedule/ScheduleResponseAreaTimeOffset.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using PARR.DAL.Context;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Models.Schedule
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы
|
||||||
|
/// </summary>
|
||||||
|
[Table("ResponseAreaTimeOffsets", Schema = DataContextSettings.Schedule)]
|
||||||
|
[Comment("Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы")]
|
||||||
|
public class ScheduleResponseAreaTimeOffset
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public required string ResponseArea { get; set; }
|
||||||
|
|
||||||
|
public required string TimeOffset { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -107,6 +107,7 @@ namespace PARR.DAL
|
|||||||
|
|
||||||
services.AddTransient<IScheduleExcludeTypeService, ScheduleExcludeTypeService>();
|
services.AddTransient<IScheduleExcludeTypeService, ScheduleExcludeTypeService>();
|
||||||
services.AddTransient<IScheduleExcludeTypeCalendarService, ScheduleExcludeTypeCalendarService>();
|
services.AddTransient<IScheduleExcludeTypeCalendarService, ScheduleExcludeTypeCalendarService>();
|
||||||
|
services.AddTransient<IScheduleResponseAreaTimeOffsetService, ScheduleResponseAreaTimeOffsetService>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using PARR.DAL.Context;
|
||||||
|
using PARR.DAL.Models.Schedule;
|
||||||
|
using PARR.DAL.Services.Interfaces.Schedule;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Services.Implementations.Schedule
|
||||||
|
{
|
||||||
|
internal class ScheduleResponseAreaTimeOffsetService : IScheduleResponseAreaTimeOffsetService
|
||||||
|
{
|
||||||
|
private readonly DataContext dataContext;
|
||||||
|
|
||||||
|
public ScheduleResponseAreaTimeOffsetService(DataContext dataContext)
|
||||||
|
{
|
||||||
|
this.dataContext = dataContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IQueryable<ScheduleResponseAreaTimeOffset> Get()
|
||||||
|
{
|
||||||
|
return dataContext.ScheduleResponseAreaTimeOffsets;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string?> GetTimeOffsetByResponseAreaAsync(string responseArea)
|
||||||
|
{
|
||||||
|
var result = await dataContext.ScheduleResponseAreaTimeOffsets.FirstOrDefaultAsync(t => t.ResponseArea == responseArea);
|
||||||
|
|
||||||
|
return result != null ? result.TimeOffset : null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using PARR.DAL.Models.Schedule;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Services.Interfaces.Schedule
|
||||||
|
{
|
||||||
|
public interface IScheduleResponseAreaTimeOffsetService
|
||||||
|
{
|
||||||
|
IQueryable<ScheduleResponseAreaTimeOffset> Get();
|
||||||
|
|
||||||
|
Task<string?> GetTimeOffsetByResponseAreaAsync(string responseArea);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user