ЛАаба 2

This commit is contained in:
Arslan 2024-11-26 02:41:30 +04:00
parent a2acfd3fb1
commit 82789985ca
19 changed files with 562 additions and 54 deletions

View File

@ -14,10 +14,10 @@ public enum MaterialsName
Wallpaper = 2, // обои
Paints = 3, // краски
Paints = 4, // краски
Furniture = 4, // мебель
Furniture = 8, // мебель
Windows = 5, // окна
Windows = 16, // окна
}

View File

@ -29,7 +29,7 @@ namespace ProjectRepairWork
{
try
{
_container.Resolve<FormCost>().ShowDialog();
_container.Resolve<FormCosts>().ShowDialog();
}
catch (Exception ex)
{

View File

@ -18,12 +18,12 @@ namespace ProjectRepairWork.Forms
{
private readonly IUnityContainer _container;
private readonly IContractorsRepository _contractorsRepository;
public FormContractors(IUnityContainer container, IContractorsRepository premisesRepository)
public FormContractors(IUnityContainer container, IContractorsRepository contractorsRepository)
{
InitializeComponent();
_container = container ?? throw new ArgumentNullException(nameof(container));
_contractorsRepository = premisesRepository ?? throw new ArgumentNullException(nameof(premisesRepository));
_contractorsRepository = contractorsRepository ?? throw new ArgumentNullException(nameof(contractorsRepository));
}
private void FormContractors_Load(object sender, EventArgs e)
@ -59,7 +59,7 @@ namespace ProjectRepairWork.Forms
}
try
{
var form = _container.Resolve<FormPremise>();
var form = _container.Resolve<FormContractor>();
form.Id = findId;
form.ShowDialog();
LoadList();

View File

@ -58,6 +58,7 @@
// numericUpDownPrice
//
numericUpDownPrice.Location = new Point(180, 97);
numericUpDownPrice.Maximum = new decimal(new int[] { 100000, 0, 0, 0 });
numericUpDownPrice.Name = "numericUpDownPrice";
numericUpDownPrice.Size = new Size(200, 27);
numericUpDownPrice.TabIndex = 14;

View File

@ -18,12 +18,12 @@ namespace ProjectRepairWork.Forms
{
try
{
var premises = _costRepository.ReadCostById(value);
if (premises == null)
var cost = _costRepository.ReadCostById(value);
if (cost == null)
{
throw new InvalidDataException(nameof(premises));
throw new InvalidDataException(nameof(cost));
}
numericUpDownPrice.Value = (decimal)premises.Price;
numericUpDownPrice.Value = (decimal)cost.Price;
_costId = value;
}
catch (Exception ex)

View File

@ -47,7 +47,7 @@ namespace ProjectRepairWork.Forms
}
try
{
var form = _container.Resolve<FormPremise>();
var form = _container.Resolve<FormCost>();
form.Id = findId;
form.ShowDialog();
LoadList();

View File

@ -25,8 +25,8 @@ namespace ProjectRepairWork.Forms
textBoxClientName.Text = premises.ClientName;
textBoxAddress.Text = premises.Address;
numericUpDownArea.Value = (decimal)premises.Area;
dateTimePickerStart.Value = DateTime.Now;
dateTimePickerEnd.Value = DateTime.Now;
dateTimePickerStart.Value = premises.DateStart;
dateTimePickerEnd.Value = premises.DateEnd;
comboBoxPremisesType.SelectedItem = premises.PremisesType;
_premisesId = value;
}
@ -81,7 +81,7 @@ namespace ProjectRepairWork.Forms
textBoxClientName.Text,
textBoxAddress.Text,
Convert.ToInt32(numericUpDownArea.Value),
dateTimePickerStart.Value, dateTimePickerStart.Value, (PremisesType)comboBoxPremisesType.SelectedItem!);
dateTimePickerStart.Value, dateTimePickerEnd.Value, (PremisesType)comboBoxPremisesType.SelectedItem!);
}

View File

@ -10,7 +10,7 @@ namespace ProjectRepairWork.Forms
{
private readonly IRepairRepository _repairRepository;
public FormRepair(IRepairRepository repairRepository, IContractorsRepository contractorsRepository, ICostRepository costRepository, IPremisesRepository premisesRepository, IWorksRepository worksRepository)
public FormRepair(IRepairRepository repairRepository, IContractorsRepository contractorsRepository, IPremisesRepository premisesRepository, IWorksRepository worksRepository)
{
InitializeComponent();
_repairRepository = repairRepository ?? throw new ArgumentNullException(nameof(repairRepository));
@ -22,11 +22,11 @@ namespace ProjectRepairWork.Forms
comboBoxContractors.ValueMember = "Id";
comboBoxPremises.DataSource = premisesRepository.ReadPremises();
comboBoxPremises.DisplayMember = "Name";
comboBoxPremises.DisplayMember = "ClientName";
comboBoxPremises.ValueMember = "Id";
ColumnWork.DataSource = worksRepository.ReadWorks();
ColumnWork.DisplayMember = "Name";
ColumnWork.DisplayMember = "WorkName";
ColumnWork.ValueMember = "Id";

View File

@ -45,7 +45,7 @@ namespace ProjectRepairWork.Forms
}
try
{
var form = _container.Resolve<FormPremise>();
var form = _container.Resolve<FormWork>();
form.Id = findId;
form.ShowDialog();
LoadList();

View File

@ -2,6 +2,10 @@ using Unity;
using ProjectRepairWork.Repositories;
using ProjectRepairWork.Repositories.Implementation;
using Unity.Lifetime;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Serilog;
using Unity.Microsoft.Logging;
namespace ProjectRepairWork
{
internal static class Program
@ -19,14 +23,31 @@ namespace ProjectRepairWork
}
private static IUnityContainer CreateContainer()
{
var container = new UnityContainer();
container.RegisterType<ICostRepository, CostRepository>(new TransientLifetimeManager());
container.RegisterType<IContractorsRepository, ContractorsRepository>(new TransientLifetimeManager());
container.RegisterType<IPremisesRepository, PremisesRepository>(new TransientLifetimeManager());
container.RegisterType<IRepairRepository, RepairRepository>(new TransientLifetimeManager());
container.RegisterType<IWorksRepository, WorksRepository>(new TransientLifetimeManager());
var container = new UnityContainer()
.AddExtension(new Diagnostic());
container.AddExtension(new LoggingExtension(CreateLoggerFactory()));
container.RegisterType<ICostRepository, CostRepository>();
container.RegisterType<IContractorsRepository, ContractorsRepository>();
container.RegisterType<IPremisesRepository, PremisesRepository>();
container.RegisterType<IRepairRepository, RepairRepository>();
container.RegisterType<IWorksRepository, WorksRepository>();
container.RegisterType<IConnectionString, ConnectionString>();
return container;
}
private static LoggerFactory CreateLoggerFactory()
{
var loggerFactory = new LoggerFactory();
loggerFactory.AddSerilog(new LoggerConfiguration()
.ReadFrom.Configuration(new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build())
.CreateLogger());
return loggerFactory;
}
}
}

View File

@ -9,7 +9,19 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Npgsql" Version="9.0.1" />
<PackageReference Include="Serilog" Version="4.1.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.4" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="Unity" Version="5.11.10" />
<PackageReference Include="Unity.Microsoft.Logging" Version="5.11.1" />
</ItemGroup>
<ItemGroup>
@ -27,4 +39,10 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectRepairWork.Repositories;
public interface IConnectionString
{
public string ConnectionString { get; }
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectRepairWork.Repositories.Implementation;
public class ConnectionString : IConnectionString
{
string IConnectionString.ConnectionString => "Host=localhost;Port=5432;Username=postgres;Password=12345;Database=OTP;";
}

View File

@ -1,4 +1,8 @@
using ProjectRepairWork.Entities;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using ProjectRepairWork.Entities;
using ProjectRepairWork.Entities.Enums;
using System;
using System.Collections.Generic;
@ -10,28 +14,115 @@ namespace ProjectRepairWork.Repositories.Implementation;
public class ContractorsRepository : IContractorsRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<ContractorsRepository> _logger;
public ContractorsRepository(IConnectionString connectionString, ILogger<ContractorsRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateContractors(Contractors contractors)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(contractors));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO Contractors (companyName, Contacts)
VALUES (@CompanyName, @Contacts)";
connection.Execute(queryInsert, contractors);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void UpdateContractors(Contractors contractors)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}",
JsonConvert.SerializeObject(contractors));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE Contractors
SET
CompanyName=@CompanyName,
Contacts=@Contacts
WHERE Id=@Id";
connection.Execute(queryUpdate, contractors);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта");
throw;
}
}
public void DeletedContractors(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM Contractors
WHERE Id=@id";
connection.Execute(queryDelete, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public IEnumerable<Contractors> ReadContractors()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Contractors";
var contractors = connection.Query<Contractors>(querySelect);
_logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(contractors));
return contractors;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public Contractors ReadContractorsById(int id)
{
return Contractors.CreatEntity(0, string.Empty, string.Empty);
}
public void UpdateContractors(Contractors contractors)
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM Contractors
WHERE Id=@id";
var contractors = connection.QueryFirst<Contractors>(querySelect, new { id });
_logger.LogDebug("Найденный объект: {json}",
JsonConvert.SerializeObject(contractors));
return contractors;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
}

View File

@ -1,4 +1,8 @@
using ProjectRepairWork.Entities;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using ProjectRepairWork.Entities;
using ProjectRepairWork.Entities.Enums;
using System;
using System.Collections.Generic;
@ -10,28 +14,115 @@ namespace ProjectRepairWork.Repositories.Implementation;
public class CostRepository : ICostRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<CostRepository> _logger;
public CostRepository(IConnectionString connectionString, ILogger<CostRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateCost(Cost cost)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(cost));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO Cost (Price)
VALUES (@Price)";
connection.Execute(queryInsert, cost);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeletedCost(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM Cost
WHERE Id=@id";
connection.Execute(queryDelete, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public IEnumerable<Cost> ReadCost()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Cost";
var cost = connection.Query<Cost>(querySelect);
_logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(cost));
return cost;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public Cost ReadCostById(int id)
{
return Cost.CreatEntity(0, 0);
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM Cost
WHERE Id=@id";
var cost = connection.QueryFirst<Cost>(querySelect, new { id });
_logger.LogDebug("Найденный объект: {json}",
JsonConvert.SerializeObject(cost));
return cost;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
public void UpdateCost(Cost cost)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}",
JsonConvert.SerializeObject(cost));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE Cost
SET
Price=@Price
WHERE Id=@Id";
connection.Execute(queryUpdate, cost);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта");
throw;
}
}
}

View File

@ -1,4 +1,8 @@
using ProjectRepairWork.Entities;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using ProjectRepairWork.Entities;
using ProjectRepairWork.Entities.Enums;
using System;
using System.Collections.Generic;
@ -9,27 +13,120 @@ using System.Threading.Tasks;
namespace ProjectRepairWork.Repositories.Implementation;
public class PremisesRepository : IPremisesRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<PremisesRepository> _logger;
public PremisesRepository(IConnectionString connectionString, ILogger<PremisesRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreatePremises(Premises premises)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(premises));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO Premises (ClientName, Address, Area, DateStart, DateEnd, PremisesType)
VALUES (@ClientName,@Address,@Area,@DateStart,@DateEnd,@PremisesType)";
connection.Execute(queryInsert, premises);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeletePremises(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM Premises
WHERE Id=@id";
connection.Execute(queryDelete, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public IEnumerable<Premises> ReadPremises()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Premises";
var premises = connection.Query<Premises>(querySelect);
_logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(premises));
return premises;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public Premises ReadPremisesById(int id)
{
return Premises.CreatEntity(0, string.Empty, string.Empty, 0, DateTime.Now, DateTime.Now, PremisesType.None);
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM Premises
WHERE Id=@id";
var premises = connection.QueryFirst<Premises>(querySelect, new { id });
_logger.LogDebug("Найденный объект: {json}",
JsonConvert.SerializeObject(premises));
return premises;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
public void UpdatePremises(Premises premises)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}",
JsonConvert.SerializeObject(premises));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE Premises
SET
ClientName = @ClientName,
Address = @Address,
Area = @Area,
DateStart = @DateStart,
DateEnd = @DateEnd,
PremisesType = @PremisesType
WHERE Id=@Id";
connection.Execute(queryUpdate, premises);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта");
throw;
}
}
}

View File

@ -1,4 +1,8 @@
using ProjectRepairWork.Entities;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using ProjectRepairWork.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
@ -9,13 +13,68 @@ namespace ProjectRepairWork.Repositories.Implementation;
public class RepairRepository : IRepairRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<RepairRepository> _logger;
public RepairRepository(IConnectionString connectionString, ILogger<RepairRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CraeteRepair(Repair repair)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}",
JsonConvert.SerializeObject(repair));
try
{
using var connection = new
NpgsqlConnection(_connectionString.ConnectionString);
connection.Open();
using var transaction = connection.BeginTransaction();
var queryInsert = @"
INSERT INTO Repair (ContractorsId, PremisesId)
VALUES (@ContractorsId, @PremisesId);
SELECT MAX(Id) FROM Repair";
var repairId =
connection.QueryFirst<int>(queryInsert, repair, transaction);
var querySubInsert = @"
INSERT INTO RepairRepair (RepairId, WorkId, Count)
VALUES (@RepairId, @WorkId, @Count)";
foreach (var elem in repair.RepairRepair)
{
connection.Execute(querySubInsert, new
{
repairId,
elem.WorkId,
elem.Count
}, transaction);
}
transaction.Commit();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public IEnumerable<Repair> ReadRepair(int? contractorsId = null, int? costId = null, int? worksId = null, int? premisesId = null)
{
return[];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Repair";
var repair = connection.Query<Repair>(querySelect);
_logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(repair));
return repair;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
}

View File

@ -1,4 +1,8 @@
using ProjectRepairWork.Entities;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using ProjectRepairWork.Entities;
using ProjectRepairWork.Entities.Enums;
using System;
using System.Collections.Generic;
@ -10,28 +14,115 @@ namespace ProjectRepairWork.Repositories.Implementation;
public class WorksRepository : IWorksRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<WorksRepository> _logger;
public WorksRepository(IConnectionString connectionString, ILogger<WorksRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateWorks(Works works)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(works));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO Works (WorkName, MaterialsName)
VALUES (@WorkName, @MaterialsName)";
connection.Execute(queryInsert, works);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeleteWorks(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM Works
WHERE Id=@id";
connection.Execute(queryDelete, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public IEnumerable<Works> ReadWorks()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Works";
var works = connection.Query<Works>(querySelect);
_logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(works));
return works;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public Works ReadWorksById(int id)
{
return Works.CreatEntity(0,string.Empty, MaterialsName.None);
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM Works
WHERE Id=@id";
var works = connection.QueryFirst<Works>(querySelect, new { id });
_logger.LogDebug("Найденный объект: {json}",
JsonConvert.SerializeObject(works));
return works;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
public void UpdateWorks(Works works)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}",
JsonConvert.SerializeObject(works));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE Works
SET
WorkName=@WorkName,
MaterialsName=@MaterialsName
WHERE Id=@Id";
connection.Execute(queryUpdate, works);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта");
throw;
}
}
}

View File

@ -0,0 +1,15 @@
{
"Serilog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs.txt",
"rollingInterval": "Day"
}
}
]
}
}