зафиксировать
This commit is contained in:
parent
a17a520267
commit
95892d4f59
@ -9,7 +9,7 @@ namespace ProjectBoat_bae
|
|||||||
{
|
{
|
||||||
internal class BoatDelegate
|
internal class BoatDelegate
|
||||||
{
|
{
|
||||||
// Делегат для передачи объекта-автомобиля
|
// Делегат для передачи объекта
|
||||||
public delegate void boatDelegate(Drawningboat boat);
|
public delegate void boatDelegate(Drawningboat boat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ using ProjectBoat_bae.Entities;
|
|||||||
|
|
||||||
namespace ProjectBoat_bae
|
namespace ProjectBoat_bae
|
||||||
{
|
{
|
||||||
internal static class ExtentionCar
|
internal static class ExtentionBoat
|
||||||
{
|
{
|
||||||
// Разделитель для записи информации по объекту в файл
|
// Разделитель для записи информации по объекту в файл
|
||||||
private static readonly char _separatorForObject = ':';
|
private static readonly char _separatorForObject = ':';
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
using System;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -7,12 +9,12 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
|
|
||||||
using ProjectBoat_bae.DrawningObjects;
|
using ProjectBoat_bae.DrawningObjects;
|
||||||
using ProjectBoat_bae.Generics;
|
using ProjectBoat_bae.Generics;
|
||||||
using ProjectBoat_bae.Exceptions;
|
using ProjectBoat_bae.Exceptions;
|
||||||
|
using ProjectBoat_bae.MovementStrategy;
|
||||||
|
using NLog;
|
||||||
|
|
||||||
namespace ProjectBoat_bae
|
namespace ProjectBoat_bae
|
||||||
{
|
{
|
||||||
@ -22,9 +24,9 @@ namespace ProjectBoat_bae
|
|||||||
private readonly BoatsGenericStorage _storage;
|
private readonly BoatsGenericStorage _storage;
|
||||||
|
|
||||||
// Логер
|
// Логер
|
||||||
private readonly ILogger _logger;
|
private readonly Microsoft.Extensions.Logging.ILogger? _logger;
|
||||||
|
|
||||||
public FormBoatCollection()
|
public FormBoatCollection(ILogger<FormBoatCollection> logger)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
_storage = new BoatsGenericStorage(pictureBoxCollection.Width, pictureBoxCollection.Height);
|
_storage = new BoatsGenericStorage(pictureBoxCollection.Width, pictureBoxCollection.Height);
|
||||||
@ -72,7 +74,7 @@ namespace ProjectBoat_bae
|
|||||||
}
|
}
|
||||||
_storage.AddSet(textBoxStorageName.Text);
|
_storage.AddSet(textBoxStorageName.Text);
|
||||||
ReloadObjects();
|
ReloadObjects();
|
||||||
_logger.LogInformation($"Добавлен набор: {textBoxStorageName.Text}");
|
_logger.LogInformation($"Added set: {textBoxStorageName.Text}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Удаление набора
|
// Удаление набора
|
||||||
@ -95,71 +97,143 @@ namespace ProjectBoat_bae
|
|||||||
{
|
{
|
||||||
_storage.DelSet(name);
|
_storage.DelSet(name);
|
||||||
ReloadObjects();
|
ReloadObjects();
|
||||||
_logger.LogInformation($"Удален набор: {name}");
|
_logger.LogInformation($"Deleted set: {name}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Добавление объекта в набор
|
// Добавление объекта в набор
|
||||||
private void ButtonAddBoat_Click(object sender, EventArgs e)
|
private void ButtonAddBoat_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (listBoxStorages.SelectedIndex == -1) return;
|
//if (listBoxStorages.SelectedIndex == -1) return;
|
||||||
|
//var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
||||||
|
//if (obj == null) return;
|
||||||
|
|
||||||
|
//FormBoatConfig form = new FormBoatConfig();
|
||||||
|
//form.AddEvent(AddBoat);
|
||||||
|
//form.Show();
|
||||||
|
if (listBoxStorages.SelectedIndex == -1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
||||||
if (obj == null) return;
|
if (obj == null)
|
||||||
|
{
|
||||||
FormBoatConfig form = new FormBoatConfig();
|
return;
|
||||||
|
}
|
||||||
form.AddEvent(AddBoat);
|
FormBoatConfig formPlaneConfig = new FormBoatConfig();
|
||||||
form.Show();
|
formPlaneConfig.AddEvent(AddBoat);
|
||||||
|
formPlaneConfig.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddBoat(Drawningboat boat)
|
private void AddBoat(Drawningboat boat)
|
||||||
{
|
{
|
||||||
boat._pictureWidth = pictureBoxCollection.Width;
|
//boat._pictureWidth = pictureBoxCollection.Width;
|
||||||
boat._pictureHeight = pictureBoxCollection.Height;
|
//boat._pictureHeight = pictureBoxCollection.Height;
|
||||||
if (listBoxStorages.SelectedIndex == -1) return;
|
//if (listBoxStorages.SelectedIndex == -1) return;
|
||||||
var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
//var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
||||||
if (obj == null) return;
|
//if (obj == null) return;
|
||||||
|
|
||||||
if (obj + boat)
|
//if (obj + boat)
|
||||||
|
//{
|
||||||
|
// MessageBox.Show("Объект добавлен");
|
||||||
|
// pictureBoxCollection.Image = obj.ShowBoats();
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// MessageBox.Show("Не удалось добавить объект");
|
||||||
|
//}
|
||||||
|
if (listBoxStorages.SelectedIndex == -1)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
||||||
|
if (obj == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Добавление пустого объекта");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_ = obj + boat;
|
||||||
MessageBox.Show("Объект добавлен");
|
MessageBox.Show("Объект добавлен");
|
||||||
pictureBoxCollection.Image = obj.ShowBoats();
|
pictureBoxCollection.Image = obj.ShowBoats();
|
||||||
|
_logger.LogInformation($"boat added {listBoxStorages.SelectedItem.ToString()}");
|
||||||
}
|
}
|
||||||
else
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Не удалось добавить объект");
|
MessageBox.Show(ex.Message);
|
||||||
|
_logger.LogWarning($"boat not added {listBoxStorages.SelectedItem.ToString()}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//удаление объекта
|
//удаление объекта
|
||||||
private void ButtonRemoveBoat_Click(object sender, EventArgs e)
|
private void ButtonRemoveBoat_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
//if (listBoxStorages.SelectedIndex == -1)
|
||||||
|
//{
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//var obj = _storage[listBoxStorages.SelectedItem.ToString() ??
|
||||||
|
//string.Empty];
|
||||||
|
//if (obj == null)
|
||||||
|
//{
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (MessageBox.Show("Удалить объект?", "Удаление",
|
||||||
|
//MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||||
|
//{
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//int pos = 0;
|
||||||
|
//if (textBoxBoat != null)
|
||||||
|
// pos = Convert.ToInt32(textBoxBoat.Text);
|
||||||
|
//if (obj - pos != null)
|
||||||
|
//{
|
||||||
|
// MessageBox.Show("Объект удален");
|
||||||
|
// pictureBoxCollection.Image = obj.ShowBoats();
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// MessageBox.Show("Не удалось удалить объект");
|
||||||
|
//}
|
||||||
if (listBoxStorages.SelectedIndex == -1)
|
if (listBoxStorages.SelectedIndex == -1)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var obj = _storage[listBoxStorages.SelectedItem.ToString() ??
|
var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
|
||||||
string.Empty];
|
|
||||||
if (obj == null)
|
if (obj == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (MessageBox.Show("Удалить объект?", "Удаление",
|
if (MessageBox.Show("Удалить объект?", "Удалить", MessageBoxButtons.YesNo,
|
||||||
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
MessageBoxIcon.Question) == DialogResult.No)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int pos = 0;
|
try
|
||||||
if (textBoxBoat != null)
|
|
||||||
pos = Convert.ToInt32(textBoxBoat.Text);
|
|
||||||
if (obj - pos != null)
|
|
||||||
{
|
{
|
||||||
MessageBox.Show("Объект удален");
|
int pos = Convert.ToInt32(textBoxBoat.Text);
|
||||||
pictureBoxCollection.Image = obj.ShowBoats();
|
if (obj - pos != null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Объект удален");
|
||||||
|
pictureBoxCollection.Image = obj.ShowBoats();
|
||||||
|
_logger.LogInformation($"лодка удалена из набора {listBoxStorages.SelectedItem.ToString()}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("Объект не удален");
|
||||||
|
_logger.LogWarning($"лодка не удалена из набора {listBoxStorages.SelectedItem.ToString()}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
catch (BoatNotFoundException ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Не удалось удалить объект");
|
MessageBox.Show(ex.Message);
|
||||||
|
_logger.LogWarning($"BoatNotFound: {ex.Message} in set {listBoxStorages.SelectedItem.ToString()}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Объект не добавлен");
|
||||||
|
_logger.LogWarning("Not input");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,18 +263,47 @@ namespace ProjectBoat_bae
|
|||||||
//сохранение
|
//сохранение
|
||||||
private void SaveToolStripMenu_Click(object sender, EventArgs e)
|
private void SaveToolStripMenu_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
//if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
//{
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// _storage.SaveData(saveFileDialog.FileName);
|
||||||
|
// MessageBox.Show("Сохранение прошло успешно",
|
||||||
|
// "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// MessageBox.Show($"Не сохранилось: {ex.Message}",
|
||||||
|
// "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
//{
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// _storage.SaveData(saveFileDialog.FileName);
|
||||||
|
// MessageBox.Show("Сохранение завершено", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
// _logger.LogInformation($"save in file {saveFileDialog.FileName}");
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// MessageBox.Show($"Не сохранено: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
// _logger.LogWarning($"Save to file {saveFileDialog.FileName} not complete");
|
||||||
|
// }
|
||||||
|
//}
|
||||||
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_storage.SaveData(saveFileDialog.FileName);
|
_storage.SaveData(saveFileDialog.FileName);
|
||||||
MessageBox.Show("Сохранение прошло успешно",
|
MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
"Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
_logger.LogWarning($"Файл {saveFileDialog.FileName} успешно сохранен");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show($"Не сохранилось: {ex.Message}",
|
_logger.LogWarning("Не удалось сохранить");
|
||||||
"Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -208,52 +311,56 @@ namespace ProjectBoat_bae
|
|||||||
//загрузка
|
//загрузка
|
||||||
private void LoadToolStripMenu_Click(object sender, EventArgs args)
|
private void LoadToolStripMenu_Click(object sender, EventArgs args)
|
||||||
{
|
{
|
||||||
|
|
||||||
//if (openFileDialog.ShowDialog() == DialogResult.OK)
|
//if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
//{
|
//{
|
||||||
// if (_storage.LoadData(openFileDialog.FileName))
|
// if (_storage.LoadData(openFileDialog.FileName))
|
||||||
// {
|
// {
|
||||||
// MessageBox.Show("Load Complete", "Result",
|
// MessageBox.Show("Загрузка прошла успешно",
|
||||||
// MessageBoxButtons.OK, MessageBoxIcon.Information);
|
// "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
// ReloadObjects();
|
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// MessageBox.Show("Load Not Complete", "Result",
|
// MessageBox.Show("Не загрузилось", "Результат",
|
||||||
// MessageBoxButtons.OK, MessageBoxIcon.Error);
|
// MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
//ReloadObjects();
|
||||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
|
||||||
{
|
|
||||||
if (_storage.LoadData(openFileDialog.FileName))
|
|
||||||
{
|
|
||||||
MessageBox.Show("Загрузка прошла успешно",
|
|
||||||
"Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox.Show("Не загрузилось", "Результат",
|
|
||||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ReloadObjects();
|
|
||||||
|
|
||||||
//if (openFileDialog.ShowDialog() == DialogResult.OK)
|
//if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
//{
|
//{
|
||||||
// try
|
// try
|
||||||
// {
|
// {
|
||||||
// _storage.LoadData(openFileDialog.FileName);
|
// _storage.LoadData(openFileDialog.FileName);
|
||||||
|
// MessageBox.Show("Загрузка завершена", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
// MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
// ReloadObjects();
|
||||||
// _logger.LogInformation("Загрузка прошла успешно");
|
// _logger.LogInformation($"load from file {openFileDialog.FileName}");
|
||||||
// }
|
// }
|
||||||
// catch (Exception ex)
|
// catch (Exception ex)
|
||||||
// {
|
// {
|
||||||
// MessageBox.Show($"Не загрузилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
// MessageBox.Show($"Не загружено: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
// _logger.LogWarning($"Не загрузилось: {ex.Message}");
|
// _logger.LogWarning($"load from file {openFileDialog.FileName} not complete");
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
//ReloadObjects();
|
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_storage.LoadData(openFileDialog.FileName);
|
||||||
|
MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
_logger.LogWarning($"Файл {openFileDialog.FileName} успешно загружен");
|
||||||
|
foreach (var collection in _storage.Keys)
|
||||||
|
{
|
||||||
|
listBoxStorages.Items.Add(collection);
|
||||||
|
}
|
||||||
|
ReloadObjects();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Не удалось загрузить");
|
||||||
|
MessageBox.Show($"Не загрузилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,10 @@ using System.Windows.Forms;
|
|||||||
|
|
||||||
using ProjectBoat_bae.DrawningObjects;
|
using ProjectBoat_bae.DrawningObjects;
|
||||||
using ProjectBoat_bae.Entities;
|
using ProjectBoat_bae.Entities;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Logging.Abstractions;
|
||||||
|
|
||||||
namespace ProjectBoat_bae
|
namespace ProjectBoat_bae
|
||||||
{
|
{
|
||||||
public partial class FormBoatConfig : Form
|
public partial class FormBoatConfig : Form
|
||||||
@ -83,18 +87,28 @@ namespace ProjectBoat_bae
|
|||||||
// Действия при приеме перетаскиваемой информации
|
// Действия при приеме перетаскиваемой информации
|
||||||
private void PanelObject_DragDrop(object sender, DragEventArgs e)
|
private void PanelObject_DragDrop(object sender, DragEventArgs e)
|
||||||
{
|
{
|
||||||
|
//switch (e.Data?.GetData(DataFormats.Text).ToString())
|
||||||
|
//{
|
||||||
|
// case "labelSimpleObject":
|
||||||
|
// _boat = new Drawningboat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, pictureBoxObject.Width, pictureBoxObject.Height);
|
||||||
|
// break;
|
||||||
|
// case "labelModifiedObject":
|
||||||
|
// _boat = new DrawningMotorBoat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black,
|
||||||
|
// checkBoxBoat.Checked, checkBoxBoat2.Checked, pictureBoxObject.Width, pictureBoxObject.Height);
|
||||||
|
// break;
|
||||||
|
//}
|
||||||
|
//LabelColor.BackColor = Color.Empty;
|
||||||
|
//LabelAdditionalColor.BackColor = Color.Empty;
|
||||||
|
ILogger<FormBoatCollection> logger = new NullLogger<FormBoatCollection>();
|
||||||
switch (e.Data?.GetData(DataFormats.Text).ToString())
|
switch (e.Data?.GetData(DataFormats.Text).ToString())
|
||||||
{
|
{
|
||||||
case "labelSimpleObject":
|
case "labelSimpleObject":
|
||||||
_boat = new Drawningboat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, pictureBoxObject.Width, pictureBoxObject.Height);
|
_boat = new Drawningboat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, pictureBoxObject.Width, pictureBoxObject.Height);
|
||||||
break;
|
break;
|
||||||
case "labelModifiedObject":
|
case "labelModifiedObject":
|
||||||
_boat = new DrawningMotorBoat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black,
|
_boat = new DrawningMotorBoat((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, Color.White, Color.Black, checkBoxBoat.Checked, checkBoxBoat2.Checked, pictureBoxObject.Width, pictureBoxObject.Height);
|
||||||
checkBoxBoat.Checked, checkBoxBoat2.Checked, pictureBoxObject.Width, pictureBoxObject.Height);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
LabelColor.BackColor = Color.Empty;
|
|
||||||
LabelAdditionalColor.BackColor = Color.Empty;
|
|
||||||
DrawBoat();
|
DrawBoat();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,8 @@ namespace ProjectBoat_bae.Generics
|
|||||||
T? t = _collection[i];
|
T? t = _collection[i];
|
||||||
if (t != null)
|
if (t != null)
|
||||||
{
|
{
|
||||||
t.SetPosition((i % (_pictureWidth / _placeSizeWidth)) * _placeSizeWidth, (i / (_pictureWidth / _placeSizeWidth)) * _placeSizeHeight);
|
t.SetPosition((i % (_pictureWidth / _placeSizeWidth)) * _placeSizeWidth,
|
||||||
|
(i / (_pictureWidth / _placeSizeWidth)) * _placeSizeHeight);
|
||||||
if (t is Drawningboat) (t as Drawningboat).DrawTransport(g);
|
if (t is Drawningboat) (t as Drawningboat).DrawTransport(g);
|
||||||
else t.DrawTransport(g);
|
else t.DrawTransport(g);
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,30 @@ namespace ProjectBoat_bae.Generics
|
|||||||
|
|
||||||
public void SaveData(string filename)
|
public void SaveData(string filename)
|
||||||
{
|
{
|
||||||
|
//if (File.Exists(filename))
|
||||||
|
//{
|
||||||
|
// File.Delete(filename);
|
||||||
|
//}
|
||||||
|
//StringBuilder data = new();
|
||||||
|
//foreach (KeyValuePair<string,
|
||||||
|
//BoatsGenericCollection<Drawningboat, DrawningObjectBoat>> record in _boatStorages)
|
||||||
|
//{
|
||||||
|
// StringBuilder records = new();
|
||||||
|
// foreach (Drawningboat? elem in record.Value.GetBoats)
|
||||||
|
// {
|
||||||
|
// records.Append($"{elem?.GetDataForSave(_separatorForObject)}{_separatorRecords}");
|
||||||
|
// }
|
||||||
|
// data.AppendLine($"{record.Key}{_separatorForKeyValue}{records}");
|
||||||
|
//}
|
||||||
|
//if (data.Length == 0)
|
||||||
|
//{
|
||||||
|
// throw new Exception("Невалиданя операция, нет данных для сохранения");
|
||||||
|
//}
|
||||||
|
//using FileStream fs = new(filename, FileMode.Create);
|
||||||
|
//byte[] info = new
|
||||||
|
//UTF8Encoding(true).GetBytes($"CarStorage{Environment.NewLine}{data}");
|
||||||
|
//fs.Write(info, 0, info.Length);
|
||||||
|
//return;
|
||||||
if (File.Exists(filename))
|
if (File.Exists(filename))
|
||||||
{
|
{
|
||||||
File.Delete(filename);
|
File.Delete(filename);
|
||||||
@ -69,65 +93,118 @@ namespace ProjectBoat_bae.Generics
|
|||||||
}
|
}
|
||||||
if (data.Length == 0)
|
if (data.Length == 0)
|
||||||
{
|
{
|
||||||
throw new Exception("Невалиданя операция, нет данных для сохранения");
|
throw new Exception("Невалидная операция, нет данных для сохранения");
|
||||||
}
|
}
|
||||||
using FileStream fs = new(filename, FileMode.Create);
|
using FileStream fs = new(filename, FileMode.Create);
|
||||||
byte[] info = new
|
byte[] info = new
|
||||||
UTF8Encoding(true).GetBytes($"CarStorage{Environment.NewLine}{data}");
|
UTF8Encoding(true).GetBytes($"BusStorage{Environment.NewLine}{data}");
|
||||||
fs.Write(info, 0, info.Length);
|
fs.Write(info, 0, info.Length);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool LoadData(string filename)
|
//public bool LoadData(string filename)
|
||||||
|
public void LoadData(string filename)
|
||||||
{
|
{
|
||||||
|
//if (!File.Exists(filename))
|
||||||
|
//{
|
||||||
|
// return false;
|
||||||
|
//}
|
||||||
|
//using (StreamReader fs = File.OpenText(filename))
|
||||||
|
//{
|
||||||
|
// string str = fs.ReadLine();
|
||||||
|
// if (str == null || str.Length == 0)
|
||||||
|
// {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// if (!str.StartsWith("ShipStorage"))
|
||||||
|
// {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// _boatStorages.Clear();
|
||||||
|
// string strs = "";
|
||||||
|
|
||||||
|
// while ((strs = fs.ReadLine()) != null)
|
||||||
|
// {
|
||||||
|
// if (strs == null)
|
||||||
|
// {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// string[] record = strs.Split(_separatorForKeyValue, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
// if (record.Length != 2)
|
||||||
|
// {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// BoatsGenericCollection<Drawningboat, DrawningObjectBoat> collection = new(_pictureWidth, _pictureHeight);
|
||||||
|
// string[] set = record[1].Split(_separatorRecords, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
// foreach (string elem in set)
|
||||||
|
// {
|
||||||
|
// Drawningboat? boat = elem?.CreateDrawningBoat(_separatorForObject, _pictureWidth, _pictureHeight);
|
||||||
|
// if (boat != null)
|
||||||
|
// {
|
||||||
|
// if (!(collection + boat))
|
||||||
|
// {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// _boatStorages.Add(record[0], collection);
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
//}
|
||||||
if (!File.Exists(filename))
|
if (!File.Exists(filename))
|
||||||
{
|
{
|
||||||
return false;
|
throw new Exception("Файл не найден");
|
||||||
}
|
}
|
||||||
using (StreamReader fs = File.OpenText(filename))
|
string bufferTextFromFile = "";
|
||||||
|
using (FileStream fs = new(filename, FileMode.Open))
|
||||||
{
|
{
|
||||||
string str = fs.ReadLine();
|
byte[] b = new byte[fs.Length];
|
||||||
if (str == null || str.Length == 0)
|
UTF8Encoding temp = new(true);
|
||||||
|
while (fs.Read(b, 0, b.Length) > 0)
|
||||||
{
|
{
|
||||||
return false;
|
bufferTextFromFile += temp.GetString(b);
|
||||||
}
|
}
|
||||||
if (!str.StartsWith("ShipStorage"))
|
}
|
||||||
|
var strs = bufferTextFromFile.Split(new char[] { '\n', '\r' },
|
||||||
|
StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
if (strs == null || strs.Length == 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Нет данных для загрузки");
|
||||||
|
}
|
||||||
|
if (!strs[0].StartsWith("BusStorage"))
|
||||||
|
{
|
||||||
|
//если нет такой записи, то это не те данные
|
||||||
|
throw new Exception("Неверный формат данных");
|
||||||
|
}
|
||||||
|
_boatStorages.Clear();
|
||||||
|
foreach (string data in strs)
|
||||||
|
{
|
||||||
|
string[] record = data.Split(_separatorForKeyValue,
|
||||||
|
StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
if (record.Length != 2)
|
||||||
{
|
{
|
||||||
return false;
|
continue;
|
||||||
}
|
}
|
||||||
|
BoatsGenericCollection<Drawningboat, DrawningObjectBoat>
|
||||||
_boatStorages.Clear();
|
collection = new(_pictureWidth, _pictureHeight);
|
||||||
string strs = "";
|
string[] set = record[1].Split(_separatorRecords,
|
||||||
|
StringSplitOptions.RemoveEmptyEntries);
|
||||||
while ((strs = fs.ReadLine()) != null)
|
foreach (string elem in set)
|
||||||
{
|
{
|
||||||
if (strs == null)
|
Drawningboat? boat =
|
||||||
|
elem?.CreateDrawningBoat(_separatorForObject, _pictureWidth, _pictureHeight);
|
||||||
|
if (boat != null)
|
||||||
{
|
{
|
||||||
return false;
|
if (!(collection + boat))
|
||||||
}
|
|
||||||
|
|
||||||
string[] record = strs.Split(_separatorForKeyValue, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
if (record.Length != 2)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
BoatsGenericCollection<Drawningboat, DrawningObjectBoat> collection = new(_pictureWidth, _pictureHeight);
|
|
||||||
string[] set = record[1].Split(_separatorRecords, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
foreach (string elem in set)
|
|
||||||
{
|
|
||||||
Drawningboat? boat = elem?.CreateDrawningBoat(_separatorForObject, _pictureWidth, _pictureHeight);
|
|
||||||
if (boat != null)
|
|
||||||
{
|
{
|
||||||
if (!(collection + boat))
|
throw new Exception("Ошибка добавления в коллекцию");
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_boatStorages.Add(record[0], collection);
|
|
||||||
}
|
}
|
||||||
return true;
|
_boatStorages.Add(record[0], collection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user