Основной коммит 2й лабы

This commit is contained in:
Роман Пермяков 2024-12-05 20:54:11 +04:00
parent d3189b9ce3
commit 287436c7ea
21 changed files with 1053 additions and 123 deletions

0
Log.txt Normal file
View File

508
Log20241205.txt Normal file
View File

@ -0,0 +1,508 @@
2024-12-05 16:59:56.918 +04:00 [INF] Получение всех объектов
2024-12-05 16:59:57.689 +04:00 [DBG] Полученные объекты: []
2024-12-05 17:00:14.147 +04:00 [INF] Добавление объекта
2024-12-05 17:00:14.203 +04:00 [DBG] Объект: {"Id":0,"AgencyId":1,"FormFactorId":2,"Area":21.0,"PricePerSM":11.0,"BasePrice":231.0,"DesiredPrice":11.0}
2024-12-05 17:00:14.270 +04:00 [INF] Получение всех объектов
2024-12-05 17:00:14.283 +04:00 [DBG] Полученные объекты: [{"Id":5,"AgencyId":0,"FormFactorId":0,"Area":21.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:00:36.942 +04:00 [INF] Получение всех объектов
2024-12-05 17:00:37.478 +04:00 [DBG] Полученные объекты: [{"Id":5,"AgencyId":0,"FormFactorId":0,"Area":21.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:01:51.571 +04:00 [INF] Добавление объекта
2024-12-05 17:01:52.123 +04:00 [DBG] Объект: {"Id":0,"AgencyId":1,"FormFactorId":0,"Area":26.0,"PricePerSM":86.0,"BasePrice":2236.0,"DesiredPrice":6500.0}
2024-12-05 17:02:44.274 +04:00 [INF] Получение всех объектов
2024-12-05 17:02:44.276 +04:00 [DBG] Полученные объекты: [{"Id":5,"AgencyId":0,"FormFactorId":0,"Area":21.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0},{"Id":6,"AgencyId":0,"FormFactorId":0,"Area":26.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:07:30.393 +04:00 [INF] Получение всех объектов
2024-12-05 17:07:30.950 +04:00 [DBG] Полученные объекты: [{"Id":5,"AgencyId":0,"FormFactorId":0,"Area":21.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0},{"Id":6,"AgencyId":0,"FormFactorId":0,"Area":26.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:07:33.920 +04:00 [INF] Удаление объекта
2024-12-05 17:07:33.921 +04:00 [DBG] Объект: 5
2024-12-05 17:07:33.956 +04:00 [INF] Получение всех объектов
2024-12-05 17:07:33.957 +04:00 [DBG] Полученные объекты: [{"Id":6,"AgencyId":0,"FormFactorId":0,"Area":26.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:07:35.443 +04:00 [INF] Удаление объекта
2024-12-05 17:07:35.443 +04:00 [DBG] Объект: 6
2024-12-05 17:07:35.447 +04:00 [INF] Получение всех объектов
2024-12-05 17:07:35.449 +04:00 [DBG] Полученные объекты: []
2024-12-05 17:17:20.736 +04:00 [INF] Получение всех объектов
2024-12-05 17:17:21.264 +04:00 [DBG] Полученные объекты: []
2024-12-05 17:17:25.463 +04:00 [INF] Добавление объекта
2024-12-05 17:17:25.491 +04:00 [DBG] Объект: {"Id":0,"AgencyId":0,"FormFactorId":0,"Area":1.0,"PricePerSM":1.0,"BasePrice":1.0,"DesiredPrice":1.0}
2024-12-05 17:17:25.552 +04:00 [INF] Получение всех объектов
2024-12-05 17:17:25.560 +04:00 [DBG] Полученные объекты: [{"Id":7,"AgencyId":0,"FormFactorId":0,"Area":1.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:17:28.195 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 17:17:28.196 +04:00 [DBG] Объект: 7
2024-12-05 17:17:28.206 +04:00 [DBG] Найден объект: {"Id":7,"AgencyId":0,"FormFactorId":0,"Area":1.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}
2024-12-05 17:17:31.306 +04:00 [INF] Получение всех объектов
2024-12-05 17:17:31.307 +04:00 [DBG] Полученные объекты: [{"Id":7,"AgencyId":0,"FormFactorId":0,"Area":1.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:17:33.992 +04:00 [INF] Удаление объекта
2024-12-05 17:17:33.992 +04:00 [DBG] Объект: 7
2024-12-05 17:17:33.995 +04:00 [INF] Получение всех объектов
2024-12-05 17:17:33.995 +04:00 [DBG] Полученные объекты: []
2024-12-05 17:22:17.160 +04:00 [INF] Получение всех объектов
2024-12-05 17:22:17.654 +04:00 [DBG] Полученные объекты: []
2024-12-05 17:22:21.568 +04:00 [INF] Добавление объекта
2024-12-05 17:22:21.596 +04:00 [DBG] Объект: {"Id":0,"AgencyId":0,"FormFactorId":2,"Area":1.0,"PricePerSM":1.0,"BasePrice":1.0,"DesiredPrice":1.0}
2024-12-05 17:22:21.648 +04:00 [INF] Получение всех объектов
2024-12-05 17:22:21.654 +04:00 [DBG] Полученные объекты: [{"Id":8,"AgencyId":0,"FormFactorId":0,"Area":10.0,"PricePerSM":0.0,"BasePrice":0.0,"DesiredPrice":0.0}]
2024-12-05 17:29:48.090 +04:00 [INF] Получение всех объектов
2024-12-05 17:29:49.070 +04:00 [DBG] Полученные объекты: [{"Id":8,"Agency_ID":1,"Form_factor_ID":0,"Area":10.0,"Price_per_SM":10.0,"Base_price":20.0,"Desired_price":100.0}]
2024-12-05 17:32:27.333 +04:00 [INF] Получение всех объектов
2024-12-05 17:32:27.824 +04:00 [DBG] Полученные объекты: [{"Id":8,"Agency_ID":1,"Form_factor_ID":0,"Area":10.0,"Price_per_SM":10.0,"Base_price":20.0,"Desired_price":100.0}]
2024-12-05 17:32:38.785 +04:00 [INF] Добавление объекта
2024-12-05 17:32:38.785 +04:00 [DBG] Объект: {"Id":0,"Agency_ID":0,"Form_factor_ID":5,"Area":6.0,"Price_per_SM":11.0,"Base_price":66.0,"Desired_price":16.0}
2024-12-05 17:32:38.860 +04:00 [INF] Получение всех объектов
2024-12-05 17:32:38.861 +04:00 [DBG] Полученные объекты: [{"Id":8,"Agency_ID":1,"Form_factor_ID":0,"Area":10.0,"Price_per_SM":10.0,"Base_price":20.0,"Desired_price":100.0},{"Id":9,"Agency_ID":0,"Form_factor_ID":5,"Area":6.0,"Price_per_SM":11.0,"Base_price":66.0,"Desired_price":16.0}]
2024-12-05 17:32:43.587 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 17:32:43.587 +04:00 [DBG] Объект: 9
2024-12-05 17:32:43.597 +04:00 [DBG] Найден объект: {"Id":9,"Agency_ID":0,"Form_factor_ID":5,"Area":6.0,"Price_per_SM":11.0,"Base_price":66.0,"Desired_price":16.0}
2024-12-05 17:32:45.444 +04:00 [INF] Получение всех объектов
2024-12-05 17:32:45.446 +04:00 [DBG] Полученные объекты: [{"Id":8,"Agency_ID":1,"Form_factor_ID":0,"Area":10.0,"Price_per_SM":10.0,"Base_price":20.0,"Desired_price":100.0},{"Id":9,"Agency_ID":0,"Form_factor_ID":5,"Area":6.0,"Price_per_SM":11.0,"Base_price":66.0,"Desired_price":16.0}]
2024-12-05 17:32:48.494 +04:00 [INF] Удаление объекта
2024-12-05 17:32:48.495 +04:00 [DBG] Объект: 8
2024-12-05 17:32:48.508 +04:00 [INF] Получение всех объектов
2024-12-05 17:32:48.509 +04:00 [DBG] Полученные объекты: [{"Id":9,"Agency_ID":0,"Form_factor_ID":5,"Area":6.0,"Price_per_SM":11.0,"Base_price":66.0,"Desired_price":16.0}]
2024-12-05 17:32:49.942 +04:00 [INF] Удаление объекта
2024-12-05 17:32:49.942 +04:00 [DBG] Объект: 9
2024-12-05 17:32:49.944 +04:00 [INF] Получение всех объектов
2024-12-05 17:32:49.946 +04:00 [DBG] Полученные объекты: []
2024-12-05 19:43:56.621 +04:00 [INF] Получение всех объектов
2024-12-05 19:43:57.328 +04:00 [DBG] Полученные объекты: []
2024-12-05 19:44:15.217 +04:00 [INF] Добавление объекта
2024-12-05 19:44:15.264 +04:00 [DBG] Объект: {"Id":0,"Full_name":"GBkfdfkfsdkgdf jdfgk","Passport_series":1117,"Passport_number":526638}
2024-12-05 19:44:15.333 +04:00 [INF] Получение всех объектов
2024-12-05 19:44:15.341 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"GBkfdfkfsdkgdf jdfgk","Passport_series":1117,"Passport_number":526638}]
2024-12-05 19:44:19.531 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 19:44:19.531 +04:00 [DBG] Объект: 0
2024-12-05 19:44:19.539 +04:00 [DBG] Найден объект: {"Id":0,"Full_name":"GBkfdfkfsdkgdf jdfgk","Passport_series":1117,"Passport_number":526638}
2024-12-05 19:44:21.942 +04:00 [INF] Получение всех объектов
2024-12-05 19:44:21.944 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"GBkfdfkfsdkgdf jdfgk","Passport_series":1117,"Passport_number":526638}]
2024-12-05 19:44:22.648 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 19:44:22.648 +04:00 [DBG] Объект: 0
2024-12-05 19:44:22.649 +04:00 [DBG] Найден объект: {"Id":0,"Full_name":"GBkfdfkfsdkgdf jdfgk","Passport_series":1117,"Passport_number":526638}
2024-12-05 19:44:23.892 +04:00 [INF] Получение всех объектов
2024-12-05 19:44:23.893 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"GBkfdfkfsdkgdf jdfgk","Passport_series":1117,"Passport_number":526638}]
2024-12-05 19:44:25.843 +04:00 [INF] Удаление объекта
2024-12-05 19:44:25.843 +04:00 [DBG] Объект: 0
2024-12-05 19:44:25.855 +04:00 [INF] Получение всех объектов
2024-12-05 19:44:25.856 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:00:11.058 +04:00 [INF] Получение всех объектов
2024-12-05 20:00:11.605 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:00:21.200 +04:00 [INF] Добавление объекта
2024-12-05 20:00:21.232 +04:00 [DBG] Объект: {"Id":0,"Name":"fghkdf","Price":220.0}
2024-12-05 20:00:21.290 +04:00 [INF] Получение всех объектов
2024-12-05 20:00:21.303 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:00:23.491 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:00:23.492 +04:00 [DBG] Объект: 1
2024-12-05 20:00:23.501 +04:00 [DBG] Найден объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:00:26.744 +04:00 [INF] Редактирование объекта
2024-12-05 20:00:26.744 +04:00 [DBG] Объект: {"Id":1,"Name":"sdfwdf","Price":220.0}
2024-12-05 20:00:26.863 +04:00 [DBG] Ошибка при редактировании объекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Price")
POSITION: 48
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ServicesRepository.UpdateService(Services service) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ServicesRepository.cs:line 112
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Price")
Position: 48
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:00:34.050 +04:00 [INF] Редактирование объекта
2024-12-05 20:00:34.050 +04:00 [DBG] Объект: {"Id":1,"Name":"sdfwdf","Price":220.0}
2024-12-05 20:00:34.117 +04:00 [DBG] Ошибка при редактировании объекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Price")
POSITION: 48
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ServicesRepository.UpdateService(Services service) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ServicesRepository.cs:line 112
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Price")
Position: 48
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:00:39.490 +04:00 [INF] Получение всех объектов
2024-12-05 20:00:39.491 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:01:49.928 +04:00 [INF] Получение всех объектов
2024-12-05 20:01:50.482 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:01:51.790 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:01:51.791 +04:00 [DBG] Объект: 1
2024-12-05 20:01:51.822 +04:00 [DBG] Найден объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:01:57.288 +04:00 [INF] Редактирование объекта
2024-12-05 20:01:57.288 +04:00 [DBG] Объект: {"Id":1,"Name":"Hort","Price":220.0}
2024-12-05 20:01:57.365 +04:00 [DBG] Ошибка при редактировании объекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Price")
POSITION: 44
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ServicesRepository.UpdateService(Services service) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ServicesRepository.cs:line 112
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Price")
Position: 44
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:02:02.731 +04:00 [INF] Получение всех объектов
2024-12-05 20:02:02.732 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:02:29.837 +04:00 [INF] Получение всех объектов
2024-12-05 20:02:30.429 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:02:31.521 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:02:31.522 +04:00 [DBG] Объект: 1
2024-12-05 20:02:31.547 +04:00 [DBG] Найден объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:02:32.781 +04:00 [INF] Редактирование объекта
2024-12-05 20:02:32.781 +04:00 [DBG] Объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:02:32.873 +04:00 [DBG] Ошибка при редактировании объекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Price")
POSITION: 44
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ServicesRepository.UpdateService(Services service) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ServicesRepository.cs:line 112
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Price")
Position: 44
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:02:46.517 +04:00 [INF] Получение всех объектов
2024-12-05 20:02:46.518 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:02:57.926 +04:00 [INF] Добавление объекта
2024-12-05 20:02:57.926 +04:00 [DBG] Объект: {"Id":0,"Name":"first","Price":520.0}
2024-12-05 20:02:57.938 +04:00 [INF] Получение всех объектов
2024-12-05 20:02:57.939 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0},{"Id":2,"Name":"first","Price":520.0}]
2024-12-05 20:03:00.997 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:03:00.997 +04:00 [DBG] Объект: 2
2024-12-05 20:03:00.999 +04:00 [DBG] Найден объект: {"Id":2,"Name":"first","Price":520.0}
2024-12-05 20:03:05.265 +04:00 [INF] Редактирование объекта
2024-12-05 20:03:05.265 +04:00 [DBG] Объект: {"Id":2,"Name":"sec","Price":520.0}
2024-12-05 20:03:05.340 +04:00 [DBG] Ошибка при редактировании объекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Price")
POSITION: 44
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ServicesRepository.UpdateService(Services service) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ServicesRepository.cs:line 112
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Price")
Position: 44
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:03:30.505 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:30.506 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0},{"Id":2,"Name":"first","Price":520.0}]
2024-12-05 20:03:33.953 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:33.955 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:03:38.627 +04:00 [INF] Добавление объекта
2024-12-05 20:03:38.629 +04:00 [DBG] Объект: {"Id":0,"Full_name":"sdghkdnkff","Passport_series":1111,"Passport_number":111111}
2024-12-05 20:03:38.642 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:38.644 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"sdghkdnkff","Passport_series":1111,"Passport_number":111111}]
2024-12-05 20:03:40.297 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:03:40.298 +04:00 [DBG] Объект: 0
2024-12-05 20:03:40.299 +04:00 [DBG] Найден объект: {"Id":0,"Full_name":"sdghkdnkff","Passport_series":1111,"Passport_number":111111}
2024-12-05 20:03:42.867 +04:00 [INF] Редактирование объекта
2024-12-05 20:03:42.868 +04:00 [DBG] Объект: {"Id":0,"Full_name":"sdnfjwe","Passport_series":1111,"Passport_number":111111}
2024-12-05 20:03:42.922 +04:00 [DBG] Ошибка при редактировании объекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Passport_series")
POSITION: 46
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.BuyerRepository.UpdateBuyer(Buyer buyer) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\BuyerRepository.cs:line 113
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Passport_series")
Position: 46
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:03:48.372 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:48.373 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"sdghkdnkff","Passport_series":1111,"Passport_number":111111}]
2024-12-05 20:03:50.289 +04:00 [INF] Удаление объекта
2024-12-05 20:03:50.289 +04:00 [DBG] Объект: 0
2024-12-05 20:03:50.292 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:50.292 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:03:54.390 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:54.396 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:03:59.278 +04:00 [INF] Добавление объекта
2024-12-05 20:03:59.280 +04:00 [DBG] Объект: {"Id":0,"Agency_ID":0,"Form_factor_ID":1,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}
2024-12-05 20:03:59.296 +04:00 [INF] Получение всех объектов
2024-12-05 20:03:59.299 +04:00 [DBG] Полученные объекты: [{"Id":10,"Agency_ID":0,"Form_factor_ID":1,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:04:00.490 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:04:00.491 +04:00 [DBG] Объект: 10
2024-12-05 20:04:00.492 +04:00 [DBG] Найден объект: {"Id":10,"Agency_ID":0,"Form_factor_ID":1,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}
2024-12-05 20:04:03.245 +04:00 [INF] Редактирование объекта
2024-12-05 20:04:03.246 +04:00 [DBG] Объект: {"Id":10,"Agency_ID":0,"Form_factor_ID":1,"Area":1.0,"Price_per_SM":16.0,"Base_price":16.0,"Desired_price":1.0}
2024-12-05 20:04:03.308 +04:00 [ERR] Ошибка при редактировании оьъекта
Npgsql.PostgresException (0x80004005): 42601: ошибка синтаксиса (примерное положение: "Form_Factor_ID")
POSITION: 56
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ApartmentRepository.UpdateApartment(Apartment apartment) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ApartmentRepository.cs:line 56
Exception data:
Severity: ОШИБКА
SqlState: 42601
MessageText: ошибка синтаксиса (примерное положение: "Form_Factor_ID")
Position: 56
File: scan.l
Line: 1246
Routine: scanner_yyerror
2024-12-05 20:04:06.539 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:06.540 +04:00 [DBG] Полученные объекты: [{"Id":10,"Agency_ID":0,"Form_factor_ID":1,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:04:08.058 +04:00 [INF] Удаление объекта
2024-12-05 20:04:08.058 +04:00 [DBG] Объект: 10
2024-12-05 20:04:08.062 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:08.062 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:04:28.344 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:28.835 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0},{"Id":2,"Name":"first","Price":520.0}]
2024-12-05 20:04:29.887 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:04:29.887 +04:00 [DBG] Объект: 1
2024-12-05 20:04:29.913 +04:00 [DBG] Найден объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:04:30.882 +04:00 [INF] Редактирование объекта
2024-12-05 20:04:30.882 +04:00 [DBG] Объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:04:30.922 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:30.923 +04:00 [DBG] Полученные объекты: [{"Id":2,"Name":"first","Price":520.0},{"Id":1,"Name":"fghkdf","Price":220.0}]
2024-12-05 20:04:34.753 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:04:34.753 +04:00 [DBG] Объект: 2
2024-12-05 20:04:34.754 +04:00 [DBG] Найден объект: {"Id":2,"Name":"first","Price":520.0}
2024-12-05 20:04:37.974 +04:00 [INF] Редактирование объекта
2024-12-05 20:04:37.974 +04:00 [DBG] Объект: {"Id":2,"Name":"fkbnkdfk","Price":520.0}
2024-12-05 20:04:37.986 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:37.987 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"fghkdf","Price":220.0},{"Id":2,"Name":"fkbnkdfk","Price":520.0}]
2024-12-05 20:04:42.719 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:04:42.719 +04:00 [DBG] Объект: 1
2024-12-05 20:04:42.721 +04:00 [DBG] Найден объект: {"Id":1,"Name":"fghkdf","Price":220.0}
2024-12-05 20:04:50.117 +04:00 [INF] Редактирование объекта
2024-12-05 20:04:50.117 +04:00 [DBG] Объект: {"Id":1,"Name":"first","Price":220.0}
2024-12-05 20:04:50.124 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:50.125 +04:00 [DBG] Полученные объекты: [{"Id":2,"Name":"fkbnkdfk","Price":520.0},{"Id":1,"Name":"first","Price":220.0}]
2024-12-05 20:04:54.649 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:04:54.649 +04:00 [DBG] Объект: 2
2024-12-05 20:04:54.651 +04:00 [DBG] Найден объект: {"Id":2,"Name":"fkbnkdfk","Price":520.0}
2024-12-05 20:04:59.205 +04:00 [INF] Редактирование объекта
2024-12-05 20:04:59.205 +04:00 [DBG] Объект: {"Id":2,"Name":"second","Price":520.0}
2024-12-05 20:04:59.212 +04:00 [INF] Получение всех объектов
2024-12-05 20:04:59.213 +04:00 [DBG] Полученные объекты: [{"Id":1,"Name":"first","Price":220.0},{"Id":2,"Name":"second","Price":520.0}]
2024-12-05 20:05:02.797 +04:00 [INF] Удаление объекта
2024-12-05 20:05:02.797 +04:00 [DBG] Объект: 1
2024-12-05 20:05:02.803 +04:00 [INF] Получение всех объектов
2024-12-05 20:05:02.804 +04:00 [DBG] Полученные объекты: [{"Id":2,"Name":"second","Price":520.0}]
2024-12-05 20:05:03.469 +04:00 [INF] Удаление объекта
2024-12-05 20:05:03.470 +04:00 [DBG] Объект: 2
2024-12-05 20:05:03.473 +04:00 [INF] Получение всех объектов
2024-12-05 20:05:03.474 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:05:38.424 +04:00 [INF] Получение всех объектов
2024-12-05 20:05:38.861 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:05:42.852 +04:00 [INF] Добавление объекта
2024-12-05 20:05:42.888 +04:00 [DBG] Объект: {"Id":0,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}
2024-12-05 20:05:42.946 +04:00 [INF] Получение всех объектов
2024-12-05 20:05:42.955 +04:00 [DBG] Полученные объекты: [{"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:05:44.252 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:05:44.253 +04:00 [DBG] Объект: 11
2024-12-05 20:05:44.261 +04:00 [DBG] Найден объект: {"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}
2024-12-05 20:05:49.571 +04:00 [INF] Редактирование объекта
2024-12-05 20:05:49.571 +04:00 [DBG] Объект: {"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":16.0,"Price_per_SM":16.0,"Base_price":256.0,"Desired_price":31.0}
2024-12-05 20:05:49.643 +04:00 [ERR] Ошибка при редактировании оьъекта
Npgsql.PostgresException (0x80004005): 42703: столбец "agenceid" не существует
POSITION: 42
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ApartmentRepository.UpdateApartment(Apartment apartment) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ApartmentRepository.cs:line 56
Exception data:
Severity: ОШИБКА
SqlState: 42703
MessageText: столбец "agenceid" не существует
Hint: Возможно, предполагалась ссылка на столбец "apartment.agency_id".
Position: 42
File: parse_relation.c
Line: 3738
Routine: errorMissingColumn
2024-12-05 20:05:59.358 +04:00 [INF] Получение всех объектов
2024-12-05 20:05:59.359 +04:00 [DBG] Полученные объекты: [{"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:06:58.734 +04:00 [INF] Получение всех объектов
2024-12-05 20:06:59.332 +04:00 [DBG] Полученные объекты: [{"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:07:00.769 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:07:00.769 +04:00 [DBG] Объект: 11
2024-12-05 20:07:00.800 +04:00 [DBG] Найден объект: {"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}
2024-12-05 20:07:06.589 +04:00 [INF] Редактирование объекта
2024-12-05 20:07:06.589 +04:00 [DBG] Объект: {"Id":11,"Agency_ID":0,"Form_factor_ID":3,"Area":16.0,"Price_per_SM":16.0,"Base_price":256.0,"Desired_price":1.0}
2024-12-05 20:07:06.674 +04:00 [ERR] Ошибка при редактировании оьъекта
Npgsql.PostgresException (0x80004005): 42703: столбец "agencyid" в таблице "apartment" не существует
POSITION: 30
at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(Boolean async, CommandBehavior behavior, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2965
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 656
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 527
at RealEstateTransactions.Repositories.Implementations.ApartmentRepository.UpdateApartment(Apartment apartment) in C:\my\курс 2 сим 1\ОТП\Lab\RealEstateTransactions\RealEstateTransactions\Repositories\Implementations\ApartmentRepository.cs:line 56
Exception data:
Severity: ОШИБКА
SqlState: 42703
MessageText: столбец "agencyid" в таблице "apartment" не существует
Position: 30
File: analyze.c
Line: 2532
Routine: transformUpdateTargetList
2024-12-05 20:07:16.900 +04:00 [INF] Получение всех объектов
2024-12-05 20:07:16.901 +04:00 [DBG] Полученные объекты: [{"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:07:44.755 +04:00 [INF] Получение всех объектов
2024-12-05 20:07:45.283 +04:00 [DBG] Полученные объекты: [{"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}]
2024-12-05 20:07:46.999 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:07:46.999 +04:00 [DBG] Объект: 11
2024-12-05 20:07:47.028 +04:00 [DBG] Найден объект: {"Id":11,"Agency_ID":0,"Form_factor_ID":2,"Area":1.0,"Price_per_SM":1.0,"Base_price":1.0,"Desired_price":1.0}
2024-12-05 20:07:57.018 +04:00 [INF] Редактирование объекта
2024-12-05 20:07:57.018 +04:00 [DBG] Объект: {"Id":11,"Agency_ID":1,"Form_factor_ID":6,"Area":16.0,"Price_per_SM":16.0,"Base_price":256.0,"Desired_price":1.0}
2024-12-05 20:07:57.050 +04:00 [INF] Получение всех объектов
2024-12-05 20:07:57.052 +04:00 [DBG] Полученные объекты: [{"Id":11,"Agency_ID":1,"Form_factor_ID":6,"Area":16.0,"Price_per_SM":16.0,"Base_price":256.0,"Desired_price":1.0}]
2024-12-05 20:08:01.777 +04:00 [INF] Удаление объекта
2024-12-05 20:08:01.777 +04:00 [DBG] Объект: 11
2024-12-05 20:08:01.781 +04:00 [INF] Получение всех объектов
2024-12-05 20:08:01.782 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:08:05.937 +04:00 [INF] Получение всех объектов
2024-12-05 20:08:05.940 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:08:26.632 +04:00 [INF] Добавление объекта
2024-12-05 20:08:26.637 +04:00 [DBG] Объект: {"Id":0,"Full_name":"Gthsdlff sarff gosd ","Passport_series":9999,"Passport_number":335588}
2024-12-05 20:08:26.649 +04:00 [INF] Получение всех объектов
2024-12-05 20:08:26.653 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"Gthsdlff sarff gosd ","Passport_series":9999,"Passport_number":335588}]
2024-12-05 20:08:29.152 +04:00 [INF] Получение объекта по идентификатору
2024-12-05 20:08:29.153 +04:00 [DBG] Объект: 0
2024-12-05 20:08:29.154 +04:00 [DBG] Найден объект: {"Id":0,"Full_name":"Gthsdlff sarff gosd ","Passport_series":9999,"Passport_number":335588}
2024-12-05 20:08:35.113 +04:00 [INF] Редактирование объекта
2024-12-05 20:08:35.113 +04:00 [DBG] Объект: {"Id":0,"Full_name":"FF rtih eo ","Passport_series":9999,"Passport_number":335588}
2024-12-05 20:08:35.122 +04:00 [INF] Получение всех объектов
2024-12-05 20:08:35.123 +04:00 [DBG] Полученные объекты: [{"Id":0,"Full_name":"FF rtih eo ","Passport_series":9999,"Passport_number":335588}]
2024-12-05 20:08:38.123 +04:00 [INF] Удаление объекта
2024-12-05 20:08:38.123 +04:00 [DBG] Объект: 0
2024-12-05 20:08:38.125 +04:00 [INF] Получение всех объектов
2024-12-05 20:08:38.126 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:15:09.105 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:09.572 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:15:11.124 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:11.134 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:15:14.963 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:14.964 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:15:17.707 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:17.708 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:15:42.786 +04:00 [INF] Добавление объекта
2024-12-05 20:15:42.802 +04:00 [DBG] Объект: {"Id":0,"Agency_ID":1,"Form_factor_ID":1,"Area":16.0,"Price_per_SM":5000.0,"Base_price":80000.0,"Desired_price":100000.0}
2024-12-05 20:15:42.837 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:42.848 +04:00 [DBG] Полученные объекты: [{"Id":12,"Agency_ID":1,"Form_factor_ID":1,"Area":16.0,"Price_per_SM":5000.0,"Base_price":80000.0,"Desired_price":100000.0}]
2024-12-05 20:15:46.776 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:46.777 +04:00 [DBG] Полученные объекты: []
2024-12-05 20:15:48.409 +04:00 [INF] Получение всех объектов
2024-12-05 20:15:48.410 +04:00 [DBG] Полученные объекты: [{"Id":12,"Agency_ID":1,"Form_factor_ID":1,"Area":16.0,"Price_per_SM":5000.0,"Base_price":80000.0,"Desired_price":100000.0}]
2024-12-05 20:16:05.117 +04:00 [INF] Добавление объекта
2024-12-05 20:16:05.122 +04:00 [DBG] Объект: {"Id":0,"Apartment_ID":12,"Name":"XXXXx","Cost":54545.0}
2024-12-05 20:16:05.136 +04:00 [INF] Получение всех объектов
2024-12-05 20:16:05.139 +04:00 [DBG] Полученные объекты: [{"Id":1,"Apartment_ID":12,"Name":"XXXXx","Cost":54545.0}]
2024-12-05 20:16:08.613 +04:00 [INF] Получение всех объектов
2024-12-05 20:16:08.614 +04:00 [DBG] Полученные объекты: [{"Id":12,"Agency_ID":1,"Form_factor_ID":1,"Area":16.0,"Price_per_SM":5000.0,"Base_price":80000.0,"Desired_price":100000.0}]
2024-12-05 20:16:15.877 +04:00 [INF] Добавление объекта
2024-12-05 20:16:15.877 +04:00 [DBG] Объект: {"Id":0,"Apartment_ID":12,"Name":"fgnj","Cost":1000000.0}
2024-12-05 20:16:15.892 +04:00 [INF] Получение всех объектов
2024-12-05 20:16:15.893 +04:00 [DBG] Полученные объекты: [{"Id":1,"Apartment_ID":12,"Name":"XXXXx","Cost":54545.0},{"Id":2,"Apartment_ID":12,"Name":"fgnj","Cost":1000000.0}]
2024-12-05 20:16:19.405 +04:00 [INF] Удаление объекта
2024-12-05 20:16:19.405 +04:00 [DBG] Объект: 1
2024-12-05 20:16:19.409 +04:00 [INF] Получение всех объектов
2024-12-05 20:16:19.410 +04:00 [DBG] Полученные объекты: [{"Id":2,"Apartment_ID":12,"Name":"fgnj","Cost":1000000.0}]

View File

@ -6,17 +6,17 @@ namespace RealEstateTransactions.Entities
{
public int Id { get; private set; }
public AgencyType AgencyId { get; private set; }
public AgencyType Agency_ID { get; private set; }
public FormFactorType FormFactorId { get; private set; }
public FormFactorType Form_factor_ID { get; private set; }
public float Area { get; private set; }
public float PricePerSM { get; private set; }
public float Price_per_SM { get; private set; }
public float BasePrice { get; private set; }
public float Base_price { get; private set; }
public float DesiredPrice { get; private set; }
public float Desired_price { get; private set; }
public static Apartment CreateApartment(int id, AgencyType agencyId, FormFactorType formFactorId, float area,
float pricePerSM, float basePrice, float desiredPrice)
@ -24,12 +24,12 @@ namespace RealEstateTransactions.Entities
return new Apartment
{
Id = id,
AgencyId = agencyId,
FormFactorId = formFactorId,
Agency_ID = agencyId,
Form_factor_ID = formFactorId,
Area = area,
PricePerSM = pricePerSM,
BasePrice = basePrice,
DesiredPrice = desiredPrice
Price_per_SM = pricePerSM,
Base_price = basePrice,
Desired_price = desiredPrice
};
}
}

View File

@ -4,20 +4,20 @@
{
public int Id { get; private set; }
public string FullName { get; private set; } = string.Empty;
public string Full_name { get; private set; } = string.Empty;
public int PassportSeries { get; private set; }
public int Passport_series { get; private set; }
public int PassportNumber { get; private set; }
public int Passport_number { get; private set; }
public static Buyer CreateBuyer(int id, string fullName, int passportSeries, int passportNumber)
{
return new Buyer
{
Id = id,
FullName = fullName,
PassportSeries = passportSeries,
PassportNumber = passportNumber
Full_name = fullName,
Passport_series = passportSeries,
Passport_number = passportNumber
};
}
}

View File

@ -4,13 +4,13 @@
{
public int Id { get; private set; }
public int ApartmentId { get; private set; }
public int Apartment_ID { get; private set; }
public int BuyerId { get; private set; }
public int Buyer_ID { get; private set; }
public float DealPrice { get; private set; }
public float Deal_price { get; private set; }
public DateTime DealDate { get; private set; }
public DateTime Deal_date { get; private set; }
public IEnumerable<ServicesDeal> DealServices { get; private set; } = [];
@ -20,10 +20,10 @@
return new Deal
{
Id = id,
ApartmentId = apartmentId,
BuyerId = buyerId,
DealPrice = dealPrice,
DealDate = dealDate,
Apartment_ID = apartmentId,
Buyer_ID = buyerId,
Deal_price = dealPrice,
Deal_date = dealDate,
DealServices = dealServices
};
}

View File

@ -4,7 +4,7 @@
{
public int Id { get; private set; }
public int ApartmentId { get; private set; }
public int Apartment_ID { get; private set; }
public string Name { get; private set; } = string.Empty;
@ -15,7 +15,7 @@
return new PreSalesServices
{
Id = id,
ApartmentId = apartmentId,
Apartment_ID = apartmentId,
Name = name,
Cost = cost
};

View File

@ -2,19 +2,19 @@
{
public class ServicesDeal
{
public int ServicesId { get; private set; }
public int Services_ID { get; private set; }
public int DealId { get; private set; }
public int Deal_ID { get; private set; }
public float ExecutionTime { get; private set; }
public float Execution_time { get; private set; }
public static ServicesDeal CreateServicesDeal(int servicesId, int dealId, float executionTime)
{
return new ServicesDeal
{
ServicesId = servicesId,
DealId = dealId,
ExecutionTime = executionTime
Services_ID = servicesId,
Deal_ID = dealId,
Execution_time = executionTime
};
}
}

View File

@ -22,15 +22,15 @@ namespace RealEstateTransactions.Forms
foreach (FormFactorType elem in Enum.GetValues(typeof(FormFactorType)))
{
if ((elem & apartment.FormFactorId) != 0)
if ((elem & apartment.Form_factor_ID) != 0)
checkedListBoxFormFactor.SetItemChecked(checkedListBoxFormFactor.Items.IndexOf(elem), true);
}
comboBoxAgency.SelectedIndex = (int)apartment.AgencyId;
comboBoxAgency.SelectedIndex = (int)apartment.Agency_ID;
numericUpDownArea.Value = (decimal)apartment.Area;
numericUpDownPricePerSM.Value = (decimal)apartment.PricePerSM;
numericUpDownBasePrice.Value = (decimal)apartment.BasePrice;
numericUpDownDesiredPrice.Value = (decimal)apartment.DesiredPrice;
numericUpDownPricePerSM.Value = (decimal)apartment.Price_per_SM;
numericUpDownBasePrice.Value = (decimal)apartment.Base_price;
numericUpDownDesiredPrice.Value = (decimal)apartment.Desired_price;
_apartmentId = value;
}

View File

@ -19,9 +19,9 @@ namespace RealEstateTransactions.Forms
if (buyer == null) throw new InvalidDataException(nameof(buyer));
textBoxFullName.Text = buyer.FullName;
numericUpDownPassportSeries.Value = buyer.PassportSeries;
numericUpDownPassportNumber.Value = buyer.PassportNumber;
textBoxFullName.Text = buyer.Full_name;
numericUpDownPassportSeries.Value = buyer.Passport_series;
numericUpDownPassportNumber.Value = buyer.Passport_number;
_buyerId = value;
}

View File

@ -1,6 +1,10 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using RealEstateTransactions.Repositories;
using RealEstateTransactions.Repositories.Implementations;
using Serilog;
using Unity;
using Unity.Microsoft.Logging;
namespace RealEstateTransactions
{
@ -28,8 +32,24 @@ namespace RealEstateTransactions
container.RegisterType<IPreSalesServicesRepository, PreSalesServicesRepository>();
container.RegisterType<IServicesDealRepository, ServicesDealRepository>();
container.RegisterType<IServicesRepository, ServicesRepository>();
container.RegisterType<IConnectionString, ConnectionString>();
container.AddExtension(new LoggingExtension(CreateLoggerFactory()));
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,18 @@
</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="Unity" Version="5.11.10" />
<PackageReference Include="Unity.Microsoft.Logging" Version="5.11.1" />
</ItemGroup>
<ItemGroup>
@ -27,4 +38,10 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1,7 @@
namespace RealEstateTransactions.Repositories
{
public interface IConnectionString
{
string ConnectionString { get; }
}
}

View File

@ -4,14 +4,11 @@ namespace RealEstateTransactions.Repositories
{
public interface IDealRepository
{
IEnumerable<Deal> ReadDeals();
Deal ReadDeal(int id);
IEnumerable<Deal> ReadDeals(DateTime? dateForm = null, DateTime? dateTo = null,
int? servicesID = null, int? dealID = null);
void CreateDeal(Deal deal);
void UpdateDeal(Deal deal);
void DeleteDeal(int id);
}
}

View File

@ -1,38 +1,125 @@
using RealEstateTransactions.Entities;
using RealEstateTransactions.Entities.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using RealEstateTransactions.Entities;
using Npgsql;
namespace RealEstateTransactions.Repositories.Implementations
{
public class ApartmentRepository : IApartmentRepository
{
public Apartment ReadApartment(int id)
{
return Apartment.CreateApartment(0, AgencyType.None, FormFactorType.None, 0, 0, 0, 0);
}
private readonly IConnectionString _connectionString;
public IEnumerable<Apartment> ReadApartments()
private readonly ILogger<ApartmentRepository> _logger;
public ApartmentRepository(IConnectionString connectionString, ILogger<ApartmentRepository> logger)
{
return [];
_connectionString = connectionString;
_logger = logger;
}
public void CreateApartment(Apartment apartment)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(apartment));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var insertQuery = @"
INSERT INTO Apartment (Agency_ID, Form_factor_ID, Area, Price_per_SM, Base_price, Desired_price)
VALUES (@Agency_ID, @Form_factor_ID, @Area, @Price_per_SM, @Base_price, @Desired_price)";
connection.Execute(insertQuery, apartment);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void UpdateApartment(Apartment apartment)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(apartment));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var updateQuery = @"
UPDATE Apartment
SET
Agency_ID = @Agency_ID,
Form_Factor_ID = @Form_factor_ID,
Area = @Area,
Price_per_SM = @Price_per_SM,
Base_price = @Base_price,
Desired_price = @Desired_price
WHERE Id = @Id";
connection.Execute(updateQuery, apartment);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании оьъекта");
throw;
}
}
public Apartment ReadApartment(int id)
{
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = @"
SELECT *
FROM Apartment
WHERE ID = @id";
var apartment = connection.QueryFirst<Apartment>(selectQuery, new { id });
_logger.LogDebug("Найден объект: {json}", JsonConvert.SerializeObject(apartment));
return apartment;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
public IEnumerable<Apartment> ReadApartments()
{
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = @"SELECT * FROM Apartment";
var apartments = connection.Query<Apartment>(selectQuery);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(apartments));
return apartments;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public void DeleteApartment(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var deleteQuery = @"
DELETE FROM Apartment
WHERE ID = @id";
connection.Execute(deleteQuery, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public void UpdateApartment(Apartment apartment)
{
}
}
}
}

View File

@ -1,38 +1,122 @@
using RealEstateTransactions.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using RealEstateTransactions.Entities;
namespace RealEstateTransactions.Repositories.Implementations
{
public class BuyerRepository : IBuyerRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<BuyerRepository> _logger;
public BuyerRepository(IConnectionString connectionString, ILogger<BuyerRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateBuyer(Buyer buyer)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(buyer));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var insertQuery = @"
INSERT INTO Buyer (ID, Full_name, Passport_series, Passport_number)
VALUES (@Id, @Full_name, @Passport_series, @Passport_number)";
connection.Execute(insertQuery, buyer);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeleteBuyer(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var deleteQuery = @"
DELETE FROM Buyer
WHERE Id = @id";
connection.Execute(deleteQuery, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public Buyer ReadBuyer(int id)
{
return Buyer.CreateBuyer(0, "", 0, 0);
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = @"
SELECT *
FROM Buyer
WHERE Id = @id";
var buyer = connection.QueryFirst<Buyer>(selectQuery, new { id });
_logger.LogDebug("Найден объект: {json}", JsonConvert.SerializeObject(buyer));
return buyer;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
public IEnumerable<Buyer> ReadBuyers()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = "SELECT * FROM Buyer";
var buyers = connection.Query<Buyer>(selectQuery);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(buyers));
return buyers;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public void UpdateBuyer(Buyer buyer)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(buyer));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var updateQuery = @"
UPDATE Buyer
SET
Full_name = @Full_name,
Passport_series = @Passport_series,
Passport_number = @Passport_number
WHERE Id = @Id";
connection.Execute(updateQuery, buyer);
}
catch (Exception ex)
{
_logger.LogDebug(ex, "Ошибка при редактировании объекта");
throw;
}
}
}
}
}

View File

@ -0,0 +1,7 @@
namespace RealEstateTransactions.Repositories.Implementations
{
public class ConnectionString : IConnectionString
{
string IConnectionString.ConnectionString => "Host=localhost;Port=5432;Username=postgres;Password=Roma12345;Database=otp";
}
}

View File

@ -1,32 +1,91 @@
using RealEstateTransactions.Entities;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using RealEstateTransactions.Entities;
namespace RealEstateTransactions.Repositories.Implementations
{
public class DealRepository : IDealRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<DealRepository> _logger;
public DealRepository(IConnectionString connectionString, ILogger<DealRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateDeal(Deal deal)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(deal));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
connection.Open();
using var transaction = connection.BeginTransaction();
var insertQuery = @"
INSERT INTO Deal (ID, Apartment_ID, Buyer_ID, Deal_price, Deal_date)
VALUES (@ID, @Apartment_ID, @Buyer_ID, @Deal_price, @Deal_date);
SELECT MAX(Id) FROM Deal";
var dealId = connection.QueryFirst<int>(insertQuery, deal, transaction);
var subInsertQuery = @"
INSERT INTO Services_Deal (Services_ID, Deal_ID, Execution_time)
VALUES (@Services_ID, @Deal_ID, @Execution_time)";
foreach (var elem in deal.DealServices)
{
connection.Execute(subInsertQuery, new { elem.Services_ID, dealId, elem.Execution_time }, transaction);
}
transaction.Commit();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeleteDeal(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var deleteQuery = @"
DELETE FROM Services_Deal
WHERE Id = @id";
connection.Execute(deleteQuery, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public Deal ReadDeal(int id)
public IEnumerable<Deal> ReadDeals(DateTime? dateForm = null, DateTime? dateTo = null,
int? servicesID = null, int? dealID = null)
{
return Deal.CreateDeal(0, 0, 0, 0, DateTime.Now, []);
}
public IEnumerable<Deal> ReadDeals()
{
return [];
}
public void UpdateDeal(Deal deal)
{
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = @"SELECT * FROM Deal";
var deals = connection.Query<Deal>(selectQuery);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(deals));
return deals;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
}
}
}

View File

@ -1,28 +1,77 @@
using RealEstateTransactions.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using RealEstateTransactions.Entities;
namespace RealEstateTransactions.Repositories.Implementations
{
public class PreSalesServicesRepository : IPreSalesServicesRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<PreSalesServicesRepository> _logger;
public PreSalesServicesRepository(IConnectionString connectionString, ILogger<PreSalesServicesRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreatePreSalesService(PreSalesServices preSalesServices)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(preSalesServices));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var insertQuery = @"
INSERT INTO Pre_Sales_Services (Apartment_ID, Name, Cost)
VALUES (@Apartment_ID, @Name, @Cost)";
connection.Execute(insertQuery, preSalesServices);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeletePreSalesService(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var deleteQuery = @"
DELETE FROM Pre_Sales_Services
WHERE Id = @id";
connection.Execute(deleteQuery, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public IEnumerable<PreSalesServices> ReadPreSalesServices()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = "SELECT * FROM Pre_Sales_Services";
var preSalesServices = connection.Query<PreSalesServices>(selectQuery);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(preSalesServices));
return preSalesServices;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
}
}
}

View File

@ -1,9 +1,4 @@
using RealEstateTransactions.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RealEstateTransactions.Repositories.Implementations
{
@ -24,4 +19,4 @@ namespace RealEstateTransactions.Repositories.Implementations
return [];
}
}
}
}

View File

@ -1,37 +1,121 @@
using RealEstateTransactions.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using RealEstateTransactions.Entities;
namespace RealEstateTransactions.Repositories.Implementations
{
public class ServicesRepository : IServicesRepository
{
private readonly IConnectionString _connectionString;
private readonly ILogger<ServicesRepository> _logger;
public ServicesRepository(IConnectionString connectionString, ILogger<ServicesRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateService(Services service)
{
_logger.LogInformation("Добавление объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(service));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var insertQuery = @"
INSERT INTO Services (Name, Price)
VALUES (@Name, @Price)";
connection.Execute(insertQuery, service);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта");
throw;
}
}
public void DeleteService(int id)
{
_logger.LogInformation("Удаление объекта");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var deleteQuery = @"
DELETE FROM Services
WHERE Id = @id";
connection.Execute(deleteQuery, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта");
throw;
}
}
public Services ReadService(int id)
{
return Services.CreateService(0, "", 0);
_logger.LogInformation("Получение объекта по идентификатору");
_logger.LogDebug("Объект: {Id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = @"
SELECT *
FROM Services
WHERE Id = @id";
var service = connection.QueryFirst<Services>(selectQuery, new { id });
_logger.LogDebug("Найден объект: {json}", JsonConvert.SerializeObject(service));
return service;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта");
throw;
}
}
public IEnumerable<Services> ReadServices()
{
return [];
_logger.LogInformation("Получение всех объектов");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var selectQuery = "SELECT * FROM Services";
var services = connection.Query<Services>(selectQuery);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(services));
return services;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов");
throw;
}
}
public void UpdateService(Services service)
{
_logger.LogInformation("Редактирование объекта");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(service));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var updateQuery = @"
UPDATE Services
SET
Name = @Name,
Price = @Price
WHERE Id = @Id";
connection.Execute(updateQuery, service);
}
catch (Exception ex)
{
_logger.LogDebug(ex, "Ошибка при редактировании объекта");
throw;
}
}
}
}
}

View File

@ -0,0 +1,16 @@
{
"Serilog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:/my/курс 2 сим 1/ОТП/Lab/Log.txt",
"rollingInterval": "Day"
}
}
]
}
}