Лабораторная работа №7 (вроде готово)
This commit is contained in:
parent
018e2c48ec
commit
a34dddad16
@ -85,8 +85,14 @@ public abstract class AbstractCompany
|
||||
SetObjectsPosition();
|
||||
for (int i = 0; i < (_collection?.Count ?? 0); ++i)
|
||||
{
|
||||
DrawningTruck? obj = _collection?.Get(i);
|
||||
obj?.DrawTransport(graphics);
|
||||
try
|
||||
{
|
||||
DrawningTruck? obj = _collection?.Get(i);
|
||||
obj?.DrawTransport(graphics);
|
||||
} catch (ObjectNotFoundException)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
return bitmap;
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using ProjectCleaningCar.Drawning;
|
||||
using ProjectCleaningCar.Exceptions;
|
||||
|
||||
namespace ProjectCleaningCar.CollectionGenericObjects;
|
||||
/// <summary>
|
||||
@ -39,10 +40,16 @@ public class AutoParkService : AbstractCompany
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (_collection?.Get(i) != null)
|
||||
try
|
||||
{
|
||||
_collection?.Get(i)?.SetPictureSize(_pictureWidth, _pictureHeight);
|
||||
_collection?.Get(i)?.SetPosition(_placeSizeWidth * nowWidth + 30, nowHeight * _placeSizeHeight * 2 + 20);
|
||||
if (_collection?.Get(i) != null)
|
||||
{
|
||||
_collection?.Get(i)?.SetPictureSize(_pictureWidth, _pictureHeight);
|
||||
_collection?.Get(i)?.SetPosition(_placeSizeWidth * nowWidth + 30, nowHeight * _placeSizeHeight * 2 + 20);
|
||||
}
|
||||
} catch(ObjectNotFoundException)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
if (nowWidth < _pictureWidth / _placeSizeWidth - 1) nowWidth++;
|
||||
|
@ -1,7 +1,7 @@
|
||||
using NLog.LayoutRenderers.Wrappers;
|
||||
using ProjectCleaningCar.Drawning;
|
||||
using ProjectCleaningCar.Drawning;
|
||||
using ProjectCleaningCar.Entities;
|
||||
using ProjectCleaningCar.Exceptions;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
|
||||
namespace ProjectCleaningCar.CollectionGenericObjects;
|
||||
@ -102,7 +102,7 @@ public class StorageCollection<T>
|
||||
{
|
||||
if (_storages.Count == 0)
|
||||
{
|
||||
throw new Exception("В хранилище отсутствуют коллекции для сохранения");
|
||||
throw new InvalidDataException("В хранилище отсутствуют коллекции для сохранения");
|
||||
|
||||
}
|
||||
if (File.Exists(filename))
|
||||
@ -157,7 +157,7 @@ public class StorageCollection<T>
|
||||
string line = reader.ReadLine();
|
||||
if (line == null || line.Length == 0)
|
||||
{
|
||||
throw new IOException("Файл не подходит");
|
||||
throw new FileFormatException("Файл не подходит");
|
||||
}
|
||||
if (!line.Equals(_collectionKey))
|
||||
{
|
||||
@ -177,7 +177,7 @@ public class StorageCollection<T>
|
||||
ICollectionGenericObjects<T>? collection = StorageCollection<T>.CreateCollection(collectionType);
|
||||
if (collection == null)
|
||||
{
|
||||
throw new Exception("Не удалось создать коллекцию");
|
||||
throw new InvalidOperationException("Не удалось создать коллекцию");
|
||||
}
|
||||
collection.MaxCount = Convert.ToInt32(record[2]);
|
||||
string[] set = record[3].Split(_separatorItems,
|
||||
@ -190,12 +190,12 @@ public class StorageCollection<T>
|
||||
{
|
||||
if (collection.Insert(truck) == -1)
|
||||
{
|
||||
throw new Exception("Объект не удалось добавить в коллекцию: " + record[3]);
|
||||
throw new ConstraintException("Объект не удалось добавить в коллекцию: " + record[3]);
|
||||
}
|
||||
}
|
||||
catch (CollectionOverflowException ex)
|
||||
{
|
||||
throw new Exception("Коллекция переполнена", ex);
|
||||
throw new DataException("Коллекция переполнена", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -71,11 +71,14 @@ public partial class FormCleaningCarCollection : Form
|
||||
{
|
||||
MessageBox.Show("Объект добавлен");
|
||||
pictureBox.Image = _company.Show();
|
||||
_logger.LogInformation("Добавлен объект: {0}", truck.GetDataForSave());
|
||||
}
|
||||
|
||||
} catch (CollectionOverflowException)
|
||||
}
|
||||
catch (CollectionOverflowException)
|
||||
{
|
||||
MessageBox.Show("Не удалось добавить объект");
|
||||
_logger.LogError("Ошибка: В коллекции превышено допустимое количество");
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,6 +104,7 @@ public partial class FormCleaningCarCollection : Form
|
||||
{
|
||||
MessageBox.Show("Объект удален");
|
||||
pictureBox.Image = _company.Show();
|
||||
_logger.LogInformation("Удалён объект по позиции {0}", pos);
|
||||
} else
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить объект");
|
||||
@ -108,11 +112,18 @@ public partial class FormCleaningCarCollection : Form
|
||||
}
|
||||
catch (PositionOutOfCollectionException)
|
||||
{
|
||||
MessageBox.Show("Ошибка при удалении объекта");
|
||||
MessageBox.Show($"Ошибка при удалении по позиции {pos}");
|
||||
_logger.LogError("Ошибка при удалении по позиции {0}", pos);
|
||||
}
|
||||
catch (Exception)
|
||||
catch (ObjectNotFoundException)
|
||||
{
|
||||
MessageBox.Show($"Ошибка: Не найден объект по позиции {pos}");
|
||||
_logger.LogError("Ошибка: Не найден объект по позиции {0}", pos);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Неизвестная ошибка при удалении объекта");
|
||||
_logger.LogError("Ошибка: {0}", ex);
|
||||
}
|
||||
|
||||
}
|
||||
@ -127,21 +138,30 @@ public partial class FormCleaningCarCollection : Form
|
||||
{
|
||||
return;
|
||||
}
|
||||
DrawningTruck? truck = null;
|
||||
int counter = 100;
|
||||
while (truck == null)
|
||||
try
|
||||
{
|
||||
truck = _company.GetRandomObject();
|
||||
counter--;
|
||||
if (counter <= 0) break;
|
||||
}
|
||||
if (truck == null)
|
||||
DrawningTruck? truck = null;
|
||||
int counter = 100;
|
||||
while (truck == null)
|
||||
{
|
||||
truck = _company.GetRandomObject();
|
||||
counter--;
|
||||
if (counter <= 0) break;
|
||||
}
|
||||
if (truck == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
FormCleaningCar form = new FormCleaningCar();
|
||||
form.SetCar = truck;
|
||||
form.ShowDialog();
|
||||
} catch(ObjectNotFoundException)
|
||||
{
|
||||
return;
|
||||
_logger.LogError("Ошибка при передаче объекта на FormCleaningCar");
|
||||
} catch(Exception)
|
||||
{
|
||||
_logger.LogError("фатальная Ошибка при передаче объекта на FormCleaningCar");
|
||||
}
|
||||
FormCleaningCar form = new FormCleaningCar();
|
||||
form.SetCar = truck;
|
||||
form.ShowDialog();
|
||||
}
|
||||
/// <summary>
|
||||
/// Перерисовка коллекции
|
||||
@ -154,12 +174,7 @@ public partial class FormCleaningCarCollection : Form
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
pictureBox.Image = _company.Show();
|
||||
|
||||
} catch (PositionOutOfCollectionException) { }
|
||||
catch (Exception) { }
|
||||
pictureBox.Image = _company.Show();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -174,19 +189,26 @@ public partial class FormCleaningCarCollection : Form
|
||||
MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
CollectionType collectionType = CollectionType.None;
|
||||
if (radioButtonMassive.Checked)
|
||||
try
|
||||
{
|
||||
collectionType = CollectionType.Massive;
|
||||
CollectionType collectionType = CollectionType.None;
|
||||
if (radioButtonMassive.Checked)
|
||||
{
|
||||
collectionType = CollectionType.Massive;
|
||||
}
|
||||
else if (radioButtonList.Checked)
|
||||
{
|
||||
collectionType = CollectionType.List;
|
||||
}
|
||||
_storageCollection.AddCollection(textBoxCollectionName.Text, collectionType);
|
||||
RerfreshListBoxItems();
|
||||
_logger.LogInformation("Добавлена коллекция: {Collection} типа: {Type}", textBoxCollectionName.Text, collectionType);
|
||||
}
|
||||
else if (radioButtonList.Checked)
|
||||
catch(Exception)
|
||||
{
|
||||
collectionType = CollectionType.List;
|
||||
_logger.LogError("Ошибка при добавлении коллекции");
|
||||
}
|
||||
|
||||
_storageCollection.AddCollection(textBoxCollectionName.Text, collectionType);
|
||||
RerfreshListBoxItems();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -217,13 +239,22 @@ public partial class FormCleaningCarCollection : Form
|
||||
MessageBox.Show("Коллекция не выбрана");
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||
try
|
||||
{
|
||||
return;
|
||||
if (MessageBox.Show("Удалить коллекцию?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
|
||||
RerfreshListBoxItems();
|
||||
MessageBox.Show($"Коллекция {textBoxCollectionName.Text} удалена");
|
||||
_logger.LogInformation("Коллекция удалена: {0}", textBoxCollectionName.Text);
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
MessageBox.Show("Ошибка при удалении коллекции");
|
||||
_logger.LogError("Ошибка при удалении коллекции");
|
||||
}
|
||||
_storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
|
||||
RerfreshListBoxItems();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -245,20 +276,14 @@ public partial class FormCleaningCarCollection : Form
|
||||
MessageBox.Show("Коллекция не проинициализирована");
|
||||
return;
|
||||
}
|
||||
try
|
||||
switch (comboBoxSelectorCompany.Text)
|
||||
{
|
||||
switch (comboBoxSelectorCompany.Text)
|
||||
{
|
||||
case "Автопарк":
|
||||
_company = new AutoParkService(pictureBox.Width, pictureBox.Height, collection);
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (ObjectNotFoundException)
|
||||
{
|
||||
|
||||
case "Автопарк":
|
||||
_company = new AutoParkService(pictureBox.Width, pictureBox.Height, collection);
|
||||
_logger.LogInformation("Создна компания типа {Company}, коллекция: {Collection}", comboBoxSelectorCompany.Text, textBoxCollectionName.Text);
|
||||
_logger.LogInformation("Создана компания на коллекции: {Collection}", textBoxCollectionName.Text);
|
||||
break;
|
||||
}
|
||||
|
||||
panelCompanyTools.Enabled = true;
|
||||
RerfreshListBoxItems();
|
||||
}
|
||||
|
@ -12,12 +12,10 @@
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
||||
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.8" />
|
||||
<PackageReference Include="Serilog" Version="3.1.1" />
|
||||
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
|
||||
<PackageReference Include="Serilog.Extensions.Logging" Version="7.0.0" />
|
||||
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="serilog:minimum-level" value="Verbose"/>
|
||||
<add key="serilog:write-to:LiterateConsole"/>
|
||||
</appSettings>
|
||||
</configuration>
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"AllowedHosts": "*",
|
||||
"Serilog": {
|
||||
"Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Console" ],
|
||||
"Using": [ "Serilog.Sinks.File" ],
|
||||
"MinimumLevel": {
|
||||
"Default": "Information",
|
||||
"Override": {
|
||||
@ -11,13 +11,12 @@
|
||||
},
|
||||
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
|
||||
"WriteTo": [
|
||||
{ "Name": "Console" },
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "C:\\Users\\ipazu\\Desktop\\log.txt",
|
||||
"path": "Logs\\log.txt",
|
||||
"rollingInterval": "Day",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.ffff} | {Level:u} | {SourceContext} | {Message:1j}{NewLine}{Exception}"
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.ffff}|{Level:u}|{SourceContext}|{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user