forked from ddrilling/AsbCloudServer
Merge branch 'dev' into feature/daily_report
# Conflicts: # AsbCloudInfrastructure/DependencyInjection.cs
This commit is contained in:
commit
1088092d2f
@ -180,12 +180,12 @@ namespace AsbCloudApp.Data
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected void SetStatusComplete()
|
protected void SetStatusComplete()
|
||||||
{
|
{
|
||||||
|
CountComplete++;
|
||||||
if (CurrentState is null)
|
if (CurrentState is null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LastComplete = new(CurrentState);
|
LastComplete = new(CurrentState);
|
||||||
CurrentState = null;
|
CurrentState = null;
|
||||||
CountComplete++;
|
|
||||||
Trace.TraceInformation($"{WorkNameForTrace} state: completed");
|
Trace.TraceInformation($"{WorkNameForTrace} state: completed");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,12 +194,12 @@ namespace AsbCloudApp.Data
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected void SetLastError(string errorMessage)
|
protected void SetLastError(string errorMessage)
|
||||||
{
|
{
|
||||||
|
CountErrors++;
|
||||||
if (CurrentState is null)
|
if (CurrentState is null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LastError = new LastErrorInfo(CurrentState, errorMessage);
|
LastError = new LastErrorInfo(CurrentState, errorMessage);
|
||||||
CurrentState = null;
|
CurrentState = null;
|
||||||
CountErrors++;
|
|
||||||
Trace.TraceError($"{WorkNameForTrace} throw exception[{CountErrors}]: {errorMessage}");
|
Trace.TraceError($"{WorkNameForTrace} throw exception[{CountErrors}]: {errorMessage}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ namespace AsbCloudApp.Data
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название типа компании
|
/// Название типа компании
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[StringLength(30, MinimumLength = 1, ErrorMessage = "Допустимое имя типа компании от 1 до 30 символов")]
|
[StringLength(255, MinimumLength = 1, ErrorMessage = "Допустимое имя типа компании от 1 до 255 символов")]
|
||||||
public string? CompanyTypeCaption { get; set; } = null!;
|
public string? CompanyTypeCaption { get; set; } = null!;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
8988
AsbCloudDb/Migrations/20231123085551_Add_New_WellOperationCategories.Designer.cs
generated
Normal file
8988
AsbCloudDb/Migrations/20231123085551_Add_New_WellOperationCategories.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,94 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace AsbCloudDb.Migrations
|
||||||
|
{
|
||||||
|
public partial class Add_New_WellOperationCategories : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.InsertData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
columns: new[] { "id", "id_parent", "key_value_name", "key_value_units", "name" },
|
||||||
|
values: new object[,]
|
||||||
|
{
|
||||||
|
{ 4018, 3002, "dT", "мин", "Крепление" },
|
||||||
|
{ 5102, 4018, "dT", "мин", "Спуск пакера" },
|
||||||
|
{ 5103, 4011, "dT", "мин", "Запись гамма-каратожа" },
|
||||||
|
{ 5104, 4013, "dT", "мин", "Шаблонирование спуск БИ" },
|
||||||
|
{ 5105, 4018, "dT", "мин", "Сборка клин-отклонителя" },
|
||||||
|
{ 5106, 4018, "dT", "мин", "Ориентирование и посадка клина-отклонителя" },
|
||||||
|
{ 5107, 4018, "dT", "мин", "Протяжка подъемного патрубка подвески" },
|
||||||
|
{ 5108, 4018, "dT", "мин", "Подъем клина-отклонителя" },
|
||||||
|
{ 5109, 4018, "dT", "мин", "Стыковка стингера с хвостовиком основного ствола" },
|
||||||
|
{ 5110, 4018, "dT", "мин", "Ориентирование и установка стыковочного узла хвостовика" },
|
||||||
|
{ 5111, 4001, "МСП", "м/ч", "Бурение с отбором керна" },
|
||||||
|
{ 5112, 4018, "dT", "мин", "Работа пакером в обсадной колонне" }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 4018);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5102);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5103);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5104);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5105);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5106);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5107);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5108);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5109);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5110);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5111);
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "t_well_operation_category",
|
||||||
|
keyColumn: "id",
|
||||||
|
keyValue: 5112);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -6019,6 +6019,14 @@ namespace AsbCloudDb.Migrations
|
|||||||
Name = "Спуск обсадной колонны"
|
Name = "Спуск обсадной колонны"
|
||||||
},
|
},
|
||||||
new
|
new
|
||||||
|
{
|
||||||
|
Id = 4018,
|
||||||
|
IdParent = 3002,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Крепление"
|
||||||
|
},
|
||||||
|
new
|
||||||
{
|
{
|
||||||
Id = 4007,
|
Id = 4007,
|
||||||
IdParent = 3002,
|
IdParent = 3002,
|
||||||
@ -6905,6 +6913,94 @@ namespace AsbCloudDb.Migrations
|
|||||||
KeyValueName = "dT",
|
KeyValueName = "dT",
|
||||||
KeyValueUnits = "мин",
|
KeyValueUnits = "мин",
|
||||||
Name = "Ремонт"
|
Name = "Ремонт"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5102,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Спуск пакера"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5103,
|
||||||
|
IdParent = 4011,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Запись гамма-каратожа"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5104,
|
||||||
|
IdParent = 4013,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Шаблонирование спуск БИ"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5105,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Сборка клин-отклонителя"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5106,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Ориентирование и посадка клина-отклонителя"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5107,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Протяжка подъемного патрубка подвески"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5108,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Подъем клина-отклонителя"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5109,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Стыковка стингера с хвостовиком основного ствола"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5110,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Ориентирование и установка стыковочного узла хвостовика"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5111,
|
||||||
|
IdParent = 4001,
|
||||||
|
KeyValueName = "МСП",
|
||||||
|
KeyValueUnits = "м/ч",
|
||||||
|
Name = "Бурение с отбором керна"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5112,
|
||||||
|
IdParent = 4018,
|
||||||
|
KeyValueName = "dT",
|
||||||
|
KeyValueUnits = "мин",
|
||||||
|
Name = "Работа пакером в обсадной колонне"
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
BIN
AsbCloudDb/Model/DefaultData/WellOperationCategories.xlsx
Normal file
BIN
AsbCloudDb/Model/DefaultData/WellOperationCategories.xlsx
Normal file
Binary file not shown.
@ -253,6 +253,7 @@ namespace AsbCloudDb.Model
|
|||||||
new () {Id = IdBuilding, IdParent = 3000, Name = "Наращивание", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = IdBuilding, IdParent = 3000, Name = "Наращивание", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
new () {Id = IdSPO , IdParent = 3001, Name = "СПО", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = IdSPO , IdParent = 3001, Name = "СПО", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
new () {Id = IdCasingRunning, IdParent = 3002, Name = "Спуск обсадной колонны", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = IdCasingRunning, IdParent = 3002, Name = "Спуск обсадной колонны", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
|
new () {Id = 4018, IdParent = 3002, Name = "Крепление", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
new () {Id = IdCementing, IdParent = 3002, Name = "Цементирование", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = IdCementing, IdParent = 3002, Name = "Цементирование", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
new () {Id = IdAuxiliaryWorkFastening, IdParent = 3002, Name = "Вспомогательные работы при креплении", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = IdAuxiliaryWorkFastening, IdParent = 3002, Name = "Вспомогательные работы при креплении", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
new () {Id = IdAssemblyOrDisassemblyGIS, IdParent = 3003, Name = "Сборка/разборка приборов ГИС", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = IdAssemblyOrDisassemblyGIS, IdParent = 3003, Name = "Сборка/разборка приборов ГИС", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
@ -370,6 +371,17 @@ namespace AsbCloudDb.Model
|
|||||||
new () {Id = 5099, IdParent = 4013, Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО.", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = 5099, IdParent = 4013, Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО.", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
new () {Id = 5100, IdParent = 4013, Name = "Смена рабочего переводника ВСП", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = 5100, IdParent = 4013, Name = "Смена рабочего переводника ВСП", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
new () {Id = 5101, IdParent = 4014, Name = "Ремонт", KeyValueName = "dT", KeyValueUnits = "мин" },
|
new () {Id = 5101, IdParent = 4014, Name = "Ремонт", KeyValueName = "dT", KeyValueUnits = "мин" },
|
||||||
|
new () {Id = 5102, IdParent = 4018, Name = "Спуск пакера", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5103, IdParent = 4011, Name = "Запись гамма-каратожа", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5104, IdParent = 4013, Name = "Шаблонирование спуск БИ", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5105, IdParent = 4018, Name = "Сборка клин-отклонителя", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5106, IdParent = 4018, Name = "Ориентирование и посадка клина-отклонителя", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5107, IdParent = 4018, Name = "Протяжка подъемного патрубка подвески", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5108, IdParent = 4018, Name = "Подъем клина-отклонителя", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5109, IdParent = 4018, Name = "Стыковка стингера с хвостовиком основного ствола", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5110, IdParent = 4018, Name = "Ориентирование и установка стыковочного узла хвостовика", KeyValueName = "dT", KeyValueUnits = "мин"},
|
||||||
|
new () {Id = 5111, IdParent = 4001, Name = "Бурение с отбором керна", KeyValueName = "МСП", KeyValueUnits = "м/ч"},
|
||||||
|
new () {Id = 5112, IdParent = 4018, Name = "Работа пакером в обсадной колонне", KeyValueName = "dT", KeyValueUnits = "мин"}
|
||||||
};
|
};
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ sudo nano postgresql.conf
|
|||||||
|
|
||||||
2. В postgres.conf найти запись listen_addresses и добавить туда ip standby-сервера
|
2. В postgres.conf найти запись listen_addresses и добавить туда ip standby-сервера
|
||||||
|
|
||||||
> listen_addresses = '*, <ip standby-сервера>'
|
> listen_addresses = 'localhost, <ip standby-сервера>'
|
||||||
|
|
||||||
3. Открыть клиент для работы с postgres
|
3. Открыть клиент для работы с postgres
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ sudo nano pg_hba.conf
|
|||||||
```
|
```
|
||||||
|
|
||||||
## 3. Настройка replica-сервера
|
## 3. Настройка replica-сервера
|
||||||
1. Остановить сервер
|
1. Остановить сервер
|
||||||
```
|
```
|
||||||
sudo systemctl stop postgresql
|
sudo systemctl stop postgresql
|
||||||
```
|
```
|
||||||
@ -75,7 +75,7 @@ sudo nano pg_hba.conf
|
|||||||
5. Используя утилиту basebackup создать базовую резервную копию с правами владения postgres (либо любого пользователя с соответствующими разрешениями).
|
5. Используя утилиту basebackup создать базовую резервную копию с правами владения postgres (либо любого пользователя с соответствующими разрешениями).
|
||||||
|
|
||||||
```
|
```
|
||||||
pg_basebackup -h <ip primary-сервера> -D /var/lib/postgresql/14/main/ -U replicator -P -v -R -X stream -C -S slaveslot1
|
pg_basebackup -h <ip primary-сервера> -D /var/lib/postgresql/15/main/ -U replicator -P -v -R -X stream -C -S slaveslot1
|
||||||
|
|
||||||
где: /var/lib/postgresql/15/main/ - каталог replica-сервера
|
где: /var/lib/postgresql/15/main/ - каталог replica-сервера
|
||||||
```
|
```
|
||||||
@ -133,12 +133,12 @@ sudo -u postgres psql
|
|||||||
|
|
||||||
1. Установить на primary-сервер pgpool2 и postgresql-14-pgpool2
|
1. Установить на primary-сервер pgpool2 и postgresql-14-pgpool2
|
||||||
```
|
```
|
||||||
apt-get -y install pgpool2 postgresql-15-pgpool2
|
apt -y install pgpool2 postgresql-15-pgpool2
|
||||||
|
|
||||||
```
|
```
|
||||||
2. Установить на standby-сервер только postgresql-14-pgpool2
|
2. Установить на standby-сервер только postgresql-14-pgpool2
|
||||||
```
|
```
|
||||||
apt-get -y install postgresql-15-pgpool2
|
apt -y install postgresql-15-pgpool2
|
||||||
```
|
```
|
||||||
### Далее все настройки выполнить на primary-сервере
|
### Далее все настройки выполнить на primary-сервере
|
||||||
3. Зайти на редактирование в конфигурационный файл pgpool2
|
3. Зайти на редактирование в конфигурационный файл pgpool2
|
||||||
@ -154,11 +154,12 @@ apt-get -y install postgresql-15-pgpool2
|
|||||||
backend_hostname0 = '<ip primary-сервера>'
|
backend_hostname0 = '<ip primary-сервера>'
|
||||||
backend_port0 = '<порт primary-сервера>'
|
backend_port0 = '<порт primary-сервера>'
|
||||||
backend_weight0 = 0
|
backend_weight0 = 0
|
||||||
backend_data_directory0 = '/var/lib/postgresql/14/main'
|
backend_data_directory0 = '/var/lib/postgresql/15/main'
|
||||||
___
|
___
|
||||||
backend_hostname1 = '<ip replica-сервера>'
|
backend_hostname1 = '<ip replica-сервера>'
|
||||||
backend_port1 = '<порт primary-сервера>'
|
backend_port1 = '<порт replica-сервера>'
|
||||||
backend_weight1 = 1
|
backend_weight1 = 1
|
||||||
|
|
||||||
___
|
___
|
||||||
enable_pool_hba = on
|
enable_pool_hba = on
|
||||||
log_statement = on
|
log_statement = on
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using AsbCloudApp.Data;
|
using System;
|
||||||
|
using AsbCloudApp.Data;
|
||||||
using AsbCloudApp.Data.DrillTestReport;
|
using AsbCloudApp.Data.DrillTestReport;
|
||||||
using AsbCloudApp.Data.Manuals;
|
using AsbCloudApp.Data.Manuals;
|
||||||
using AsbCloudApp.Data.ProcessMaps;
|
using AsbCloudApp.Data.ProcessMaps;
|
||||||
@ -36,7 +37,6 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using System;
|
|
||||||
using AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
using AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
||||||
using AsbCloudApp.Services.DailyReport;
|
using AsbCloudApp.Services.DailyReport;
|
||||||
using AsbCloudDb.Model.DailyReports.Blocks.TimeBalance;
|
using AsbCloudDb.Model.DailyReports.Blocks.TimeBalance;
|
||||||
@ -46,15 +46,6 @@ namespace AsbCloudInfrastructure
|
|||||||
|
|
||||||
public static class DependencyInjection
|
public static class DependencyInjection
|
||||||
{
|
{
|
||||||
public static IAsbCloudDbContext MakeContext(string connectionString)
|
|
||||||
{
|
|
||||||
var options = new DbContextOptionsBuilder<AsbCloudDbContext>()
|
|
||||||
.UseNpgsql(connectionString)
|
|
||||||
.Options;
|
|
||||||
var context = new AsbCloudDbContext(options);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void MapsterSetup()
|
public static void MapsterSetup()
|
||||||
{
|
{
|
||||||
TypeAdapterConfig.GlobalSettings.Default.Config
|
TypeAdapterConfig.GlobalSettings.Default.Config
|
||||||
@ -319,19 +310,5 @@ namespace AsbCloudInfrastructure
|
|||||||
|
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IServiceCollection AddTransientLazy<TService, TImplementation>(this IServiceCollection services)
|
|
||||||
where TService : class
|
|
||||||
where TImplementation : class, TService
|
|
||||||
=> services.AddTransient<TService, TImplementation>()
|
|
||||||
.AddTransient(provider => new Lazy<TService>(provider.GetRequiredService<TService>));
|
|
||||||
|
|
||||||
public static IServiceCollection AddTransientLazy<TService, TImplementation>(this IServiceCollection services, Func<IServiceProvider, TImplementation> implementationFactory)
|
|
||||||
where TService : class
|
|
||||||
where TImplementation : class, TService
|
|
||||||
=> services.AddTransient<TService, TImplementation>(implementationFactory)
|
|
||||||
.AddTransient(provider => new Lazy<TService>(() => implementationFactory(provider)));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -187,4 +187,15 @@ Cборка хвостовика=Сборка хвостовика 114мм (со
|
|||||||
Выброс СБТ 127 (2100м), оставляется СБТ-127 (700 м) на след скв. ЗБР, чистка емкостей, вывоз БР.=Подъем БИ с выбросом на мостки
|
Выброс СБТ 127 (2100м), оставляется СБТ-127 (700 м) на след скв. ЗБР, чистка емкостей, вывоз БР.=Подъем БИ с выбросом на мостки
|
||||||
Монтаж ПВО повторный (смена плашек ПВО). ЗБР, чистка емкостей, вывоз БР=Монтаж ПВО
|
Монтаж ПВО повторный (смена плашек ПВО). ЗБР, чистка емкостей, вывоз БР=Монтаж ПВО
|
||||||
Опрессовка ПВО (200 атм), глухие=Опрессовка ПВО
|
Опрессовка ПВО (200 атм), глухие=Опрессовка ПВО
|
||||||
Сборка ТБТ на 2 этапе (кол-во по согласованию с ЦУСС). Подъем/спуск БИ со сборкой ТБТ 102 мм. Опрессовка БИ (1.5 ч)=Сборка и спуск ТБТ
|
Сборка ТБТ на 2 этапе (кол-во по согласованию с ЦУСС). Подъем/спуск БИ со сборкой ТБТ 102 мм. Опрессовка БИ (1.5 ч)=Сборка и спуск ТБТ
|
||||||
|
Спуск пакера=Спуск пакера
|
||||||
|
Запись гамма-каратожа=Запись гамма-каратожа
|
||||||
|
Шаблонирование спуск БИ=Шаблонирование спуск БИ
|
||||||
|
Сборка клин-отклонителя=Сборка клин-отклонителя
|
||||||
|
Ориентирование и посадка клина-отклонителя=Ориентирование и посадка клина-отклонителя
|
||||||
|
Протяжка подъемного патрубка подвески=Протяжка подъемного патрубка подвески
|
||||||
|
Подъем клина-отклонителя=Подъем клина-отклонителя
|
||||||
|
Стыковка стингера с хвостовиком основного ствола=Стыковка стингера с хвостовиком основного ствола
|
||||||
|
Ориентирование и установка стыковочного узла хвостовика=Ориентирование и установка стыковочного узла хвостовика
|
||||||
|
Бурение с отбором керна=Бурение с отбором керна
|
||||||
|
Работа пакером в обсадной колонне=Работа пакером в обсадной колонне
|
Binary file not shown.
@ -25,9 +25,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Update="wwwroot\**">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="AsbCloudWebApi.service">
|
<Content Include="AsbCloudWebApi.service">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -132,17 +132,6 @@ namespace AsbCloudWebApi
|
|||||||
app.UseDeveloperExceptionPage();
|
app.UseDeveloperExceptionPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseDefaultFiles();
|
|
||||||
app.UseStaticFiles(
|
|
||||||
new StaticFileOptions
|
|
||||||
{
|
|
||||||
OnPrepareResponse = ctx =>
|
|
||||||
{
|
|
||||||
ctx.Context.Response.Headers.CacheControl = "public,max-age=2592000";
|
|
||||||
ctx.Context.Response.Headers.Expires = System.DateTime.UtcNow.AddDays(10).ToString("R", System.Globalization.CultureInfo.InvariantCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
app.UseCors("ClientPermission");
|
app.UseCors("ClientPermission");
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
<!doctype html><html lang="ru"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="white"/><meta name="theme-color" media="(prefers-color-scheme: light)" content="white"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="black"/><meta name="description" content="Онлайн мониторинг процесса бурения в реальном времени в офисе заказчика"/><title>DDrill</title><script defer="defer" src="/runtime~main.5f05be65.js"></script><script defer="defer" src="/vendors.408d069b.js"></script><script defer="defer" src="/main.c3c166db.js"></script></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
|
Loading…
Reference in New Issue
Block a user