Compare commits
No commits in common. "LabWork08" and "main" have entirely different histories.
@ -1,10 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus;
|
||||
|
||||
public delegate void BusDelegate(DrawningBus bus);
|
@ -1,74 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using ProjectAccordionBus.MovementStrategy;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
public abstract class AbstractCompany
|
||||
{
|
||||
protected readonly int _placeSizeWidth = 240;
|
||||
|
||||
protected readonly int _placeSizeHeight = 60;
|
||||
|
||||
protected readonly int _pictureWidth;
|
||||
|
||||
protected readonly int _pictureHeight;
|
||||
|
||||
protected ICollectionGenericObjects<DrawningBus?> _collection = null;
|
||||
|
||||
private int GetMaxCount => _pictureWidth / _placeSizeWidth * (_pictureHeight / _placeSizeHeight / 2 * 3);
|
||||
|
||||
public AbstractCompany(int picWidth, int picHeigth, ICollectionGenericObjects<DrawningBus> collection)
|
||||
{
|
||||
_pictureWidth = picWidth;
|
||||
_pictureHeight = picHeigth;
|
||||
_collection = collection;
|
||||
_collection.MaxCount = GetMaxCount;
|
||||
}
|
||||
|
||||
public static int operator +(AbstractCompany company, DrawningBus bus)
|
||||
{
|
||||
return company._collection.Insert(bus, new DrawningBusEqutables());
|
||||
}
|
||||
|
||||
public static DrawningBus operator -(AbstractCompany company, int position)
|
||||
{
|
||||
return company._collection.Remove(position);
|
||||
}
|
||||
|
||||
public DrawningBus? GetRandomObject()
|
||||
{
|
||||
Random rnd = new();
|
||||
return _collection?.Get(rnd.Next(GetMaxCount));
|
||||
}
|
||||
|
||||
public Bitmap? Show()
|
||||
{
|
||||
Bitmap bitmap = new(_pictureWidth, _pictureHeight);
|
||||
Graphics graphics = Graphics.FromImage(bitmap);
|
||||
DrawBackground(graphics);
|
||||
|
||||
for (int i = 0; i < (_collection?.Count ?? 0); i++)
|
||||
{
|
||||
DrawningBus? obj = _collection?.Get(i);
|
||||
SetObjectPosition(i, _collection?.Count ?? 0, obj);
|
||||
obj?.DrawTransport(graphics);
|
||||
}
|
||||
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
public void Sort(IComparer<DrawningBus?> comparer)
|
||||
{
|
||||
_collection?.CollectionSort(comparer);
|
||||
}
|
||||
|
||||
protected abstract void DrawBackground(Graphics g);
|
||||
|
||||
protected abstract void SetObjectPosition(int position, int MaxPos, DrawningBus? bus);
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
public class BusSharingService : AbstractCompany
|
||||
{
|
||||
public BusSharingService(int picWidth, int picHeight, ICollectionGenericObjects<DrawningBus> collection) : base(picWidth, picHeight, collection)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
protected override void DrawBackground(Graphics g)
|
||||
{
|
||||
Pen pen = new(Color.Black, 3);
|
||||
for (int i = 0; i <= _pictureWidth / _placeSizeWidth; i++)
|
||||
{
|
||||
for (int j = 0; j <= _pictureHeight / _placeSizeHeight; j++)
|
||||
{
|
||||
g.DrawLine(pen, i * _placeSizeWidth, j * _placeSizeHeight, i * _placeSizeWidth + _placeSizeWidth / 2, j * _placeSizeHeight);
|
||||
}
|
||||
g.DrawLine(pen, i * _placeSizeWidth, 0, i * _placeSizeWidth, _pictureHeight / _placeSizeHeight * _placeSizeHeight);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void SetObjectPosition(int position, int MaxPos, DrawningBus? bus)
|
||||
{
|
||||
int n = 0;
|
||||
int m = 0;
|
||||
|
||||
for (int i = 0; i < (_collection?.Count ?? 0); i++)
|
||||
{
|
||||
if (_collection?.Get(i) != null)
|
||||
{
|
||||
int x = 5 + _placeSizeWidth * n;
|
||||
int y = (10 + _placeSizeHeight * (_pictureHeight / _placeSizeHeight - 1)) - _placeSizeHeight * m;
|
||||
|
||||
_collection?.Get(i)?.SetPictureSize(_pictureWidth, _pictureHeight);
|
||||
_collection?.Get(i)?.SetPosition(x, y);
|
||||
}
|
||||
|
||||
if (n < _pictureWidth / _placeSizeWidth)
|
||||
n++;
|
||||
else
|
||||
{
|
||||
n = 0;
|
||||
m++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,77 +0,0 @@
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
/// <summary>
|
||||
/// Класс, хранящий информацию о коллекции
|
||||
/// </summary>
|
||||
public class CollectionInfo : IEquatable<CollectionInfo>
|
||||
{
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Name { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Тип
|
||||
/// </summary>
|
||||
public CollectionType CollectionType { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Описание
|
||||
/// </summary>
|
||||
public string Description { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Разделитель для записи информации по объекту в файл
|
||||
/// </summary>
|
||||
private static readonly string _separator = "-";
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="name">Название</param>
|
||||
/// <param name="collectionType">Тип</param>
|
||||
/// <param name="description">Описание</param>
|
||||
public CollectionInfo(string name, CollectionType collectionType, string description)
|
||||
{
|
||||
Name = name;
|
||||
CollectionType = collectionType;
|
||||
Description = description;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Создание объекта из строки
|
||||
/// </summary>
|
||||
/// <param name="data">Строка</param>
|
||||
/// <returns>Объект или null</returns>
|
||||
public static CollectionInfo? GetCollectionInfo(string data)
|
||||
{
|
||||
string[] strs = data.Split(_separator, StringSplitOptions.RemoveEmptyEntries);
|
||||
if (strs.Length < 1 || strs.Length > 3)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new CollectionInfo(strs[0], (CollectionType)Enum.Parse(typeof(CollectionType), strs[1]), strs.Length > 2 ? strs[2] : string.Empty);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name + _separator + CollectionType + _separator + Description;
|
||||
}
|
||||
|
||||
public bool Equals(CollectionInfo? other)
|
||||
{
|
||||
return Name == other?.Name;
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
return Equals(obj as CollectionInfo);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return Name.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
public enum CollectionType
|
||||
{
|
||||
/// <summary>
|
||||
/// Неопределено
|
||||
/// </summary>
|
||||
None = 0,
|
||||
/// <summary>
|
||||
/// Массив
|
||||
/// </summary>
|
||||
Massive = 1,
|
||||
/// <summary>
|
||||
/// Список
|
||||
/// </summary>
|
||||
List = 2
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс описания действий для набора хранимых объектов
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Параметр: ограничение - ссылочный тип</typeparam>
|
||||
public interface ICollectionGenericObjects<T>
|
||||
where T : class
|
||||
{
|
||||
/// <summary>
|
||||
/// Кол-во объектов в коллекци
|
||||
/// </summary>
|
||||
int Count { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Установка максимального кол-ва объектов
|
||||
/// </summary>
|
||||
int MaxCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Добавление объекта в коллецию
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
int Insert(T obj, IEqualityComparer<T?>? comparer = null);
|
||||
|
||||
/// <summary>
|
||||
/// Добавление объекта в коллекцию
|
||||
/// </summary>
|
||||
/// <param name="obj">Добавляемый объект</param>
|
||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||
int Insert(T obj, int position, IEqualityComparer<T?>? comparer = null);
|
||||
|
||||
/// <summary>
|
||||
/// Удаление объекта из коллекции с конкретной позиции
|
||||
/// </summary>
|
||||
/// <param name="position">Позиция</param>
|
||||
/// <returns>true - удаление прошло удачно, false - удаление не удалось</returns>
|
||||
T? Remove(int position);
|
||||
|
||||
/// <summary>
|
||||
/// Получение объекта из позиции
|
||||
/// </summary>
|
||||
/// <param name="position">Позиция</param>
|
||||
/// <returns>Объект</returns>
|
||||
T? Get(int position);
|
||||
|
||||
/// <summary>
|
||||
/// Получение типа коллекции
|
||||
/// </summary>
|
||||
CollectionType GetCollectionType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Получение объектов коллекции по одному
|
||||
/// </summary>
|
||||
/// <returns>Поэлементый вывод элементов коллекции</returns>
|
||||
IEnumerable<T?> GetItems();
|
||||
|
||||
/// <summary>
|
||||
/// Сортировка коллекции
|
||||
/// </summary>
|
||||
/// <param name="comparer">Сравнитель объектов</param>
|
||||
void CollectionSort(IComparer<T?> comparer);
|
||||
}
|
||||
|
@ -1,103 +0,0 @@
|
||||
using ProjectAccordionBus.Exceptions;
|
||||
using ProjectAirbus.Exceptions;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
where T : class
|
||||
{
|
||||
private readonly List<T> _collection;
|
||||
|
||||
private int _maxCount;
|
||||
public int MaxCount {
|
||||
get =>_maxCount;
|
||||
set
|
||||
{
|
||||
if (value > 0)
|
||||
{
|
||||
_maxCount = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int Count => _collection.Count;
|
||||
|
||||
|
||||
public CollectionType GetCollectionType => CollectionType.List;
|
||||
|
||||
public ListGenericObjects()
|
||||
{
|
||||
_collection = new();
|
||||
}
|
||||
|
||||
public T Get(int position)
|
||||
{
|
||||
if (position >= Count || position < 0)
|
||||
{
|
||||
throw new PositionOutOfCollectionException(position);
|
||||
}
|
||||
return _collection[position];
|
||||
}
|
||||
|
||||
public int Insert(T obj, IEqualityComparer<T?>? comparer = null)
|
||||
{
|
||||
if (comparer != null)
|
||||
{
|
||||
if (_collection.Contains(obj, comparer))
|
||||
{
|
||||
throw new ObjectNotUniqueException();
|
||||
}
|
||||
}
|
||||
if (Count == _maxCount)
|
||||
{
|
||||
throw new CollectionOverflowException(Count);
|
||||
}
|
||||
_collection.Add(obj);
|
||||
return Count;
|
||||
}
|
||||
|
||||
public int Insert(T obj, int position, IEqualityComparer<T?>? comparer = null)
|
||||
{
|
||||
if (comparer != null)
|
||||
{
|
||||
if (_collection.Contains(obj, comparer))
|
||||
{
|
||||
throw new ObjectNotUniqueException();
|
||||
}
|
||||
}
|
||||
if (Count == _maxCount)
|
||||
{
|
||||
throw new CollectionOverflowException(Count);
|
||||
}
|
||||
if (position >= Count || position < 0)
|
||||
{
|
||||
throw new PositionOutOfCollectionException(position);
|
||||
}
|
||||
_collection.Insert(position, obj);
|
||||
return position;
|
||||
}
|
||||
|
||||
public T? Remove(int position)
|
||||
{
|
||||
if (position >= Count || position < 0)
|
||||
{
|
||||
throw new PositionOutOfCollectionException(position);
|
||||
}
|
||||
T obj = _collection[position];
|
||||
_collection.RemoveAt(position);
|
||||
return obj;
|
||||
}
|
||||
|
||||
public IEnumerable<T?> GetItems()
|
||||
{
|
||||
for (int i = 0; i < _collection.Count; ++i)
|
||||
{
|
||||
yield return _collection[i];
|
||||
}
|
||||
}
|
||||
|
||||
void ICollectionGenericObjects<T>.CollectionSort(IComparer<T?> comparer)
|
||||
{
|
||||
_collection.Sort(comparer);
|
||||
}
|
||||
}
|
@ -1,151 +0,0 @@
|
||||
using ProjectAccordionBus.Exceptions;
|
||||
using ProjectAirbus.Exceptions;
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
/// <summary>
|
||||
/// Параметризированный набор объектов
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Параметр: ограничение - ссылочный тип</typeparam>
|
||||
public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
where T : class
|
||||
{
|
||||
/// <summary>
|
||||
/// Массив объектов которые храним
|
||||
/// </summary>
|
||||
private T?[] _collection;
|
||||
|
||||
public int Count => _collection.Length;
|
||||
|
||||
public int MaxCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return _collection.Length;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value > 0)
|
||||
{
|
||||
if (_collection.Length > 0)
|
||||
{
|
||||
Array.Resize(ref _collection, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
_collection = new T?[value];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public CollectionType GetCollectionType => CollectionType.Massive;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public MassiveGenericObjects()
|
||||
{
|
||||
_collection = Array.Empty<T?>();
|
||||
}
|
||||
|
||||
public T? Get(int position)
|
||||
{
|
||||
if (position < 0 || position >= Count) throw new PositionOutOfCollectionException(position);
|
||||
|
||||
return _collection[position];
|
||||
}
|
||||
|
||||
public int Insert(T obj, IEqualityComparer<T?>? comparer = null)
|
||||
{
|
||||
if (comparer != null)
|
||||
{
|
||||
foreach (T? item in _collection)
|
||||
{
|
||||
if ((comparer as IEqualityComparer<DrawningBus>).Equals(obj as DrawningBus, item as DrawningBus))
|
||||
{
|
||||
throw new ObjectNotUniqueException();
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO вставка в свободное место набора
|
||||
for (int i = 0; i < Count; i++)
|
||||
{
|
||||
if (_collection[i] == null)
|
||||
{
|
||||
_collection[i] = obj;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
throw new CollectionOverflowException(Count);
|
||||
}
|
||||
|
||||
public int Insert(T obj, int position, IEqualityComparer<T?>? comparer = null)
|
||||
{
|
||||
if (position < 0 || position >= Count)
|
||||
{
|
||||
throw new PositionOutOfCollectionException(position);
|
||||
}
|
||||
|
||||
if (_collection[position] == null)
|
||||
{
|
||||
_collection[position] = obj;
|
||||
return position;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = position + 1; i < Count; i++)
|
||||
{
|
||||
if (_collection[i] == null)
|
||||
{
|
||||
_collection[i] = obj;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < position; i++)
|
||||
{
|
||||
if (_collection[i] == null)
|
||||
{
|
||||
_collection[i] = obj;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new CollectionOverflowException(Count);
|
||||
}
|
||||
|
||||
public T? Remove(int position)
|
||||
{
|
||||
if (position >= Count || position < 0)
|
||||
{
|
||||
throw new PositionOutOfCollectionException(position);
|
||||
}
|
||||
|
||||
T? obj = _collection[position];
|
||||
if (obj == null)
|
||||
{
|
||||
throw new ObjectNotFoundException(position);
|
||||
}
|
||||
_collection[position] = null;
|
||||
return obj;
|
||||
}
|
||||
|
||||
public IEnumerable<T?> GetItems()
|
||||
{
|
||||
for (int i = 0; i < _collection.Length; ++i)
|
||||
{
|
||||
yield return _collection[i];
|
||||
}
|
||||
}
|
||||
|
||||
void ICollectionGenericObjects<T>.CollectionSort(IComparer<T?> comparer)
|
||||
{
|
||||
Array.Sort(_collection, comparer);
|
||||
}
|
||||
}
|
||||
|
@ -1,224 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using ProjectAccordionBus.CollectionGenericObjects;
|
||||
using System.Text;
|
||||
using ProjectAccordionBus.Exceptions;
|
||||
|
||||
namespace ProjectAccordionBus.CollectionGenericObjects;
|
||||
|
||||
public class StorageCollection<T>
|
||||
where T : DrawningBus
|
||||
{
|
||||
/// <summary>
|
||||
/// Словарь (хранилище) с коллекциями
|
||||
/// </summary>
|
||||
readonly Dictionary<CollectionInfo, ICollectionGenericObjects<T>> _storages;
|
||||
|
||||
/// <summary>
|
||||
/// Возвращение списка названий коллекций
|
||||
/// </summary>
|
||||
public List<CollectionInfo> Keys => _storages.Keys.ToList();
|
||||
|
||||
/// <summary>
|
||||
/// Ключевое слово, с которого должен начинаться файл
|
||||
/// </summary>
|
||||
private readonly string _collectionKey = "CollectionsStorage";
|
||||
/// <summary>
|
||||
/// Разделитель для записи ключа и значения элемента словаря
|
||||
/// </summary>
|
||||
private readonly string _separatorForKeyValue = "|";
|
||||
/// <summary>
|
||||
/// Разделитель для записей коллекции данных в файл
|
||||
/// </summary>
|
||||
private readonly string _separatorItems = ";";
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public StorageCollection()
|
||||
{
|
||||
_storages = new Dictionary<CollectionInfo, ICollectionGenericObjects<T>>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавление коллекции в хранилище
|
||||
/// </summary>
|
||||
/// <param name="name">Название коллекции</param>
|
||||
/// <param name="collectionType">тип коллекции</param>
|
||||
public void AddCollection(string name, CollectionType collectionType)
|
||||
{
|
||||
CollectionInfo collectionInfo = new CollectionInfo(name, collectionType, string.Empty);
|
||||
|
||||
if (_storages.ContainsKey(collectionInfo) || collectionInfo.CollectionType == CollectionType.None)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (collectionInfo.CollectionType)
|
||||
{
|
||||
case CollectionType.Massive:
|
||||
_storages[collectionInfo] = new MassiveGenericObjects<T>();
|
||||
break;
|
||||
case CollectionType.List:
|
||||
_storages[collectionInfo] = new ListGenericObjects<T>();
|
||||
break;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Удаление коллекции
|
||||
/// </summary>
|
||||
/// <param name="name">Название коллекции</param>
|
||||
public void DelCollection(string name)
|
||||
{
|
||||
CollectionInfo collectionInfo = new CollectionInfo(name, CollectionType.None, string.Empty);
|
||||
if (_storages.ContainsKey(collectionInfo) && collectionInfo != null)
|
||||
{
|
||||
_storages.Remove(collectionInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Доступ к коллекции
|
||||
/// </summary>
|
||||
/// <param name="name">Название коллекции</param>
|
||||
/// <returns></returns>
|
||||
public ICollectionGenericObjects<T>? this[string name]
|
||||
{
|
||||
get
|
||||
{
|
||||
CollectionInfo collectionInfo = new CollectionInfo(name, CollectionType.None, string.Empty);
|
||||
if (_storages.ContainsKey(collectionInfo))
|
||||
{
|
||||
return _storages[collectionInfo];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveData(string filename)
|
||||
{
|
||||
if (_storages.Count == 0)
|
||||
{
|
||||
throw new Exception("В хранилище отсутствуют коллекции для сохранения");
|
||||
}
|
||||
|
||||
if (File.Exists(filename))
|
||||
{
|
||||
File.Delete(filename);
|
||||
}
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(filename))
|
||||
{
|
||||
writer.Write(_collectionKey);
|
||||
foreach (KeyValuePair<CollectionInfo, ICollectionGenericObjects<T>> value in _storages)
|
||||
{
|
||||
StringBuilder sb = new();
|
||||
|
||||
sb.Append(Environment.NewLine);
|
||||
// не сохраняем пустые коллекции
|
||||
if (value.Value.Count == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
sb.Append(value.Key);
|
||||
sb.Append(_separatorForKeyValue);
|
||||
sb.Append(value.Value.MaxCount);
|
||||
sb.Append(_separatorForKeyValue);
|
||||
|
||||
foreach (T? item in value.Value.GetItems())
|
||||
{
|
||||
string data = item?.GetDataForSave() ?? string.Empty;
|
||||
if (string.IsNullOrEmpty(data))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
sb.Append(data);
|
||||
sb.Append(_separatorItems);
|
||||
}
|
||||
|
||||
writer.Write(sb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Загрузка информации по автомобилям в хранилище из файла
|
||||
/// </summary>
|
||||
/// <param name="filename">Путь и имя файла</param>
|
||||
public void LoadData(string filename)
|
||||
{
|
||||
if (!File.Exists(filename))
|
||||
{
|
||||
throw new FileNotFoundException("Файл не существует");
|
||||
}
|
||||
|
||||
using (StreamReader fs = File.OpenText(filename))
|
||||
{
|
||||
string str = fs.ReadLine();
|
||||
|
||||
if (str == null || str.Length == 0)
|
||||
{
|
||||
throw new IOException("В файле нет данных");
|
||||
}
|
||||
|
||||
if (!str.StartsWith(_collectionKey))
|
||||
{
|
||||
throw new IOException("В файле неверные данные");
|
||||
}
|
||||
|
||||
_storages.Clear();
|
||||
string strs = "";
|
||||
while ((strs = fs.ReadLine()) != null)
|
||||
{
|
||||
string[] record = strs.Split(_separatorForKeyValue, StringSplitOptions.RemoveEmptyEntries);
|
||||
if (record.Length != 3)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
CollectionInfo? collectionInfo = CollectionInfo.GetCollectionInfo(record[0]) ??
|
||||
throw new Exception("Не удалось определить информацию коллекции:" + record[0]);
|
||||
ICollectionGenericObjects<T>? collection = StorageCollection<T>.CreateCollection(collectionInfo.CollectionType) ??
|
||||
throw new Exception("Не удалось определить тип коллекции: " + record[1]);
|
||||
collection.MaxCount = Convert.ToInt32(record[1]);
|
||||
|
||||
string[] set = record[2].Split(_separatorItems, StringSplitOptions.RemoveEmptyEntries);
|
||||
foreach (string elem in set)
|
||||
{
|
||||
if (elem?.CreateDrawningBus() is T airbus)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (collection.Insert(airbus) == -1)
|
||||
{
|
||||
throw new Exception("Объект не удалось добавить в коллекцию: " + record[3]);
|
||||
}
|
||||
}
|
||||
catch (CollectionOverflowException ex)
|
||||
{
|
||||
throw new Exception("Коллекция переполнена", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
_storages.Add(collectionInfo, collection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Создание коллекции по типа
|
||||
/// </summary>
|
||||
/// <param name="collectionType"></param>
|
||||
/// <returns></returns>
|
||||
private static ICollectionGenericObjects<T>? CreateCollection(CollectionType collectionType)
|
||||
{
|
||||
return collectionType switch
|
||||
{
|
||||
CollectionType.Massive => new MassiveGenericObjects<T>(),
|
||||
CollectionType.List => new ListGenericObjects<T>(),
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
|
||||
/// <summary>
|
||||
/// Направление перемещения
|
||||
/// </summary>
|
||||
public enum DirectionType
|
||||
{
|
||||
/// <summary>
|
||||
/// Неизвестное направление
|
||||
/// </summary>
|
||||
Unknow = -1,
|
||||
|
||||
/// <summary>
|
||||
/// Вверх
|
||||
/// </summary>
|
||||
Up = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Вниз
|
||||
/// </summary>
|
||||
Down = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Влево
|
||||
/// </summary>
|
||||
Left = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Вправо
|
||||
/// </summary>
|
||||
Right = 4
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
using ProjectAccordionBus.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
|
||||
public class DrawningAccordionBus : DrawningBus
|
||||
{
|
||||
public DrawningAccordionBus(int speed, double weight, Color bodyColor, Color additionalColor, bool compartment, bool entrance, bool windows) : base(110, 40)
|
||||
{
|
||||
EntityBus = new EntityAccordionBus(speed, weight, bodyColor, additionalColor, compartment, entrance, windows);
|
||||
}
|
||||
|
||||
public DrawningAccordionBus(EntityBus? entityBus)
|
||||
{
|
||||
if (entityBus != null)
|
||||
{
|
||||
EntityBus = entityBus;
|
||||
}
|
||||
}
|
||||
|
||||
public override void DrawTransport(Graphics g)
|
||||
{
|
||||
if (EntityBus == null || EntityBus is not EntityAccordionBus accordionBus || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Pen pen = new(Color.Black);
|
||||
Brush additionalBrush = new SolidBrush(accordionBus.AdditionalColor);
|
||||
|
||||
base.DrawTransport(g);
|
||||
|
||||
Brush brushBlue = new SolidBrush(Color.Blue);
|
||||
// отсек
|
||||
if (accordionBus.Compartment)
|
||||
{
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 60, _startPosY.Value, 50, 30);
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 50, _startPosY.Value + 5, 10, 20);
|
||||
|
||||
g.DrawRectangle(pen, _startPosX.Value + 60, _startPosY.Value, 50, 30);
|
||||
g.DrawRectangle(pen, _startPosX.Value + 50, _startPosY.Value + 5, 10, 20);
|
||||
|
||||
// колеса
|
||||
g.FillEllipse(additionalBrush, _startPosX.Value + 65, _startPosY.Value + 25, 10, 10);
|
||||
g.FillEllipse(additionalBrush, _startPosX.Value + 95, _startPosY.Value + 25, 10, 10);
|
||||
|
||||
g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 25, 10, 10);
|
||||
g.DrawEllipse(pen, _startPosX.Value + 95, _startPosY.Value + 25, 10, 10);
|
||||
|
||||
if (accordionBus.Entrance)
|
||||
{
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 78, _startPosY.Value + 10, 10, 20);
|
||||
|
||||
g.DrawRectangle(pen, _startPosX.Value + 78, _startPosY.Value + 10, 10, 20);
|
||||
}
|
||||
|
||||
if (accordionBus.Windows)
|
||||
{
|
||||
g.FillEllipse(brushBlue, _startPosX.Value + 65, _startPosY.Value + 5, 5, 10);
|
||||
g.FillEllipse(brushBlue, _startPosX.Value + 100, _startPosY.Value + 5, 5, 10);
|
||||
g.FillEllipse(brushBlue, _startPosX.Value + 90, _startPosY.Value + 5, 5, 10);
|
||||
|
||||
g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 5, 5, 10);
|
||||
g.DrawEllipse(pen, _startPosX.Value + 100, _startPosY.Value + 5, 5, 10);
|
||||
g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value + 5, 5, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,225 +0,0 @@
|
||||
using ProjectAccordionBus.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
public class DrawningBus
|
||||
{
|
||||
/// <summary>
|
||||
/// Класс-сущность
|
||||
/// </summary>
|
||||
public EntityBus? EntityBus { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ширина окна
|
||||
/// </summary>
|
||||
private int? _pictureWidth;
|
||||
|
||||
/// <summary>
|
||||
/// Высота окна
|
||||
/// </summary>
|
||||
private int? _pictureHeight;
|
||||
|
||||
/// <summary>
|
||||
/// Левая координата прорисовки транспорта
|
||||
/// </summary>
|
||||
protected int? _startPosX;
|
||||
|
||||
/// <summary>
|
||||
/// Верхняя координата прорисовки транспорта
|
||||
/// </summary>
|
||||
protected int? _startPosY;
|
||||
|
||||
/// <summary>
|
||||
/// Ширина прорисовки транспорта
|
||||
/// </summary>
|
||||
private readonly int _drawningBusWidth = 50;
|
||||
|
||||
/// <summary>
|
||||
/// Высота прорисовки транспорта
|
||||
/// </summary>
|
||||
private readonly int _drawningBusHeight = 35;
|
||||
|
||||
/// <summary>
|
||||
/// Координата X объекта
|
||||
/// </summary>
|
||||
public int? GetPosX => _startPosX;
|
||||
|
||||
/// <summary>
|
||||
/// Координата Y объекта
|
||||
/// </summary>
|
||||
public int? GetPosY => _startPosY;
|
||||
|
||||
/// <summary>
|
||||
/// Ширина объекта
|
||||
/// </summary>
|
||||
public int GetWidth => _drawningBusWidth;
|
||||
|
||||
/// <summary>
|
||||
/// Высота объекта
|
||||
/// </summary>
|
||||
public int GetHight => _drawningBusHeight;
|
||||
|
||||
// Пустой конструктор
|
||||
public DrawningBus()
|
||||
{
|
||||
_pictureWidth = null;
|
||||
_pictureHeight = null;
|
||||
_startPosX = null;
|
||||
_startPosY = null;
|
||||
}
|
||||
|
||||
// Конструктор
|
||||
public DrawningBus(int speed, double weight, Color bodyColor) : this()
|
||||
{
|
||||
EntityBus = new EntityBus(speed, weight, bodyColor);
|
||||
}
|
||||
|
||||
// Конструктор
|
||||
protected DrawningBus(int drawningBusWidth, int drawningBusHeight) : this()
|
||||
{
|
||||
_drawningBusWidth = drawningBusWidth;
|
||||
_drawningBusHeight = drawningBusHeight;
|
||||
}
|
||||
|
||||
public DrawningBus(EntityBus? entityBus)
|
||||
{
|
||||
if (entityBus != null)
|
||||
{
|
||||
EntityBus = entityBus;
|
||||
}
|
||||
}
|
||||
|
||||
public bool SetPictureSize(int width, int height)
|
||||
{
|
||||
if (_drawningBusWidth <= width && _drawningBusHeight <= height)
|
||||
{
|
||||
_pictureWidth = width;
|
||||
_pictureHeight = height;
|
||||
if (_startPosX.HasValue && _startPosY.HasValue)
|
||||
{
|
||||
if (_startPosX + _drawningBusWidth > width)
|
||||
{
|
||||
_startPosX = width - _drawningBusWidth;
|
||||
}
|
||||
if (_startPosY + _drawningBusHeight > height)
|
||||
{
|
||||
_startPosY = height - _drawningBusHeight;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void SetPosition(int x, int y)
|
||||
{
|
||||
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_startPosX = x;
|
||||
_startPosY = y;
|
||||
if (x < 0)
|
||||
{
|
||||
_startPosX = 0;
|
||||
}
|
||||
|
||||
if (y < 0)
|
||||
{
|
||||
_startPosY = 0;
|
||||
}
|
||||
|
||||
if (x + _drawningBusWidth > _pictureWidth)
|
||||
{
|
||||
_startPosX = _pictureWidth - _drawningBusWidth;
|
||||
}
|
||||
|
||||
if (y + _drawningBusHeight > _pictureHeight)
|
||||
{
|
||||
_startPosY = _pictureHeight - _drawningBusHeight;
|
||||
}
|
||||
}
|
||||
|
||||
public bool MoveTransport(DirectionType direction)
|
||||
{
|
||||
if (EntityBus == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
switch (direction)
|
||||
{
|
||||
//влево
|
||||
case DirectionType.Left:
|
||||
if (_startPosX.Value - EntityBus.Step > 0)
|
||||
{
|
||||
_startPosX -= (int)EntityBus.Step;
|
||||
}
|
||||
return true;
|
||||
//вверх
|
||||
case DirectionType.Up:
|
||||
if (_startPosY.Value - EntityBus.Step > 0)
|
||||
{
|
||||
_startPosY -= (int)EntityBus.Step;
|
||||
}
|
||||
return true;
|
||||
// вправо
|
||||
case DirectionType.Right:
|
||||
if (_startPosX.Value + _drawningBusWidth + EntityBus.Step < _pictureWidth.Value)
|
||||
{
|
||||
_startPosX += (int)EntityBus.Step;
|
||||
}
|
||||
return true;
|
||||
//вниз
|
||||
case DirectionType.Down:
|
||||
if (_startPosY.Value + _drawningBusHeight + EntityBus.Step < _pictureHeight.Value)
|
||||
{
|
||||
_startPosY += (int)EntityBus.Step;
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void DrawTransport(Graphics g)
|
||||
{
|
||||
if (EntityBus == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Pen pen = new(Color.Black);
|
||||
Brush bodyBrush = new SolidBrush(EntityBus.BodyColor);
|
||||
|
||||
// границы автобуса
|
||||
g.FillRectangle(bodyBrush, _startPosX.Value, _startPosY.Value, 50, 30);
|
||||
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value, 50, 30);
|
||||
|
||||
// окна
|
||||
Brush brushBlue = new SolidBrush(Color.Blue);
|
||||
g.FillEllipse(brushBlue, _startPosX.Value + 5, _startPosY.Value + 5, 5, 10);
|
||||
g.FillEllipse(brushBlue, _startPosX.Value + 40, _startPosY.Value + 5, 5, 10);
|
||||
g.FillEllipse(brushBlue, _startPosX.Value + 30, _startPosY.Value + 5, 5, 10);
|
||||
|
||||
g.DrawEllipse(pen, _startPosX.Value + 5, _startPosY.Value + 5, 5, 10);
|
||||
g.DrawEllipse(pen, _startPosX.Value + 40, _startPosY.Value + 5, 5, 10);
|
||||
g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value + 5, 5, 10);
|
||||
|
||||
// двери
|
||||
g.FillRectangle(bodyBrush, _startPosX.Value + 18, _startPosY.Value + 10, 10, 20);
|
||||
|
||||
g.DrawRectangle(pen, _startPosX.Value + 18, _startPosY.Value + 10, 10, 20);
|
||||
|
||||
// колеса
|
||||
g.FillEllipse(bodyBrush, _startPosX.Value + 5, _startPosY.Value + 25, 10, 10);
|
||||
g.FillEllipse(bodyBrush, _startPosX.Value + 35, _startPosY.Value + 25, 10, 10);
|
||||
|
||||
g.DrawEllipse(pen, _startPosX.Value + 5, _startPosY.Value + 25, 10, 10);
|
||||
g.DrawEllipse(pen, _startPosX.Value + 35, _startPosY.Value + 25, 10, 10);
|
||||
}
|
||||
}
|
||||
|
@ -1,33 +0,0 @@
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
|
||||
/// <summary>
|
||||
/// Сравнение по цвету, скорости, весу
|
||||
/// </summary>
|
||||
public class DrawningBusCompareByColor : IComparer<DrawningBus?>
|
||||
{
|
||||
public int Compare(DrawningBus? x, DrawningBus? y)
|
||||
{
|
||||
if (x == null || x.EntityBus == null)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (y == null || y.EntityBus == null)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
var bodycolorCompare = x.EntityBus.BodyColor.Name.CompareTo(y.EntityBus.BodyColor.Name);
|
||||
if (bodycolorCompare != 0)
|
||||
{
|
||||
return bodycolorCompare;
|
||||
}
|
||||
|
||||
var speedCompare = x.EntityBus.Speed.CompareTo(y.EntityBus.Speed);
|
||||
if (speedCompare != 0)
|
||||
{
|
||||
return speedCompare;
|
||||
}
|
||||
return x.EntityBus.Weight.CompareTo(y.EntityBus.Weight);
|
||||
}
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
|
||||
/// <summary>
|
||||
/// Сравнение по типу, скорости и весу
|
||||
/// </summary>
|
||||
public class DrawningBusCompareByType : IComparer<DrawningBus?>
|
||||
{
|
||||
public int Compare(DrawningBus? x, DrawningBus? y)
|
||||
{
|
||||
if (x == null && y == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (x == null || x.EntityBus == null)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (y == null || y.EntityBus == null)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (x.GetType().Name != y.GetType().Name)
|
||||
{
|
||||
return x.GetType().Name.CompareTo(y.GetType().Name);
|
||||
}
|
||||
|
||||
var speedCompare = x.EntityBus.Speed.CompareTo(y.EntityBus.Speed);
|
||||
if (speedCompare != 0)
|
||||
{
|
||||
return speedCompare;
|
||||
}
|
||||
|
||||
return x.EntityBus.Weight.CompareTo(y.EntityBus.Weight);
|
||||
}
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
using ProjectAccordionBus.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
|
||||
/// <summary>
|
||||
/// Реализация сравнения двух объектов класса-прорисовки
|
||||
/// </summary>
|
||||
public class DrawningBusEqutables : IEqualityComparer<DrawningBus?>
|
||||
{
|
||||
public bool Equals(DrawningBus? x, DrawningBus? y)
|
||||
{
|
||||
if (x == null || x.EntityBus == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (y == null || y.EntityBus == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (x.GetType().Name != y.GetType().Name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (x.EntityBus.Speed != y.EntityBus.Speed)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (x.EntityBus.Weight != y.EntityBus.Weight)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (x.EntityBus.BodyColor != y.EntityBus.BodyColor)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (x is DrawningAccordionBus && y is DrawningAccordionBus)
|
||||
{
|
||||
// TODO доделать логику сравнения дополнительных параметров
|
||||
EntityAccordionBus _x = (EntityAccordionBus)x.EntityBus;
|
||||
EntityAccordionBus _y = (EntityAccordionBus)y.EntityBus;
|
||||
|
||||
if (_x.Compartment != _y.Compartment)
|
||||
{
|
||||
if (_x.Entrance != _y.Entrance)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (_x.Windows != _y.Windows)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_x.AdditionalColor != _y.AdditionalColor)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int GetHashCode([DisallowNull] DrawningBus obj)
|
||||
{
|
||||
return obj.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
@ -1,53 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ProjectAccordionBus.Entities;
|
||||
|
||||
namespace ProjectAccordionBus.Drawnings;
|
||||
|
||||
public static class ExtentionDrawningBus
|
||||
{
|
||||
private static readonly string _separatorForObject = ":";
|
||||
|
||||
/// <summary>
|
||||
/// Создание объекта из строки
|
||||
/// </summary>
|
||||
/// <param name="info">Строка с данными для создания объекта</param>
|
||||
/// <returns>Объект</returns>
|
||||
public static DrawningBus? CreateDrawningBus(this string info)
|
||||
{
|
||||
string[] strs = info.Split(_separatorForObject);
|
||||
EntityBus? bus = EntityAccordionBus.CreateEntityAccordionBus(strs);
|
||||
if (bus != null)
|
||||
{
|
||||
return new DrawningAccordionBus(bus);
|
||||
}
|
||||
|
||||
bus = EntityBus.CreateEntityBus(strs);
|
||||
if (bus != null)
|
||||
{
|
||||
return new DrawningBus(bus);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение данных для сохранения в файл
|
||||
/// </summary>
|
||||
/// <param name="drawningBus">Сохраняемый объект</param>
|
||||
/// <returns>Строка с данными по объекту</returns>
|
||||
public static string GetDataForSave(this DrawningBus drawningBus)
|
||||
{
|
||||
string[]? array = drawningBus?.EntityBus?.GetStringRepresentation();
|
||||
|
||||
if (array == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return string.Join(_separatorForObject, array);
|
||||
}
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Reflection.Metadata.BlobBuilder;
|
||||
|
||||
namespace ProjectAccordionBus.Entities;
|
||||
|
||||
public class EntityAccordionBus : EntityBus
|
||||
{
|
||||
public Color AdditionalColor { get; private set; }
|
||||
|
||||
public void SetAdditionalColor(Color color)
|
||||
{
|
||||
AdditionalColor = color;
|
||||
}
|
||||
|
||||
public bool Compartment { get; private set; }
|
||||
|
||||
public bool Entrance { get; private set; }
|
||||
|
||||
public bool Windows { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Инициализация полей объекта-класса accordion bus
|
||||
/// </summary>
|
||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||
/// <param name="compartment">Признак наличия доп. отсека с гармошкой</param>
|
||||
/// <param name="entrance">Признак наличия входа у доп. отсека</param>
|
||||
/// <param name="windows">Признак наличия окон у доп. отсека</param>
|
||||
|
||||
public EntityAccordionBus(int Speed, double Weight, Color bodyColor, Color additionalColor, bool compartment, bool entrance, bool windows) : base(Speed, Weight, bodyColor)
|
||||
{
|
||||
AdditionalColor = additionalColor;
|
||||
Compartment = compartment; // отсек
|
||||
Entrance = entrance;
|
||||
Windows = windows;
|
||||
}
|
||||
|
||||
public override string[] GetStringRepresentation()
|
||||
{
|
||||
return new[] { nameof(EntityAccordionBus), Speed.ToString(), Weight.ToString(), BodyColor.Name,
|
||||
AdditionalColor.Name, Compartment.ToString(), Entrance.ToString(), Windows.ToString() };
|
||||
}
|
||||
|
||||
public static EntityAccordionBus? CreateEntityAccordionBus(string[] strs)
|
||||
{
|
||||
if (strs.Length != 8 || strs[0] != nameof(EntityAccordionBus))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new EntityAccordionBus(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]),
|
||||
Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[6]), Convert.ToBoolean(strs[7]));
|
||||
}
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace ProjectAccordionBus.Entities;
|
||||
public class EntityBus
|
||||
{
|
||||
public int Speed { get; private set; }
|
||||
|
||||
public double Weight { get; private set; }
|
||||
|
||||
public Color BodyColor { get; private set; }
|
||||
|
||||
public void SetBodyColor(Color color)
|
||||
{
|
||||
BodyColor = color;
|
||||
}
|
||||
public double Step => Speed * 50 / Weight;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор сущности
|
||||
/// </summary>
|
||||
/// <param name="speed">Скорость</param>
|
||||
/// <param name="weight">Вес автомобиля</param>
|
||||
/// <param name="bodyColor">Основной цвет</param>
|
||||
|
||||
public EntityBus(int speed, double weight, Color bodyColor)
|
||||
{
|
||||
Speed = speed;
|
||||
Weight = weight;
|
||||
BodyColor = bodyColor;
|
||||
}
|
||||
|
||||
public virtual string[] GetStringRepresentation()
|
||||
{
|
||||
return new[] { nameof(EntityBus), Speed.ToString(), Weight.ToString(), BodyColor.Name};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Создание объекта из массива строк
|
||||
/// </summary>
|
||||
/// <param name="strs"></param>
|
||||
/// <returns></returns>
|
||||
public static EntityBus? CreateEntityBus(string[] strs)
|
||||
{
|
||||
if (strs.Length != 4 || strs[0] != nameof(EntityBus))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new EntityBus(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]));
|
||||
}
|
||||
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.Exceptions;
|
||||
|
||||
[Serializable]
|
||||
internal class CollectionOverflowException : ApplicationException
|
||||
{
|
||||
public CollectionOverflowException(int count) : base("В коллекции превышено допустимое количество: " + count) { }
|
||||
public CollectionOverflowException() : base() { }
|
||||
public CollectionOverflowException(string message) : base(message) { }
|
||||
public CollectionOverflowException(string message, Exception exception) :
|
||||
base(message, exception)
|
||||
{ }
|
||||
protected CollectionOverflowException(SerializationInfo info,
|
||||
StreamingContext contex) : base(info, contex) { }
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.Exceptions;
|
||||
|
||||
[Serializable]
|
||||
internal class ObjectNotFoundException : ApplicationException
|
||||
{
|
||||
public ObjectNotFoundException(int i) : base("Не найден объект по позиции " + i) { }
|
||||
public ObjectNotFoundException() : base() { }
|
||||
public ObjectNotFoundException(string message) : base(message) { }
|
||||
public ObjectNotFoundException(string message, Exception exception) : base(message, exception) { }
|
||||
protected ObjectNotFoundException(SerializationInfo info, StreamingContext contex) : base(info, contex) { }
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace ProjectAirbus.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Класс, описывающий ошибку наличия такого же объекта в коллекции
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
internal class ObjectNotUniqueException : ApplicationException
|
||||
{
|
||||
public ObjectNotUniqueException(int i) : base("В коллекции есть такой же элемент на позиции: " + i) { }
|
||||
|
||||
public ObjectNotUniqueException() : base() { }
|
||||
|
||||
public ObjectNotUniqueException(string message) : base(message) { }
|
||||
|
||||
public ObjectNotUniqueException(string message, Exception exception) : base(message, exception) { }
|
||||
|
||||
protected ObjectNotUniqueException(SerializationInfo info, StreamingContext context) : base(info, context) { }
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.Exceptions;
|
||||
|
||||
[Serializable]
|
||||
internal class PositionOutOfCollectionException : ApplicationException
|
||||
{
|
||||
public PositionOutOfCollectionException(int i) : base("Выход за границы коллекции.Позиция " + i) { }
|
||||
public PositionOutOfCollectionException() : base() { }
|
||||
public PositionOutOfCollectionException(string message) : base(message) { }
|
||||
public PositionOutOfCollectionException(string message, Exception exception) : base(message, exception) { }
|
||||
protected PositionOutOfCollectionException(SerializationInfo info, StreamingContext contex) : base(info, contex) { }
|
||||
}
|
39
ProjectAccordionBus/ProjectAccordionBus/Form1.Designer.cs
generated
Normal file
39
ProjectAccordionBus/ProjectAccordionBus/Form1.Designer.cs
generated
Normal file
@ -0,0 +1,39 @@
|
||||
namespace ProjectAccordionBus
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Text = "Form1";
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
10
ProjectAccordionBus/ProjectAccordionBus/Form1.cs
Normal file
10
ProjectAccordionBus/ProjectAccordionBus/Form1.cs
Normal file
@ -0,0 +1,10 @@
|
||||
namespace ProjectAccordionBus
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,153 +0,0 @@
|
||||
namespace ProjectAccordionBus
|
||||
{
|
||||
partial class FormAccordionBus
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAccordionBus));
|
||||
pictureBoxAccordionBus = new PictureBox();
|
||||
buttonLeft = new Button();
|
||||
buttonDown = new Button();
|
||||
buttonUp = new Button();
|
||||
buttonRight = new Button();
|
||||
comboBoxStrategy = new ComboBox();
|
||||
buttonStrategyStep = new Button();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxAccordionBus).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// pictureBoxAccordionBus
|
||||
//
|
||||
pictureBoxAccordionBus.Dock = DockStyle.Fill;
|
||||
pictureBoxAccordionBus.Location = new Point(0, 0);
|
||||
pictureBoxAccordionBus.Name = "pictureBoxAccordionBus";
|
||||
pictureBoxAccordionBus.Size = new Size(728, 386);
|
||||
pictureBoxAccordionBus.TabIndex = 0;
|
||||
pictureBoxAccordionBus.TabStop = false;
|
||||
pictureBoxAccordionBus.Click += pictureBoxAccordionBus_Click;
|
||||
//
|
||||
// buttonLeft
|
||||
//
|
||||
buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||
buttonLeft.BackgroundImage = (Image)resources.GetObject("buttonLeft.BackgroundImage");
|
||||
buttonLeft.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonLeft.Location = new Point(597, 339);
|
||||
buttonLeft.Name = "buttonLeft";
|
||||
buttonLeft.Size = new Size(35, 35);
|
||||
buttonLeft.TabIndex = 2;
|
||||
buttonLeft.UseVisualStyleBackColor = true;
|
||||
buttonLeft.Click += ButtonMove_Click;
|
||||
//
|
||||
// buttonDown
|
||||
//
|
||||
buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||
buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage");
|
||||
buttonDown.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonDown.Location = new Point(638, 339);
|
||||
buttonDown.Name = "buttonDown";
|
||||
buttonDown.Size = new Size(35, 35);
|
||||
buttonDown.TabIndex = 3;
|
||||
buttonDown.UseVisualStyleBackColor = true;
|
||||
buttonDown.Click += ButtonMove_Click;
|
||||
//
|
||||
// buttonUp
|
||||
//
|
||||
buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||
buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage");
|
||||
buttonUp.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonUp.Location = new Point(638, 298);
|
||||
buttonUp.Name = "buttonUp";
|
||||
buttonUp.Size = new Size(35, 35);
|
||||
buttonUp.TabIndex = 4;
|
||||
buttonUp.UseVisualStyleBackColor = true;
|
||||
buttonUp.Click += ButtonMove_Click;
|
||||
//
|
||||
// buttonRight
|
||||
//
|
||||
buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||
buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage");
|
||||
buttonRight.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonRight.Location = new Point(679, 339);
|
||||
buttonRight.Name = "buttonRight";
|
||||
buttonRight.Size = new Size(35, 35);
|
||||
buttonRight.TabIndex = 5;
|
||||
buttonRight.UseVisualStyleBackColor = true;
|
||||
buttonRight.Click += ButtonMove_Click;
|
||||
//
|
||||
// comboBoxStrategy
|
||||
//
|
||||
comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboBoxStrategy.FormattingEnabled = true;
|
||||
comboBoxStrategy.Items.AddRange(new object[] { "К центру", "К краю" });
|
||||
comboBoxStrategy.Location = new Point(595, 12);
|
||||
comboBoxStrategy.Name = "comboBoxStrategy";
|
||||
comboBoxStrategy.Size = new Size(121, 23);
|
||||
comboBoxStrategy.TabIndex = 7;
|
||||
//
|
||||
// buttonStrategyStep
|
||||
//
|
||||
buttonStrategyStep.Location = new Point(641, 41);
|
||||
buttonStrategyStep.Name = "buttonStrategyStep";
|
||||
buttonStrategyStep.Size = new Size(75, 23);
|
||||
buttonStrategyStep.TabIndex = 8;
|
||||
buttonStrategyStep.Text = "Шаг";
|
||||
buttonStrategyStep.UseVisualStyleBackColor = true;
|
||||
buttonStrategyStep.Click += buttonStrategyStep_Click;
|
||||
//
|
||||
// FormAccordionBus
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(728, 386);
|
||||
Controls.Add(buttonStrategyStep);
|
||||
Controls.Add(comboBoxStrategy);
|
||||
Controls.Add(buttonRight);
|
||||
Controls.Add(buttonUp);
|
||||
Controls.Add(buttonDown);
|
||||
Controls.Add(buttonLeft);
|
||||
Controls.Add(pictureBoxAccordionBus);
|
||||
Name = "FormAccordionBus";
|
||||
Text = "Сочленённый автобус";
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxAccordionBus).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
private void pictureBoxAccordionBus_Click(object sender, EventArgs e)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private PictureBox pictureBoxAccordionBus;
|
||||
private Button buttonLeft;
|
||||
private Button buttonDown;
|
||||
private Button buttonUp;
|
||||
private Button buttonRight;
|
||||
private ComboBox comboBoxStrategy;
|
||||
private Button buttonStrategyStep;
|
||||
}
|
||||
}
|
@ -1,124 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using ProjectAccordionBus.Entities;
|
||||
using ProjectAccordionBus.MovementStrategy;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ProjectAccordionBus;
|
||||
public partial class FormAccordionBus : Form
|
||||
{
|
||||
|
||||
private DrawningBus? _drawningBus;
|
||||
|
||||
private AbstractStrategy? _strategy;
|
||||
|
||||
public DrawningBus SetBus
|
||||
{
|
||||
set
|
||||
{
|
||||
_drawningBus = value;
|
||||
_drawningBus.SetPictureSize(pictureBoxAccordionBus.Width, pictureBoxAccordionBus.Height);
|
||||
comboBoxStrategy.Enabled = true;
|
||||
_strategy = null;
|
||||
Draw();
|
||||
}
|
||||
}
|
||||
|
||||
public FormAccordionBus()
|
||||
{
|
||||
InitializeComponent();
|
||||
_strategy = null;
|
||||
}
|
||||
|
||||
private void Draw()
|
||||
{
|
||||
if (_drawningBus == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Bitmap bmp = new(pictureBoxAccordionBus.Width, pictureBoxAccordionBus.Height);
|
||||
Graphics gr = Graphics.FromImage(bmp);
|
||||
_drawningBus.DrawTransport(gr);
|
||||
pictureBoxAccordionBus.Image = bmp;
|
||||
}
|
||||
|
||||
private void ButtonMove_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_drawningBus == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string name = ((Button)sender)?.Name ?? string.Empty;
|
||||
bool result = false;
|
||||
switch (name)
|
||||
{
|
||||
case "buttonUp":
|
||||
result = _drawningBus.MoveTransport(DirectionType.Up);
|
||||
break;
|
||||
case "buttonDown":
|
||||
result = _drawningBus.MoveTransport(DirectionType.Down);
|
||||
break;
|
||||
case "buttonLeft":
|
||||
result = _drawningBus.MoveTransport(DirectionType.Left);
|
||||
break;
|
||||
case "buttonRight":
|
||||
result = _drawningBus.MoveTransport(DirectionType.Right);
|
||||
break;
|
||||
}
|
||||
|
||||
if (result)
|
||||
{
|
||||
Draw();
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonStrategyStep_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_drawningBus == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (comboBoxStrategy.Enabled)
|
||||
{
|
||||
_strategy = comboBoxStrategy.SelectedIndex switch
|
||||
{
|
||||
0 => new MoveToCenter(),
|
||||
1 => new MoveToBorder(),
|
||||
_ => null,
|
||||
};
|
||||
if (_strategy == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_strategy.SetData(new MoveableBus(_drawningBus), pictureBoxAccordionBus.Width, pictureBoxAccordionBus.Height);
|
||||
}
|
||||
|
||||
if (_strategy == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
comboBoxStrategy.Enabled = false;
|
||||
_strategy.MakeStep();
|
||||
Draw();
|
||||
|
||||
if (_strategy.GetStatus() == StrategyStatus.Finish)
|
||||
{
|
||||
comboBoxStrategy.Enabled = true;
|
||||
_strategy = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,864 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="buttonLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg
|
||||
JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy
|
||||
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAFoAWgDASIAAhEBAxEB/8QA
|
||||
HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
|
||||
MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
|
||||
V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
|
||||
x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
|
||||
BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
|
||||
YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
|
||||
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
|
||||
8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD26iiigAPStGs49K0aACiiigDOHSigdKKAA9K0azj0rRoAKKKK
|
||||
AM4dKKB0ooAD0rRrOPStGgAooooAzh0ooHSigAPStGs49K0aACiiigDOHSigdKKAA9K0azj0rRoAKKKK
|
||||
AM4dKKB0ooAD0rRrOPStGgAooooAzh0ooHSigAPStGs49K0aACiiigDOHSigdKKACiiigAyPWjI9a0aK
|
||||
AM0kY61pUVmgDHSgDSorOwPSkIGOlAACMdaXI9a0aKAM0kY61pUVmgDHSgDSorOwPSkIGOlAACMdaXI9
|
||||
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
|
||||
RRRQBnDpRRRQAUUUUAf/2Q==
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg
|
||||
JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy
|
||||
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAKAAoADASIAAhEBAxEB/8QA
|
||||
HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
|
||||
MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
|
||||
V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
|
||||
x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
|
||||
BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
|
||||
YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
|
||||
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
|
||||
8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3WiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKRn
|
||||
RThmAJ7E0ALRR2yDkHkGigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
|
||||
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopGdFOGYAnsTQAtFHbIOQeQaKACiiigAooooAKKK
|
||||
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
|
||||
TIDKp6t0FAAWAPLAZ6AnrUS5OVUfvCTvYj7v+RSL+8XAUGRuXYj7tOVEbcCowvyqQeooAWPgsq42KQFP
|
||||
86koAAGAAAOgFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
|
||||
RRRQAUUUUAFFFFABRRRQAUUUUAFFFJkBlU9W6CgALAHlgM9AT1qJcnKqP3hJ3sR93/IpF/eLgKDI3LsR
|
||||
92nKiNuBUYX5VIPUUALHwWVcbFICn+dSUAADAAAHQCigAooooAKKKKACiiigAooooAKKKKACiiigAooo
|
||||
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKOMgEgE9BmgBkpXy8MeW4GT0pm0h
|
||||
trNiQcq57+1LEqvHuZQzEndkdKRcZMTAMmSEJ7YoAcAr/MVZW6MAetPACjaoAA6ClxgYAAA4AooAKKKK
|
||||
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
|
||||
ACiiigAooo4yASAT0GaAGSlfLwx5bgZPSmbSG2s2JByrnv7UsSq8e5lDMSd2R0pFxkxMAyZIQntigBwC
|
||||
v8xVlbowB608AKNqgADoKXGBgAADgCigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKiu7u2sLOW8vLiK3toV3STSttVB7k1LXlH7QszxfDy
|
||||
zVGKrJqaK4H8Q8uQ4NAHQH4xfD4HH/CRpkelpP8A/EVCvxf+HZXL+IlLHkn7JP8A/EV8j0UAfXP/AAt/
|
||||
4enJbxGC3qLWcZ/8coX4w/D4EZ8RJgdAtnP/APEV8jUUAfXv/C4/h7/0MY/8A5//AIij/hcfw9/6GMf+
|
||||
Ac//AMRXyFRQB9e/8Lj+Hv8A0MY/8A5//iKP+Fx/D3/oYx/4Bz//ABFfIVFAH17/AMLj+Hv/AEMY/wDA
|
||||
Of8A+Io/4XH8Pf8AoYx/4Bz/APxFfIVFAH17/wALj+Hv/Qxj/wAA5/8A4ij/AIXH8Pf+hjH/AIBz/wDx
|
||||
FfIVFAH17/wuP4e/9DGP/AOf/wCIo/4XH8Pf+hjH/gHP/wDEV8hUUAfXv/C4/h7/ANDGP/AOf/4ij/hc
|
||||
fw9/6GMf+Ak//wARXyFRQB916bqVjrGnRX+m3cV1aS/clhbIOP654x1zVqvEf2bZ5H0jxFbFiYo5oHVf
|
||||
RmDgn/x0V7dQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFIThc4J74FAC
|
||||
np2z2BNRIqurFwC+fm9RRGiSR7mUMW5JIoRcncGOVYgH1FAB5eS24HcOjA43U5UOQW2gLwqr2p9FABRR
|
||||
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
|
||||
RQAUUUUAFeS/tE/8k80//sKp/wCipa9aryX9on/knmn/APYVT/0VLQB8yUUUUAFFFFABRRRQAUUUUAFF
|
||||
FFABRRRQAUUUUAFFFFAH0F+zX/x4+Jv9+2/lJXudeGfs1/8AHj4m/wB+2/lJXudABRRRQAUUUUAFFFFA
|
||||
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUARSJzvXP8AtKDjNSAAKAowB0FLRQAUUUUAFFFF
|
||||
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
|
||||
ABRRRQAV5L+0T/yTzT/+wqn/AKKlr1qvJf2if+Seaf8A9hVP/RUtAHzJRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAfQX7Nf/Hj4m/37b+Ule514Z+zX/wAePib/AH7b+Ule50AFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeS/tE/8AJPNP/wCw
|
||||
qn/oqWvWq8l/aJ/5J5p//YVT/wBFS0AfMlFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB9Bfs
|
||||
1/8AHj4m/wB+2/lJXudeGfs1/wDHj4m/37b+Ule50AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
|
||||
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANYkDAxljgZpoUtzucDs27r
|
||||
+FOcErlcblORmmc424k2nqu3+tAD0JYHIAIOCR3/AMg06mqCASxyWOT7f5FOoAKKKKACiiigAooooAKK
|
||||
KKACiiigAooooAKKKKACiiigAooooAKKKKACvJf2if8Aknmn/wDYVT/0VLXrVeS/tE/8k80//sKp/wCi
|
||||
paAPmSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+gv2a/8Ajx8Tf79t/KSvc68M/Zr/AOPH
|
||||
xN/v238pK9zoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
|
||||
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
|
||||
KACiiigAooooAK8l/aJ/5J5p/wD2FU/9FS161Xkv7RP/ACTzT/8AsKp/6KloA+ZKKKKACiiigAooooAK
|
||||
KKKACiiigAooooAKKKKACiiigD6C/Zr/AOPHxN/v238pK9zrwz9mv/jx8Tf79t/KSvc6ACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvJf2if+Sea
|
||||
f/2FU/8ARUtetV5L+0T/AMk80/8A7Cqf+ipaAPmSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
|
||||
oA+gv2a/+PHxN/v238pK9zrwz9mv/jx8Tf79t/KSvc6ACiiigAooooAKKKKACiiigAooooAKKKKACiii
|
||||
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
|
||||
gAooooAKKKazhTg5JPIUCgAZsHABZjyAKFcNkAEFeCCOlRF/mZh8ob5dxH3MU5NpZQmSq5y394mgCWii
|
||||
igAooooAKKKKACiiigAooooAK8l/aJ/5J5p//YVT/wBFS161Xkv7RP8AyTzT/wDsKp/6KloA+ZKKKKAC
|
||||
iiigAqQRZALMFz0zQIWIzlVz0BPWpsHJdVy/C4x92gCuylG2kcim1LIRtVeCw6kd6ioAKKKKACiiigAo
|
||||
oooAKKKKAPoL9mv/AI8fE3+/bfykr3OvDP2a/wDjx8Tf79t/KSvc6ACiiigAooooAKKKKACiims4U4OS
|
||||
TyFAoAGbBwAWY8gChXDZABBXggjpURf5mYfKG+XcR9zFOTaWUJkquct/eJoAlooooAKKKKACiiigAooo
|
||||
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACjtmims4X
|
||||
gAliMgAdaAGtKoj3ghsjIApGLJIwyFD4w5PTikXgNIoJJ/1iEU6PqwXJj7ZHT2oAEI34QkoowTnqakoo
|
||||
oAKKKKACiiigAooooAKKKKACiiigAryX9on/AJJ5p/8A2FU/9FS161Xkv7RP/JPNP/7Cqf8AoqWgD5ko
|
||||
oooAcqljgDJpwjPls54xTo0OVZiF7rk9af8AMWz0kHBB7igBSP8AloilyemB0qKUYIHcDkj1pJMB/kyP
|
||||
UZqOgAooooAKKKKACiiigAooooAKKKKAPoL9mv8A48fE3+/bfykr3OvDP2a/+PHxN/v238pK9zoAKKKK
|
||||
ACiiigAo7ZoprOF4AJYjIAHWgBrSqI94IbIyAKRiySMMhQ+MOT04pF4DSKCSf9YhFOj6sFyY+2R09qAB
|
||||
CN+EJKKME56mpKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
|
||||
ACiiigAooooAKKKKACiiigAooppdVOCSSeQAOaABnVTg5JPOAKYHUOzFhtfG1vXFIrBXZyxKtxuP8Psa
|
||||
k2Yk3A4B+8uOtAETt8zSochAASD156VPTdnzZLM2DkAnpTqACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CvJf2if+Seaf/wBhVP8A0VLXrVeS/tE/8k80/wD7Cqf+ipaAPmSpBE5GQOvIGetCxNwcDnoCetOkBJ8x
|
||||
cjHBH92gBZUZ33oCyn0HSlcZjIPLIBk/0qNpAxB2jd396GkLKFACr6CgCOiiigAooooAKKKKACiiigAo
|
||||
oooAKKKKAPoL9mv/AI8fE3+/bfykr3OvDP2a/wDjx8Tf79t/KSvc6ACiiigAooppdVOCSSeQAOaABnVT
|
||||
g5JPOAKYHUOzFhtfG1vXFIrBXZyxKtxuP8Psak2Yk3A4B+8uOtAETt8zSochAASD156VPTdnzZLM2DkA
|
||||
npTqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKiVikjCQgFuQ3rUtIyh12t07e1ADBteViMFdu0n1P/6qk6DAGAOAKRQ23DEEjuB1
|
||||
paACiiigAooooAKKKKACiiigAooooAKKKKACiiigAryb9oj/AJJ7p3/YWT/0VLXrNeS/tE/8k80//sKp
|
||||
/wCipaAPmqVGaTcoJU8ggUSswbAJ3bdrYpsb7RtbJU9ajoAKKKKACiiigAooooAKKKKACiiigAooooAK
|
||||
KKKAPoL9mv8A48fE3+/bfykr3OvDP2a/+PHxN/v238pK9zoAKKKKAColYpIwkIBbkN61LSModdrdO3tQ
|
||||
AwbXlYjBXbtJ9T/+qpOgwBgDgCkUNtwxBI7gdaWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
|
||||
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
|
||||
KKACiiigAooooAKKKKACiiigAryX9on/AJJ5p/8A2FU/9FS161Xkv7RP/JPNP/7Cqf8AoqWgD5kooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKAPoL9mv/AI8fE3+/bfykr3OvDP2a/wDjx8Tf79t/KSvc
|
||||
6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
|
||||
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
|
||||
KACvJf2if+Seaf8A9hVP/RUtetV5L+0T/wAk80//ALCqf+ipaAPmSiiigAooooAKKKKACiiigAooooAK
|
||||
KKKACiiigAooooA+gv2a/wDjx8Tf79t/KSvc68M/Zr/48fE3+/bfykr3OgAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAphk54AwDjLHGfpT6ijyAp2k7V2kD+Ej/GgB4b
|
||||
J2spVhzjPWnVHkmVQeq5JH90HtUlABRRRQAV5L+0T/yTzT/+wqn/AKKlr1qvJf2if+Seaf8A9hVP/RUt
|
||||
AHzJRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBIqFhknCg9aUxdQCdwHRhinIcIDzwTn2z0NJGArg
|
||||
5BIPOOwoA98/Zr/48fE3+/bfykr3OvDP2bP+PHxN/v238pK9zoAKKKKACiiigAooooAKKKKACiiigAoo
|
||||
ooAKKKKACmGTngDAOMscZ+lPqKPICnaTtXaQP4SP8aAHhsnaylWHOM9adUeSZVB6rkkf3Qe1SUAFFFFA
|
||||
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
|
||||
BRRRQAUUUUAFIUVjkjn1BpaKAEACjCgAegpaKKACiiigAryX9on/AJJ5p/8A2FU/9FS161Xkv7RP/JPN
|
||||
P/7Cqf8AoqWgD5kooooAKKKKACiiigAooooAKKKKACiiigAooooAVWKnIOD7U5nZhgnj0FMooA+gv2a/
|
||||
+PHxN/v238pK9zrwz9mv/jx8Tf79t/KSvc6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigApCisck
|
||||
c+oNLRQAgAUYUAD0FLRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
|
||||
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5L+0T/wAk80//ALCqf+ipa9ar
|
||||
yX9on/knmn/9hVP/AEVLQB8yUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH0F+zX/wAePib/
|
||||
AH7b+Ule514Z+zX/AMePib/ftv5SV7nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
|
||||
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
|
||||
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5L+0T/AMk80/8A7Cqf+ipa9aryX9on/knmn/8AYVT/ANFS
|
||||
0AfMlFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB9Bfs1/wDHj4m/37b+Ule514Z+zX/x4+Jv
|
||||
9+2/lJXudABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
|
||||
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
|
||||
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
|
||||
9W/yT4XfC238G2q6nqaJNrsq+mVtlP8ACv8Aterf5PpXOcmgA5zk0UUUAFFFFABRRRQAUUUUAFFFFABR
|
||||
RSE4XOCe+BQAp6ds9gTUSKrqxcAvn5vUURokke5lDFuSSKEXJ3BjlWIB9RQAeXktuB3DowON1OVDkFto
|
||||
C8Kq9qfRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAc
|
||||
N8SPhtZePNO82Py7fWoEP2e4IwHH9x/b9RXyhqemXujalPp+oWz291bvskjccg/55B79RX3RXDfEj4b2
|
||||
XjzTfNj2W+swJi3uCMBx/cf2/kaAPkOirup6Ze6NqU+n6hbvb3Vu+ySNxyD/AJ5B/EVSoAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACpY5NmVPKkYNRUUAT7Viw
|
||||
+7d3UY61BTtzbSueDUtraz3t1Fa2sLzTysEjjjXczsegAFACWtrPe3UVrawvNPK4SOONdzOx6ACvqX4X
|
||||
fC2Dwbarqepqk2uSr6ZW2U/wr/terf5K/C74W2/g21XU9TRJtclX6rbKf4V/2vVv8n0nnOTQAc5yaKKK
|
||||
ACiiigAooooAKKKKACiiigAooooAKKKKAIpE53rn/aUHGakAAUBRgDoKWigAooooAKKKKACiiigAoooo
|
||||
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDhviR8NrLx5p3mx+Xb6zA
|
||||
h+z3BGA4/uP7fqK+UNT0y90fUZ9P1C2e3urdtkkcg5B/z0P5V90Vw3xI+G1l4807zY9lvrUCHyLjGA4/
|
||||
uP7fyoA+Q6Ku6npl7o2pT6fqFu9vdW77JI5ByD/nkHuORVKgAooooAKKKKACiiigAooooAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAKKKKACiiigAooqe1tZ726itbWF5p5nCRxxrlnY8AAUAFraz3t1Fa2sLzTz
|
||||
OEjjjXczseAAK+pfhd8LoPBtqmp6miTa5Mn1W2BH3V/2vVv8lPhd8Lbfwbarqepok2uSr6ZW2U/wr/te
|
||||
rf5PpXOcmgA5zk0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
|
||||
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcN8SPhtZePNO8
|
||||
2Py7fWYEP2e4xgOP7j+36ivlDU9MvdG1KfT9Qt3t7q3fZJHIOQf89D3HIr7orhviR8NrLx5p3mx+Xb61
|
||||
Ah+z3BGA4/uP7fqKAPkOirup6Ze6NqU+n6hbPb3Vu+ySNxyD/nkHv1FUqACiiigAooooAKKKKACiiigA
|
||||
ooooAKKKKACiiigAooooAKKKKACiiigAooqa1tZ726itbWF5p5XCRxxruZ2PQAUAFraz3t1Fa2sLzTyu
|
||||
EjjjXczsegAr6l+F3wtt/Btqup6miTa7KvplbZT/AAr/ALXq3+SfC74WweDbVdT1NUm1yVfTK2yn+Ff9
|
||||
r1b/ACfSuc5NABznJooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAaxIGBjLHAzTQpbnc4HZt3X8Kc4JXK43KcjNM5xtxJtPVdv9aAHoSwOQAQc
|
||||
Ejv/AJBp1NUEAljkscn2/wAinUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcN8SP
|
||||
hvZePNN82PZb6zAmLe4IwHH9x/b+Rr5Q1PTL3RtSn0/ULd7e6t32SRuOQf8APIP4ivuiuG+JHw2svHmn
|
||||
ebH5dvrMCH7PcEYDj+4/t+ooA+Q6Ku6npl7o+oz6fqFs9vdW7bJI5ByD/nofyqlQAUUUUAFFFFABRRRQ
|
||||
AUUUUAFFFFABRRRQAUUUUAFFFFABRRU9raz3t1Fa2sLzTzOEjjjXczseAAKAC1tZ726itbWF5p5WCRxx
|
||||
ruZ2PQACvqX4XfC238G2q6nqaJNrkq/VbZT/AAr/ALXq3+SfC74XQeDbVNT1NEm1yZPqtsCPur/terf5
|
||||
PpPOcmgA5zk0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
|
||||
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
|
||||
FFFFAHDfEj4bWXjzTvNj2W+tQIfIuMYDj+4/t/KvlDU9MvdG1KfT9Qt3t7q3fZJHIOQf88g9xyK+6K4b
|
||||
4kfDay8ead5sfl2+swIfs9xjAcf3H9v1FAHyHRV3U9MvdG1KfT9Qt3t7q3fZJHIOQf8APQ9xyKpUAFFF
|
||||
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFTWtrPe3UVrawvNPK4SOONdzOx6ACgBbW1nvbqK1tYXmnmcJH
|
||||
HGuWdjwABX1J8Lvhbb+DbVdT1NEm1yVfTK2yn+Ff9r1b/JPhd8Lbfwbarqepok2uyr6ZW2U/wr/terf5
|
||||
PpXOcmgA5zk0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
|
||||
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
|
||||
FFFFABRRRQAUUUUAcN8SPhtZePNO82Py7fWoEP2e4IwHH9x/b9RXyhqemXujalPp+oWz291bvskjccg/
|
||||
55B79RX3RXDfEj4b2XjzTfNj2W+swJi3uCMBx/cf2/kaAPkOirup6Ze6NqU+n6hbvb3Vu+ySNxyD/nkH
|
||||
8RVKgAooooAKKKKACiiigAooooAKKKntbWe9uorW1heaeVgkcca7mdj0AAoAS1tZ726itbWF5p5XCRxx
|
||||
ruZ2PQAV9S/C74WweDbVdT1NUm1yVfTK2yn+Ff8Aa9W/yV+F3wtt/Btqup6miTa5Kv1W2U/wr/terf5P
|
||||
pPOcmgA5zk0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU1nCnBySeQoFAAzYOACz
|
||||
HkAUK4bIAIK8EEdKiL/MzD5Q3y7iPuYpybSyhMlVzlv7xNAEtFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
|
||||
FFFFAHDfEj4bWXjzTvNj8u31mBD9nuCMBx/cf2/UV8oanpl7o+oz6fqFs9vdW7bJI5ByD/nofyr7orhv
|
||||
iR8NrLx5p3mx7LfWoEPkXGMBx/cf2/lQB8h1IIsgFmC56Zq5qOkX2kalcafqEDW11A22SKTg5/r7Hv1F
|
||||
Q4OS6rl+Fxj7tAFdlKNtI5FNqWQjaq8Fh1I71FQAUUUUAFFFT2trPe3UVrawvNPM4SOONcs7HgACgAtb
|
||||
We9uorW1heaeZwkcca7mdjwABX1L8LvhdB4NtU1PU0SbXJk+q2wI+6v+16t/kp8Lvhbb+DbVdT1NEm1y
|
||||
VfTK2yn+Ff8Aa9W/yfSuc5NABznJooooAKKKKACiiigAooooAKKKKACiims4U4OSTyFAoAGbBwAWY8gC
|
||||
hXDZABBXggjpURf5mYfKG+XcR9zFOTaWUJkquct/eJoAlooooAKKKKACiiigAooooAKKKKACiiigAooo
|
||||
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACjtmims4XgAliMgAdaAGtKoj3
|
||||
ghsjIApGLJIwyFD4w5PTikXgNIoJJ/1iEU6PqwXJj7ZHT2oAEI34QkoowTnqakoooAKKKKACiiigAooo
|
||||
oAKKKKACiiigAooooAKKKKACiiigDh/iP8OLLx1p3nw+Xb61Ah+z3BGA4/uP7fqK+UdW0280fUptO1C3
|
||||
e3vLdiksb9Qf/wBWOa+5q4b4kfDay8ead5sfl2+tQIfs9wRgOP7j+36igD5Doq7qemXujalPp+oWz291
|
||||
bvskjccg/wCeQe/UVSoAKKKmtbWe9uorW1heaeVwkcca7mdj0AFABa2s97dRWtrC808rhI4413M7HoAK
|
||||
+pfhd8Lbfwbarqepok2uyr6ZW2U/wr/terf5J8LvhbB4NtV1PU1SbXJV9MrbKf4V/wBr1b/J9K5zk0AH
|
||||
OcmiiigAooooAKKKKACiiigAooooAKO2aKazheACWIyAB1oAa0qiPeCGyMgCkYskjDIUPjDk9OKReA0i
|
||||
gkn/AFiEU6PqwXJj7ZHT2oAEI34QkoowTnqakoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
|
||||
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiml1U4JJJ5AA5oAGdVODkk84ApgdQ7MW
|
||||
G18bW9cUisFdnLEq3G4/w+xqTZiTcDgH7y460ARO3zNKhyEABIPXnpU9N2fNkszYOQCelOoAKKKKACii
|
||||
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOG+JHw3svHmm+bHst9ZgTFvcEYDj+4/t/I1
|
||||
8oanpl7o2pT6fqFu9vdW77JI3HIP+eQfxFfdFcb47+G+j+PIo3une01CEYjvIlDHb/dYfxCgD5DtbWe9
|
||||
uorW1heaeVgkcca7mdj0AAr6l+F3wtt/Btqup6miTa5Kv1W2U/wr/terf5N3wJ8KdG8DTverM+oaiRtW
|
||||
5ljCiJT2VecE+td5znJoAOc5NFFFABRRRQAUUUUAFFFFABRRRQAUUU0uqnBJJPIAHNAAzqpwcknnAFMD
|
||||
qHZiw2vja3rikVgrs5YlW43H+H2NSbMSbgcA/eXHWgCJ2+ZpUOQgAJB689Knpuz5slmbByAT0p1ABRRR
|
||||
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
|
||||
QAUUUUAFRKxSRhIQC3Ib1qWkZQ67W6dvagBg2vKxGCu3aT6n/wDVUnQYAwBwBSKG24YgkdwOtLQAUUUU
|
||||
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
|
||||
AFFFFABRRRQAVErFJGEhALchvWpaRlDrtbp29qAGDa8rEYK7dpPqf/1VJ0GAMAcAUihtuGIJHcDrS0AF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUwyc8A
|
||||
YBxljjP0p9RR5AU7Sdq7SB/CR/jQA8Nk7WUqw5xnrTqjyTKoPVckj+6D2qSgAooooAKKKKACiiigAooo
|
||||
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAphk
|
||||
54AwDjLHGfpT6ijyAp2k7V2kD+Ej/GgB4bJ2spVhzjPWnVHkmVQeq5JH90HtUlABRRRQAUUUUAFFFFAB
|
||||
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
|
||||
SFFY5I59QaWigBAAowoAHoKWiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
|
||||
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApCisckc+oNLRQAgAUYUAD0FLRRQAUUUUAFFF
|
||||
FABRRRQAUUUUAFFFFABRRRQB/9k=
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonUp.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg
|
||||
JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy
|
||||
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAKAAoADASIAAhEBAxEB/8QA
|
||||
HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
|
||||
MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
|
||||
V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
|
||||
x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
|
||||
BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
|
||||
YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
|
||||
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
|
||||
8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3WiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKRn
|
||||
RThmAJ7E0ALRR2yDkHkGigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
|
||||
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopGdFOGYAnsTQAtFHbIOQeQaKACiiigAooooAKKK
|
||||
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
|
||||
TIDKp6t0FABkAgFgCegJ61EuTlVH7wk72I+7/kUi/vFwFBkbl2I+7TgiNuBUEL8qkHqKAFj4LKuNikBT
|
||||
/OpKAABgAADoBRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
|
||||
UUUUAFFFFABRRRQAUUUUAFFFFABRRSZAZVPVugoAMgEAsAT0BPWolycqo/eEnexH3f8AIpF/eLgKDI3L
|
||||
sR92nBEbcCoIX5VIPUUALHwWVcbFICn+dSUAADAAAHQCigAooooAKKKKACiiigAooooAKKKKACiiigAo
|
||||
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKOMgEgE9BmgBkpXy8MeW4GT0pm
|
||||
0htrNiQcq57+1LEqvHuZQzEndkdKRevlsAyZIQntigBwCv8AMVZW6MAetPAAG1QAB0FAGBgAADgUtABR
|
||||
RSgE9BQAlFKVI6j9KSgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
|
||||
iigAooooAKKKKACiiigAooo4yASAT0GaAGSlfLwx5bgZPSmbSG2s2JByrnv7UsSq8e5lDMSd2R0pF6+W
|
||||
wDJkhCe2KAHAK/zFWVujAHrTwABtUAAdBQBgYAAA4FLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFIThc4J74FACnp2z2BNRIqurFwC+
|
||||
fm9RRGiSR7mUMW5JIoRcncGOVYgH1FAB5eS24HcOjA43U5UOQW2gLwqr2p9FABRRXD/Ef4kWXgLTfLj2
|
||||
XGszpmC3J+4P77+38zQBJ8QPiRp3gOzVWQXeqTDMNoGxgf3nPZa+eNa+L3jfWpmZtbmsoyflisf3IX8R
|
||||
8x/EmuT1TVL3WdSn1DULl7i6nYvJI55J/wAPQdMcVRoA7XSfix420iYPH4gu7kd0vG89T/31kivffhx8
|
||||
VrDxyv2G6jSy1lFyYQ3yTAdSmf1U18m1Pa3U9jdRXVrM8NxE4eOSNsMjDoQaAPu7nODRXm3wt+KVv4zt
|
||||
V0zUmSHXIk5HAW5AH3l/2vUf5HpPOcGgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAKKKQnC5wT3wKAFPTtnsCaiRVdWLgF8/N6iiNEkj3MoYtySRQi5O4McqxAP
|
||||
qKADy8ltwO4dGBxupyocgttAXhVXtT6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
|
||||
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIpE53rn/aUHGakAAUBRgDoKWigAoorh
|
||||
viR8SLLwHpvlx7LjWZ1zb25OQg/vv7fzoAX4j/Eiy8B6b5cey41mdT9ntychB/ff2/nXyhqmqXus6nca
|
||||
hqFy9xdTsXkkc8k/4eg6Y4o1TVL3WdSuNQ1C4e4urhi8kjnkn+g7AenAqjQAUUUUAFFFFAE9rdT2N1Fd
|
||||
Wszw3ETh45I2wyMOhBr6l+FvxSt/GdqumakyQ65EnI4C3IA+8v8Ateo/yPlOp7W6nsbqK6tZnguImDxy
|
||||
RthkYdCCKAPu7nODRXm3wt+KVv4ztV0zUmjh1yJOegW5AH3l/wBr1H+R6TznBoAKKKKACiiigAooooAK
|
||||
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIpE53rn/AGlBxmpAAFAUYA6ClooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiuG+JHxIsvAem+XHsuNZnUm3tychB/ff2/nQAvxI+JFl4D03y49lxrM6k
|
||||
29uTkIP77+36mvlDVNUvdZ1K41HULl7i6nYvJI55J/w7AdAOKNU1S91nUrjUNQuXuLqd98kjnkn+g9B0
|
||||
xwKo0AFFFFABRRRQAUUUUAFFFFAE9rdXFjdxXVrM8NxC4eOSNsMjDoQa+pfhb8UrfxnarpmpMkOuQpyO
|
||||
AtyAPvL/ALXqP8j5Tqe0urixu4bq1mkguIXDxyxttZGHQgigD7u5zg0V5t8LvilB4ztV0zUmSHXIU57C
|
||||
5UD7y/7XqK9J5zg0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
|
||||
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
|
||||
AFFFFABRRRQAUUUUAFFFFABRRXD/ABH+JFl4D03y49lxrM6n7Pbk5CD++/t/OgA+I/xIsvAWm+XHsuNZ
|
||||
nTMFuT9wf339v5mvlDVNUvdZ1KfUNQuXuLqdi8kjnkn/AA9B0xxRqmqXus6ncahqFy9xdTsXkkc8k/4e
|
||||
g6Y4qjQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBPa3U9jdRXVrM8NxE4eOSNsMjDoQa+pfhb8Urfxna
|
||||
rpmpMkOuRJyOAtyAPvL/ALXqP8j5Tqe1up7G6iurWZ4biJw8ckbYZGHQg0Afd3OcGivNvhb8Urfxnarp
|
||||
mpMkOuRJyOAtyAPvL/teo/yPSec4NABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
|
||||
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADWJAwMZY4GaaFLDO5wOzbuv4U5wSuVxuU5
|
||||
GaZzjbiTaeq7f60APQlgcgAg4JHf/INOpFBAJY5LHJ9v8iloAKKKKACiiigAooooAKKKKACiiigAoooo
|
||||
AKKKKACiiigAooooAKKK4f4kfEiy8B6b5cey41mdSbe3JyEH99/b9TQAnxI+JFl4D03y49lxrM65t7cn
|
||||
IQf339v518o6pql7rOpXGoahcPcXVwxeSRzyT/QdgPTgUapql7rOpXGo6hcvcXU7F5JHPJP+HYDoBxVG
|
||||
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJ7W6nsbqK6tZnguImDxyRthkYdCCK+pvhb8U
|
||||
YPGlqNN1Fki1yBMkDhbhR/Evv6ivlKrFneXOn3kN5ZzvBcQuHjljbDIw6EGgD7torzn4X/FC28bWa6ff
|
||||
skGuwp86DhbgD+NPf1FejUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
|
||||
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
|
||||
QAUUUUAFFFcP8R/iRZeAtN8uPZcazOmYLcn7g/vv7fzNACfEj4kWXgPTfLj2XGszqTb25OQg/vv7fzr5
|
||||
R1TVL3WdSuNQ1C5e4up33ySOeSf6D0HTHAo1TVL3WdSn1DULl7i6nYvJI55J/wAPQdMcVRoAKKKKACii
|
||||
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKALFneXOn3kN5ZzvBcQuHjljbDIw6EGvqf4X/
|
||||
ABQtvG1mun37JBrsKfOg4W4A/jT39RXyhVizvLnT7yG8s53guIXDxyxthkYdCDQB920V5z8L/ihbeNrN
|
||||
dPv2SDXYU+dBwtwB/Gnv6ivRqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
|
||||
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
|
||||
oorhviR8SLLwHpvlx7LjWZ1zb25OQg/vv7fzoAX4j/Eiy8B6b5cey41mdT9ntychB/ff2/nXyhqmqXus
|
||||
6ncahqFy9xdTsXkkc8k/4eg6Y4o1TVL3WdSuNQ1C4e4urhi8kjnkn+g7AenAqjQAUUUUAFFFFABRRRQA
|
||||
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBYs7y50+8hvLOd4LiFw8csbYZGHQg19T/
|
||||
AAv+KFt42s10+/ZINdhT50HC3AH8ae/qK+UKsWd5c6feQ3lnO8FxC4eOWNsMjDoQaAPu2ivOfhf8ULbx
|
||||
tZrp9+yQa7CnzoOFuAP409/UV6NQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRTWcKcHJJ5CgUADNg4ALMeQ
|
||||
BQrhsgAgrwQR0qIv8zMDt3fKWI+5inJtLKEyVXOW/vE0AS0UUUAFFFcN8SPiRZeA9N8uPZcazOpNvbk5
|
||||
CD++/t/OgBfiR8SLLwHpvlx7LjWZ1Jt7cnIQf339v1NfKGqape6zqVxqOoXL3F1OxeSRzyT/AIdgOgHF
|
||||
Gqape6zqVxqGoXL3F1O++SRzyT/Qeg6Y4FUaACiiigAooooAKKKKACiiigAooooAKkEWQCzBc9M0CFiM
|
||||
5Vc9AT1qbBJ3quX4XGPu0AV2Uo21hgim1LIRtVcgsM5I71FQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
|
||||
AUUUUAWLO8udPvIbyzneC4hcPHLG2GRh0INfU/wv+KFt42s10+/ZINdhT50HC3AH8ae/qK+UKsWd5c6f
|
||||
eQ3lnO8FxC4eOWNsMjDoQaAPu2ivOfhf8ULbxtZrp9+yQa7CnzoOFuAP409/UV6IzhTgglj0UDmgAZsH
|
||||
ABZjyAKFcNkAEFeCCOlRF/mZgdu75SxH3MU5NpZQmSq5y394mgCWiiigAooooAKKKKACiiigAooooAKK
|
||||
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKO2aKazheACWIyAB1o
|
||||
Aa0qiPeCGyMgCkYskjDIUPjDk9OKReA0igkn/WIRTo+CwXPl9sjpQAIRvwhJRRgnPU1JRRQAUUVw/wAR
|
||||
/iRZeA9N8uPZcazOp+z25OQg/vv7fzoAPiP8SLLwFpvlx7LjWZ0zBbk/cH99/b+Zr5Q1TVL3WdSn1DUL
|
||||
l7i6nYvJI55J/wAPQdMcUapql7rOp3GoahcvcXU7F5JHPJP+HoOmOKo0AFFFFABRRRQAUUUUAFFFFABR
|
||||
RRQA5VLHAGTThGfLZzxjtTo0OVZiF7rk9af8xbPSQcEHuKAFI/5aIpcnpgdKilGCB3A5I9aSTAf5Mj1G
|
||||
ajoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAsWd5c6feQ3lnNJBcQuHjljbDKw6E
|
||||
GvqT4Y/FCDxra/2fetHb69GvzjotwoH309/UV8p1Ys7y50+8hvLOaSC4hcPHLG2GVh0INAH3Sn+swhJR
|
||||
RgnPU1JXnXwv+KNt42s10+/aODXIUy6DhbgD+NPf1Fei0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
|
||||
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRTS6qcEkk8gAUADOqnBySeeBTA6
|
||||
h2YsNr42t64pFYK7OWJVuNx/h9jUmzEm4HAP3lx1oAidvmaVDkIACQevPSp6bsy2SzMAcgE9KdQAUUVw
|
||||
/wASPiRZeA9N8uPZcazOpNvbk5CD++/t+poAT4kfEiy8B6b5cey41mdc29uTkIP77+386+UdU1S91nUr
|
||||
jUNQuHuLq4YvJI55J/oOwHpwKNU1S91nUrjUdQuXuLqdi8kjnkn/AA7AdAOKo0AFFFFABRRRQAUUUUAF
|
||||
FFFABRRRQAVIInIzgcjOM8mhYm4OBz0BPWnSAk+YuRjqP7tACyozvvQFlPoOlK4zGQeWQDJ/pUbSBiG2
|
||||
jd39DQ0hZQoAVfQUAR0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFizv
|
||||
LnT7yG8s53guIXDxyxthkYdCDX1P8L/ihbeNrNdPv2SDXYU+dBwtwB/Gnv6ivlCrFneXOn3kN5ZzvBcQ
|
||||
uHjljbDIw6EGgD7torzn4X/FC28bWa6ffskGuwp86DhbgD+NPf1FejUAFFFFABRRRQAUUUUAFFFFABRR
|
||||
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFRKxSRhIQC3Ib1qWkZQ67W6d
|
||||
vagBg2vKxGCu3aT6n/8AVUnQYAwBwBSKG24YgkdwOtLQAUUVw/xH+JFl4C03y49lxrM6ZgtyfuD++/t/
|
||||
M0AJ8SPiRZeA9N8uPZcazOpNvbk5CD++/t/OvlHVNUvdZ1K41DULl7i6nffJI55J/oPQdMcCjVNUvdZ1
|
||||
KfUNQuXuLqdi8kjnkn/D0HTHFUaACiiigAooooAKKKKACiiigAooooAKcu3d82ce1NooAmlRmk3KCVPI
|
||||
IFErMGwCd23a2KbG+0bWyVPWo6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
|
||||
AooooAKKKKACiiigCxZ3lzp95DeWc7wXELh45Y2wyMOhBr6n+F/xQtvG1mun37JBrsKfOg4W4A/jT39R
|
||||
XyhVizvLnT7yG8s53guIXDxyxthkYdCDQB920V5z8L/ihbeNrNdPv2SDXYU+dBwtwB/Gnv6ivRqACiii
|
||||
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiu
|
||||
G+JHxIsvAem+XHsuNZnXNvbk5CD++/t/OgBfiP8AEiy8B6b5cey41mdT9ntychB/ff2/nXyhqmqXus6n
|
||||
cahqFy9xdTsXkkc8k/4eg6Y4o1TVL3WdSuNQ1C4e4urhi8kjnkn+g7AenAqjQAUUUUAFFFFABRRRQAUU
|
||||
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
|
||||
UUAFFFFABRRRQAUUUUAWLO8udPvIbyzneC4hcPHLG2GRh0INfU/wv+KFt42s10+/ZINdhT50HC3AH8ae
|
||||
/qK+UKsWd5c6feQ3lnO8FxC4eOWNsMjDoQaAPu2ivOfhf8ULbxtZrp9+yQa7CnzoOFuAP409/UV6NQAU
|
||||
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFKoywFAHE/
|
||||
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
|
||||
AKKevrs9fxr5E+Dn/JWdB/66Sf8Aop6+uz1/GgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
|
||||
ACiiigAooooAKKKOMgEgE9BmgBkpXy8MeW4GT0pm0htrNiQcq57+1LEqvHuZQzEndkdKRevlsAyZIQnt
|
||||
igBwCv8AMVZW6MAetPAAG1QAB0FAGBgAADgUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
|
||||
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXyp8d/wDkqt//ANcIP/RYr6rr5U+O/wDyVW//AOuE
|
||||
H/osUAea0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAd18HP8AkrOg/wDXST/0
|
||||
U9fXZ6/jXyJ8HP8AkrOg/wDXST/0U9fXZ6/jQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
|
||||
BRRRQAUUUhOFzgnvgUAKenbPYE1Eiq6sXAL5+b1FEaJJHuZQxbkkihFydwY5ViAfUUAHl5Lbgdw6MDjd
|
||||
TlQ5BbaAvCqvan0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
|
||||
AFFFFABRRRQAUUUUAFFFFABXyp8d/wDkqt//ANcIP/RYr6rr5U+O/wDyVW//AOuEH/osUAea0UUUAFFF
|
||||
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAd18HP8AkrOg/wDXST/0U9fXZ6/jXyJ8HP8A
|
||||
krOg/wDXST/0U9fXZ6/jQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUARSJzv
|
||||
XP8AtKDjNSAAKAowB0FLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
|
||||
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXyp8d/+Sq3/wD1wg/9FivquvlT47/8lVv/APrhB/6LFAHm
|
||||
tFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHdfBz/krOg/9dJP/RT19dnr+NfI
|
||||
nwc/5KzoP/XST/0U9fXZ6/jQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
|
||||
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
|
||||
FFABRRRQAUUUUAFfKnx3/wCSq3//AFwg/wDRYr6rr5U+O/8AyVW//wCuEH/osUAea0UUUAFFFFABRRRQ
|
||||
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAd18HP+Ss6D/wBdJP8A0U9fXZ6/jXyJ8HP+Ss6D/wBd
|
||||
JP8A0U9fXZ6/jQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
|
||||
UUUAFFFFABRRRQAUUUUAFFFFADWJAwMZY4GaaFLDO5wOzbuv4U5wSuVxuU5GaZzjbiTaeq7f60APQlgc
|
||||
gAg4JHf/ACDTqRQQCWOSxyfb/IpaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvl
|
||||
T47/APJVb/8A64Qf+ixX1XXyp8d/+Sq3/wD1wg/9FigDzWiiigAooooAKKKKACiiigAooooAKKKKACii
|
||||
igAooooAKKKKACiiigDuvg5/yVnQf+ukn/op6+uz1/GvkT4Of8lZ0H/rpJ/6Kevrs9fxoAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
|
||||
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvlT47/8AJVb/AP64Qf8A
|
||||
osV9V18qfHf/AJKrf/8AXCD/ANFigDzWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
|
||||
iiigDuvg5/yVnQf+ukn/AKKevrs9fxr5E+Dn/JWdB/66Sf8Aop6+uz1/GgAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
|
||||
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+VPjv8A8lVv/wDrhB/6LFfVdfKnx3/5
|
||||
Krf/APXCD/0WKAPNaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAO6+Dn/JWdB/
|
||||
66Sf+inr67PX8a+RPg5/yVnQf+ukn/op6+uz1/GgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
|
||||
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
|
||||
KazhTg5JPIUCgAZsHABZjyAKFcNkAEFeCCOlRF/mZgdu75SxH3MU5NpZQmSq5y394mgCWiiigAooooAK
|
||||
KKKACiiigAr5U+O//JVb/wD64Qf+ixX1XXyp8d/+Sq3/AP1wg/8ARYoA81ooooAKKKKACiiigAqQRZAL
|
||||
MFz0zQIWIzlVz0BPWpsEneq5fhcY+7QBXZSjbWGCKbUshG1VyCwzkjvUVABRRRQAUUUUAFFFFABRRRQA
|
||||
UUUUAd18HP8AkrOg/wDXST/0U9fXZ6/jXyJ8HP8AkrOg/wDXST/0U9fXZ6/jQAUUUUAFFFFABRRTWcKc
|
||||
HJJ5CgUADNg4ALMeQBQrhsgAgrwQR0qIv8zMDt3fKWI+5inJtLKEyVXOW/vE0AS0UUUAFFFFABRRRQAU
|
||||
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR2zRTW
|
||||
cLwASxGQAOtADWlUR7wQ2RkAUjFkkYZCh8YcnpxSLwGkUEk/6xCKdHwWC58vtkdKABCN+EJKKME56mpK
|
||||
KKACiiigAooooAKKKKACiiigAr5U+O//ACVW/wD+uEH/AKLFfVdfKnx3/wCSq3//AFwg/wDRYoA81ooo
|
||||
oAKKKKAHKpY4AyacIz5bOeMdqdGhyrMQvdcnrT/mLZ6SDgg9xQApH/LRFLk9MDpUUowQO4HJHrSSYD/J
|
||||
keozUdABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHdfBz/krOg/8AXST/ANFPX12ev418ifBz/krOg/8A
|
||||
XST/ANFPX12ev40AFFFFABR2zRTWcLwASxGQAOtADWlUR7wQ2RkAUjFkkYZCh8YcnpxSLwGkUEk/6xCK
|
||||
dHwWC58vtkdKABCN+EJKKME56mpKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
|
||||
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooppdVOCSSeQAKABnVTg5JPPApgdQ7MWG18bW9cUisF
|
||||
dnLEq3G4/wAPsak2Yk3A4B+8uOtAETt8zSochAASD156VPTdmWyWZgDkAnpTqACiiigAooooAKKKKACi
|
||||
iigAooooAK+a/wBofSJLXxnZ6qEIt760Vd3/AE0QkMP++SlfSlc/4z8I2Pjbw7NpN6fLbO+3nCgmKQdD
|
||||
9OxFAHxVRXS+K/BGveDb0watZMsZbEdygLQyf7rf0ODXNUAFSCJyM4HIzjPJpFXPOV+hanSEFhIpx2x6
|
||||
UAOlRnfegLKfQdKVxmMg8sgGT/So2kDENtG7v6GhpCyhQAq+goAjooooAKKKKACiiigAooooAKKKKACi
|
||||
iigAoorc8OeE9b8WXotdHsJbhs4eQLiOP3ZugoA7H4FaTLqHxMtLtVJh0+KSeRvqpQD83r6o71yfw+8D
|
||||
WvgTw/8AY43We+nIe7uAPvsOgH+yueK6ygAooppdVOCSSeQAKABnVTg5JPPApgdQ7MWG18bW9cUisFdn
|
||||
LEq3G4/w+xqTZiTcDgH7y460ARO3zNKhyEABIPXnpU9N2ZbJZmAOQCelOoAKKKKACiiigAooooAKKKKA
|
||||
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqJWKSMJCAW
|
||||
5DetS0jKHXa3Tt7UAMG15WIwV27SfU//AKqk6DAGAOAKRQ23DEEjuB1paACiiigAooooAKKKKACiiigA
|
||||
ooooAKKKKACiiigBGAkjaORVdGGCrDIP4Vlt4W8NM2W8OaQT6myjP9K1aKAMk+FPDR/5lvR/xsY/8KX/
|
||||
AIRbw3/0Lmkf+AMf+FatFAGT/wAIp4a/6FvR/wDwBj/wo/4RTw1/0Lej/wDgDH/hWtRQBk/8Ip4a/wCh
|
||||
b0f/AMAY/wDCj/hFPDX/AELej/8AgDH/AIVrUUAZP/CKeGv+hb0f/wAAY/8ACj/hFPDX/Qt6P/4Ax/4V
|
||||
rUUAZP8Awinhr/oW9H/8AY/8KP8AhFPDX/Qt6P8A+AMf+Fa1FAGT/wAIp4a/6FvR/wDwBj/wo/4RTw1/
|
||||
0Lej/wDgDH/hWtRQBk/8Ip4a/wChb0f/AMAY/wDCj/hFPDX/AELej/8AgDH/AIVrUUAZP/CKeGv+hb0f
|
||||
/wAAY/8ACj/hFPDX/Qt6P/4Ax/4VrUUAZP8Awivhr/oW9Hz/ANeMf+FakSRwQrDBGkUSjCpGoVV/AdKd
|
||||
RQAUUUUAFRKxSRhIQC3Ib1qWkZQ67W6dvagBg2vKxGCu3aT6n/8AVUnQYAwBwBSKG24YgkdwOtLQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
|
||||
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABTDJzwBgH
|
||||
GWOM/Sn1FHwFO0nau0gfwkf40APDZO1lKsOcZ606o8kyqD1XJI/ug9qkoAKKKKACiiigAooooAKKKKAC
|
||||
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKYZOeA
|
||||
MA4yxxn6U+oo+Ap2k7V2kD+Ej/GgB4bJ2spVhzjPWnVHkmVQeq5JH90HtUlABRRRQAUUUUAFFFFABRRR
|
||||
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSFF
|
||||
Y5I59QaWigBAAowoAHoKWiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
|
||||
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApCisckc+oNLRQAgAUYUAD0FLRRQAUUUUAFFFFAB
|
||||
RRRQAUUUUAFFFFABRRRQB//Z
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AIC5fO97/w8OhQ6IW63aKAAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -1,378 +0,0 @@
|
||||
namespace ProjectAccordionBus
|
||||
{
|
||||
partial class FormBusCollection
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
groupBoxTools = new GroupBox();
|
||||
panelCompanyTools = new Panel();
|
||||
buttonSortByColor = new Button();
|
||||
buttonSortByType = new Button();
|
||||
buttonDeleteBus = new Button();
|
||||
maskedTextBox = new MaskedTextBox();
|
||||
buttonRefresh = new Button();
|
||||
buttonGoToCheck = new Button();
|
||||
buttonAddBus = new Button();
|
||||
panelStorage = new Panel();
|
||||
buttonCollectionDel = new Button();
|
||||
listBoxCollection = new ListBox();
|
||||
buttonCollectionAdd = new Button();
|
||||
buttonCreateCompany = new Button();
|
||||
radioButtonList = new RadioButton();
|
||||
radioButtonMassive = new RadioButton();
|
||||
textBoxCollectionName = new TextBox();
|
||||
comboBoxSelectorCompany = new ComboBox();
|
||||
labelCollectionName = new Label();
|
||||
pictureBox = new PictureBox();
|
||||
menuStrip = new MenuStrip();
|
||||
файлToolStripMenuItem = new ToolStripMenuItem();
|
||||
saveToolStripMenuItem = new ToolStripMenuItem();
|
||||
loadToolStripMenuItem = new ToolStripMenuItem();
|
||||
saveFileDialog = new SaveFileDialog();
|
||||
openFileDialog = new OpenFileDialog();
|
||||
groupBoxTools.SuspendLayout();
|
||||
panelCompanyTools.SuspendLayout();
|
||||
panelStorage.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit();
|
||||
menuStrip.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// groupBoxTools
|
||||
//
|
||||
groupBoxTools.Controls.Add(panelCompanyTools);
|
||||
groupBoxTools.Controls.Add(panelStorage);
|
||||
groupBoxTools.Dock = DockStyle.Right;
|
||||
groupBoxTools.Location = new Point(625, 24);
|
||||
groupBoxTools.Name = "groupBoxTools";
|
||||
groupBoxTools.Size = new Size(175, 511);
|
||||
groupBoxTools.TabIndex = 0;
|
||||
groupBoxTools.TabStop = false;
|
||||
groupBoxTools.Text = "Инструменты";
|
||||
//
|
||||
// panelCompanyTools
|
||||
//
|
||||
panelCompanyTools.Controls.Add(buttonSortByColor);
|
||||
panelCompanyTools.Controls.Add(buttonSortByType);
|
||||
panelCompanyTools.Controls.Add(buttonDeleteBus);
|
||||
panelCompanyTools.Controls.Add(maskedTextBox);
|
||||
panelCompanyTools.Controls.Add(buttonRefresh);
|
||||
panelCompanyTools.Controls.Add(buttonGoToCheck);
|
||||
panelCompanyTools.Controls.Add(buttonAddBus);
|
||||
panelCompanyTools.Dock = DockStyle.Bottom;
|
||||
panelCompanyTools.Enabled = false;
|
||||
panelCompanyTools.Location = new Point(3, 304);
|
||||
panelCompanyTools.Name = "panelCompanyTools";
|
||||
panelCompanyTools.Size = new Size(169, 204);
|
||||
panelCompanyTools.TabIndex = 10;
|
||||
//
|
||||
// buttonSortByColor
|
||||
//
|
||||
buttonSortByColor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonSortByColor.Location = new Point(6, 180);
|
||||
buttonSortByColor.Name = "buttonSortByColor";
|
||||
buttonSortByColor.Size = new Size(160, 21);
|
||||
buttonSortByColor.TabIndex = 9;
|
||||
buttonSortByColor.Text = "Сортировка по цвету";
|
||||
buttonSortByColor.UseVisualStyleBackColor = true;
|
||||
buttonSortByColor.Click += buttonSortByColor_Click;
|
||||
//
|
||||
// buttonSortByType
|
||||
//
|
||||
buttonSortByType.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonSortByType.Location = new Point(6, 157);
|
||||
buttonSortByType.Name = "buttonSortByType";
|
||||
buttonSortByType.Size = new Size(160, 21);
|
||||
buttonSortByType.TabIndex = 8;
|
||||
buttonSortByType.Text = "Сортировка по типу";
|
||||
buttonSortByType.UseVisualStyleBackColor = true;
|
||||
buttonSortByType.Click += buttonSortByType_Click;
|
||||
//
|
||||
// buttonDeleteBus
|
||||
//
|
||||
buttonDeleteBus.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonDeleteBus.Location = new Point(6, 72);
|
||||
buttonDeleteBus.Name = "buttonDeleteBus";
|
||||
buttonDeleteBus.Size = new Size(160, 23);
|
||||
buttonDeleteBus.TabIndex = 5;
|
||||
buttonDeleteBus.Text = "Удаление автобуса";
|
||||
buttonDeleteBus.UseVisualStyleBackColor = true;
|
||||
buttonDeleteBus.Click += buttonDeleteBus_Click;
|
||||
//
|
||||
// maskedTextBox
|
||||
//
|
||||
maskedTextBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
maskedTextBox.Location = new Point(6, 43);
|
||||
maskedTextBox.Mask = "00";
|
||||
maskedTextBox.Name = "maskedTextBox";
|
||||
maskedTextBox.Size = new Size(160, 23);
|
||||
maskedTextBox.TabIndex = 5;
|
||||
maskedTextBox.ValidatingType = typeof(int);
|
||||
//
|
||||
// buttonRefresh
|
||||
//
|
||||
buttonRefresh.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonRefresh.Location = new Point(6, 130);
|
||||
buttonRefresh.Name = "buttonRefresh";
|
||||
buttonRefresh.Size = new Size(160, 21);
|
||||
buttonRefresh.TabIndex = 7;
|
||||
buttonRefresh.Text = "Обновить";
|
||||
buttonRefresh.UseVisualStyleBackColor = true;
|
||||
buttonRefresh.Click += buttonRefresh_Click;
|
||||
//
|
||||
// buttonGoToCheck
|
||||
//
|
||||
buttonGoToCheck.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonGoToCheck.Location = new Point(6, 101);
|
||||
buttonGoToCheck.Name = "buttonGoToCheck";
|
||||
buttonGoToCheck.Size = new Size(160, 23);
|
||||
buttonGoToCheck.TabIndex = 6;
|
||||
buttonGoToCheck.Text = "Передать на тесты";
|
||||
buttonGoToCheck.UseVisualStyleBackColor = true;
|
||||
buttonGoToCheck.Click += buttonGoToCheck_Click;
|
||||
//
|
||||
// buttonAddBus
|
||||
//
|
||||
buttonAddBus.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonAddBus.Location = new Point(6, 0);
|
||||
buttonAddBus.Name = "buttonAddBus";
|
||||
buttonAddBus.Size = new Size(160, 37);
|
||||
buttonAddBus.TabIndex = 2;
|
||||
buttonAddBus.Text = "Добавление автобуса";
|
||||
buttonAddBus.UseVisualStyleBackColor = true;
|
||||
buttonAddBus.Click += buttonAddBus_Click;
|
||||
//
|
||||
// panelStorage
|
||||
//
|
||||
panelStorage.Controls.Add(buttonCollectionDel);
|
||||
panelStorage.Controls.Add(listBoxCollection);
|
||||
panelStorage.Controls.Add(buttonCollectionAdd);
|
||||
panelStorage.Controls.Add(buttonCreateCompany);
|
||||
panelStorage.Controls.Add(radioButtonList);
|
||||
panelStorage.Controls.Add(radioButtonMassive);
|
||||
panelStorage.Controls.Add(textBoxCollectionName);
|
||||
panelStorage.Controls.Add(comboBoxSelectorCompany);
|
||||
panelStorage.Controls.Add(labelCollectionName);
|
||||
panelStorage.Dock = DockStyle.Top;
|
||||
panelStorage.Location = new Point(3, 19);
|
||||
panelStorage.Name = "panelStorage";
|
||||
panelStorage.Size = new Size(169, 282);
|
||||
panelStorage.TabIndex = 8;
|
||||
//
|
||||
// buttonCollectionDel
|
||||
//
|
||||
buttonCollectionDel.Location = new Point(6, 198);
|
||||
buttonCollectionDel.Name = "buttonCollectionDel";
|
||||
buttonCollectionDel.Size = new Size(160, 23);
|
||||
buttonCollectionDel.TabIndex = 6;
|
||||
buttonCollectionDel.Text = "Удалить коллекцию";
|
||||
buttonCollectionDel.UseVisualStyleBackColor = true;
|
||||
buttonCollectionDel.Click += buttonCollectionDel_Click;
|
||||
//
|
||||
// listBoxCollection
|
||||
//
|
||||
listBoxCollection.FormattingEnabled = true;
|
||||
listBoxCollection.ItemHeight = 15;
|
||||
listBoxCollection.Location = new Point(6, 113);
|
||||
listBoxCollection.Name = "listBoxCollection";
|
||||
listBoxCollection.Size = new Size(160, 79);
|
||||
listBoxCollection.TabIndex = 5;
|
||||
//
|
||||
// buttonCollectionAdd
|
||||
//
|
||||
buttonCollectionAdd.Location = new Point(6, 81);
|
||||
buttonCollectionAdd.Name = "buttonCollectionAdd";
|
||||
buttonCollectionAdd.Size = new Size(163, 23);
|
||||
buttonCollectionAdd.TabIndex = 4;
|
||||
buttonCollectionAdd.Text = "Добавить коллекцию";
|
||||
buttonCollectionAdd.UseVisualStyleBackColor = true;
|
||||
buttonCollectionAdd.Click += buttonCollectionAdd_Click;
|
||||
//
|
||||
// buttonCreateCompany
|
||||
//
|
||||
buttonCreateCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
buttonCreateCompany.Location = new Point(6, 256);
|
||||
buttonCreateCompany.Name = "buttonCreateCompany";
|
||||
buttonCreateCompany.Size = new Size(160, 23);
|
||||
buttonCreateCompany.TabIndex = 9;
|
||||
buttonCreateCompany.Text = "Создать компанию";
|
||||
buttonCreateCompany.UseVisualStyleBackColor = true;
|
||||
buttonCreateCompany.Click += buttonCreateCompany_Click;
|
||||
//
|
||||
// radioButtonList
|
||||
//
|
||||
radioButtonList.AutoSize = true;
|
||||
radioButtonList.Location = new Point(93, 56);
|
||||
radioButtonList.Name = "radioButtonList";
|
||||
radioButtonList.Size = new Size(66, 19);
|
||||
radioButtonList.TabIndex = 3;
|
||||
radioButtonList.TabStop = true;
|
||||
radioButtonList.Text = "Список";
|
||||
radioButtonList.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// radioButtonMassive
|
||||
//
|
||||
radioButtonMassive.AutoSize = true;
|
||||
radioButtonMassive.Location = new Point(6, 56);
|
||||
radioButtonMassive.Name = "radioButtonMassive";
|
||||
radioButtonMassive.Size = new Size(67, 19);
|
||||
radioButtonMassive.TabIndex = 2;
|
||||
radioButtonMassive.TabStop = true;
|
||||
radioButtonMassive.Text = "Массив";
|
||||
radioButtonMassive.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// textBoxCollectionName
|
||||
//
|
||||
textBoxCollectionName.Location = new Point(6, 27);
|
||||
textBoxCollectionName.Name = "textBoxCollectionName";
|
||||
textBoxCollectionName.Size = new Size(160, 23);
|
||||
textBoxCollectionName.TabIndex = 1;
|
||||
//
|
||||
// comboBoxSelectorCompany
|
||||
//
|
||||
comboBoxSelectorCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
comboBoxSelectorCompany.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboBoxSelectorCompany.FormattingEnabled = true;
|
||||
comboBoxSelectorCompany.Items.AddRange(new object[] { "Хранилище" });
|
||||
comboBoxSelectorCompany.Location = new Point(6, 227);
|
||||
comboBoxSelectorCompany.Name = "comboBoxSelectorCompany";
|
||||
comboBoxSelectorCompany.Size = new Size(160, 23);
|
||||
comboBoxSelectorCompany.TabIndex = 1;
|
||||
//
|
||||
// labelCollectionName
|
||||
//
|
||||
labelCollectionName.AutoSize = true;
|
||||
labelCollectionName.Location = new Point(24, 9);
|
||||
labelCollectionName.Name = "labelCollectionName";
|
||||
labelCollectionName.Size = new Size(122, 15);
|
||||
labelCollectionName.TabIndex = 0;
|
||||
labelCollectionName.Text = "Название коллекции";
|
||||
//
|
||||
// pictureBox
|
||||
//
|
||||
pictureBox.Dock = DockStyle.Fill;
|
||||
pictureBox.Location = new Point(0, 24);
|
||||
pictureBox.Name = "pictureBox";
|
||||
pictureBox.Size = new Size(625, 511);
|
||||
pictureBox.TabIndex = 4;
|
||||
pictureBox.TabStop = false;
|
||||
//
|
||||
// menuStrip
|
||||
//
|
||||
menuStrip.Items.AddRange(new ToolStripItem[] { файлToolStripMenuItem });
|
||||
menuStrip.Location = new Point(0, 0);
|
||||
menuStrip.Name = "menuStrip";
|
||||
menuStrip.Size = new Size(800, 24);
|
||||
menuStrip.TabIndex = 5;
|
||||
menuStrip.Text = "menuStrip";
|
||||
//
|
||||
// файлToolStripMenuItem
|
||||
//
|
||||
файлToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { saveToolStripMenuItem, loadToolStripMenuItem });
|
||||
файлToolStripMenuItem.Name = "файлToolStripMenuItem";
|
||||
файлToolStripMenuItem.Size = new Size(48, 20);
|
||||
файлToolStripMenuItem.Text = "Файл";
|
||||
//
|
||||
// saveToolStripMenuItem
|
||||
//
|
||||
saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
saveToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.S;
|
||||
saveToolStripMenuItem.Size = new Size(181, 22);
|
||||
saveToolStripMenuItem.Text = "Сохранение";
|
||||
saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
|
||||
//
|
||||
// loadToolStripMenuItem
|
||||
//
|
||||
loadToolStripMenuItem.Name = "loadToolStripMenuItem";
|
||||
loadToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.L;
|
||||
loadToolStripMenuItem.Size = new Size(181, 22);
|
||||
loadToolStripMenuItem.Text = "Загрузка";
|
||||
loadToolStripMenuItem.Click += loadToolStripMenuItem_Click;
|
||||
//
|
||||
// saveFileDialog
|
||||
//
|
||||
saveFileDialog.Filter = "txt file | *.txt";
|
||||
//
|
||||
// openFileDialog
|
||||
//
|
||||
openFileDialog.FileName = "openFileDialog";
|
||||
openFileDialog.Filter = "txt file | *.txt";
|
||||
//
|
||||
// FormBusCollection
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 535);
|
||||
Controls.Add(pictureBox);
|
||||
Controls.Add(groupBoxTools);
|
||||
Controls.Add(menuStrip);
|
||||
MainMenuStrip = menuStrip;
|
||||
Name = "FormBusCollection";
|
||||
Text = "Коллекция автобусов";
|
||||
groupBoxTools.ResumeLayout(false);
|
||||
panelCompanyTools.ResumeLayout(false);
|
||||
panelCompanyTools.PerformLayout();
|
||||
panelStorage.ResumeLayout(false);
|
||||
panelStorage.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox).EndInit();
|
||||
menuStrip.ResumeLayout(false);
|
||||
menuStrip.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private GroupBox groupBoxTools;
|
||||
private ComboBox comboBoxSelectorCompany;
|
||||
private Button buttonAddBus;
|
||||
private PictureBox pictureBox;
|
||||
private Button buttonRefresh;
|
||||
private Button buttonGoToCheck;
|
||||
private Button buttonDeleteBus;
|
||||
private MaskedTextBox maskedTextBox;
|
||||
private Panel panelStorage;
|
||||
private TextBox textBoxCollectionName;
|
||||
private Label labelCollectionName;
|
||||
private Button buttonCollectionAdd;
|
||||
private RadioButton radioButtonList;
|
||||
private RadioButton radioButtonMassive;
|
||||
private ListBox listBoxCollection;
|
||||
private Button buttonCollectionDel;
|
||||
private Button buttonCreateCompany;
|
||||
private Panel panelCompanyTools;
|
||||
private MenuStrip menuStrip;
|
||||
private ToolStripMenuItem файлToolStripMenuItem;
|
||||
private ToolStripMenuItem saveToolStripMenuItem;
|
||||
private ToolStripMenuItem loadToolStripMenuItem;
|
||||
private SaveFileDialog saveFileDialog;
|
||||
private OpenFileDialog openFileDialog;
|
||||
private Button button2;
|
||||
private Button button1;
|
||||
private Button buttonSortByType;
|
||||
private Button buttonSortByColor;
|
||||
}
|
||||
}
|
@ -1,319 +0,0 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ProjectAccordionBus.CollectionGenericObjects;
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using ProjectAccordionBus.Exceptions;
|
||||
using ProjectAirbus.Exceptions;
|
||||
|
||||
namespace ProjectAccordionBus;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class FormBusCollection : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// Хранилише коллекций
|
||||
/// </summary>
|
||||
private readonly StorageCollection<DrawningBus> _storageCollection;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private AbstractCompany? _company = null;
|
||||
|
||||
private readonly ILogger _logger;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public FormBusCollection(ILogger<FormBusCollection> logger)
|
||||
{
|
||||
InitializeComponent();
|
||||
_storageCollection = new();
|
||||
_logger = logger;
|
||||
}
|
||||
/// <summary>
|
||||
/// Добавление улучшенного троллейбуса
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ButtonAddAccordionBus_Click(object sender, EventArgs e)
|
||||
{
|
||||
FormBusConfig form = new FormBusConfig();
|
||||
form.Show();
|
||||
form.AddEvent(SetBus);
|
||||
}
|
||||
|
||||
private void buttonAddBus_Click(object sender, EventArgs e)
|
||||
{
|
||||
FormBusConfig form = new();
|
||||
form.Show();
|
||||
form.AddEvent(SetBus);
|
||||
}
|
||||
|
||||
private void SetBus(DrawningBus bus)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_company == null || bus == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_company + bus != -1)
|
||||
{
|
||||
MessageBox.Show("Объект добавлен");
|
||||
pictureBox.Image = _company.Show();
|
||||
_logger.LogInformation("Добавлен объект: " + bus.GetDataForSave());
|
||||
}
|
||||
}
|
||||
catch (ObjectNotFoundException ex)
|
||||
{
|
||||
}
|
||||
catch (CollectionOverflowException ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
catch (ObjectNotUniqueException ex)
|
||||
{
|
||||
MessageBox.Show("Такой объект уже присутствует в коллекции");
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonDeleteBus_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(maskedTextBox.Text) || _company == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int pos = Convert.ToInt32(maskedTextBox.Text);
|
||||
try
|
||||
{
|
||||
if (_company - pos != null)
|
||||
{
|
||||
MessageBox.Show("Объект удален");
|
||||
pictureBox.Image = _company.Show();
|
||||
_logger.LogInformation("Удален объект по позиции " + pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"Не удалось удалить объект");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonGoToCheck_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_company == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
DrawningBus? bus = null;
|
||||
int counter = 100;
|
||||
while (bus == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
bus = _company.GetRandomObject();
|
||||
}
|
||||
catch (ObjectNotFoundException)
|
||||
{
|
||||
counter--;
|
||||
if (counter <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bus == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
FormAccordionBus form = new()
|
||||
{
|
||||
SetBus = bus
|
||||
};
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
private void buttonRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_company == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
pictureBox.Image = _company.Show();
|
||||
}
|
||||
|
||||
private void buttonCollectionAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(textBoxCollectionName.Text) || (!radioButtonList.Checked && !radioButtonMassive.Checked))
|
||||
{
|
||||
MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
CollectionType collectionType = CollectionType.None;
|
||||
if (radioButtonMassive.Checked)
|
||||
{
|
||||
collectionType = CollectionType.Massive;
|
||||
}
|
||||
else if (radioButtonList.Checked)
|
||||
{
|
||||
collectionType = CollectionType.List;
|
||||
}
|
||||
|
||||
_storageCollection.AddCollection(textBoxCollectionName.Text, collectionType);
|
||||
RefreshListBoxItems();
|
||||
_logger.LogInformation("Коллекция добавлена " + textBoxCollectionName.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void RefreshListBoxItems()
|
||||
{
|
||||
listBoxCollection.Items.Clear();
|
||||
for (int i = 0; i < _storageCollection.Keys?.Count; ++i)
|
||||
{
|
||||
string? colName = _storageCollection.Keys?[i].Name;
|
||||
if (!string.IsNullOrEmpty(colName))
|
||||
{
|
||||
listBoxCollection.Items.Add(colName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void buttonCollectionDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(maskedTextBox.Text) || _company == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int pos = Convert.ToInt32(maskedTextBox.Text);
|
||||
try
|
||||
{
|
||||
if (_company - pos != null)
|
||||
{
|
||||
MessageBox.Show("Объект удален");
|
||||
pictureBox.Image = _company.Show();
|
||||
_logger.LogInformation("Удален объект по позиции " + pos);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonCreateCompany_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null)
|
||||
{
|
||||
MessageBox.Show("Коллекция не выбрана");
|
||||
_logger.LogWarning("Создание компании невыбранной коллекции");
|
||||
return;
|
||||
}
|
||||
ICollectionGenericObjects<DrawningBus>? collection =
|
||||
_storageCollection[listBoxCollection.SelectedItem.ToString() ?? string.Empty];
|
||||
if (collection == null)
|
||||
{
|
||||
MessageBox.Show("Коллекция не проинициализирована");
|
||||
_logger.LogWarning("Не удалось инициализировать коллекцию");
|
||||
return;
|
||||
}
|
||||
switch (comboBoxSelectorCompany.Text)
|
||||
{
|
||||
case "Хранилище":
|
||||
_company = new BusSharingService(pictureBox.Width,
|
||||
pictureBox.Height, collection);
|
||||
break;
|
||||
}
|
||||
panelCompanyTools.Enabled = true;
|
||||
RefreshListBoxItems();
|
||||
}
|
||||
|
||||
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
_storageCollection.SaveData(saveFileDialog.FileName);
|
||||
MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
_logger.LogInformation("Сохранение в файл: {filename}", saveFileDialog.FileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
_storageCollection.LoadData(openFileDialog.FileName);
|
||||
MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
_logger.LogInformation("Загрузка из файла: {filename}", saveFileDialog.FileName);
|
||||
RefreshListBoxItems();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
_logger.LogError("Ошибка: {Message}", ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CompareBus(IComparer<DrawningBus?> comparer)
|
||||
{
|
||||
if (_company == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_company.Sort(comparer);
|
||||
pictureBox.Image = _company.Show();
|
||||
}
|
||||
|
||||
private void buttonSortByType_Click(object sender, EventArgs e)
|
||||
{
|
||||
CompareBus(new DrawningBusCompareByType());
|
||||
}
|
||||
|
||||
private void buttonSortByColor_Click(object sender, EventArgs e)
|
||||
{
|
||||
CompareBus(new DrawningBusCompareByColor());
|
||||
}
|
||||
}
|
@ -1,129 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>126, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>261, 17</value>
|
||||
</metadata>
|
||||
</root>
|
@ -1,383 +0,0 @@
|
||||
namespace ProjectAccordionBus
|
||||
{
|
||||
partial class FormBusConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
groupBoxConfig = new GroupBox();
|
||||
groupBoxColors = new GroupBox();
|
||||
panelPurple = new Panel();
|
||||
panelBlack = new Panel();
|
||||
panelYellow = new Panel();
|
||||
panelBlue = new Panel();
|
||||
panelGreen = new Panel();
|
||||
panelWhite = new Panel();
|
||||
panelGray = new Panel();
|
||||
panelRed = new Panel();
|
||||
checkBoxWindows = new CheckBox();
|
||||
checkBoxEntrance = new CheckBox();
|
||||
checkBoxCompartment = new CheckBox();
|
||||
numericUpDownWeight = new NumericUpDown();
|
||||
numericUpDownSpeed = new NumericUpDown();
|
||||
labelWeight = new Label();
|
||||
labelSpeed = new Label();
|
||||
labelModifiedObject = new Label();
|
||||
labelSimpleObject = new Label();
|
||||
pictureBoxObject = new PictureBox();
|
||||
buttonAdd = new Button();
|
||||
buttonCancel = new Button();
|
||||
panelObjects = new Panel();
|
||||
labelAdditionalColor = new Label();
|
||||
labelBodyColor = new Label();
|
||||
groupBoxConfig.SuspendLayout();
|
||||
groupBoxColors.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxObject).BeginInit();
|
||||
panelObjects.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// groupBoxConfig
|
||||
//
|
||||
groupBoxConfig.Controls.Add(groupBoxColors);
|
||||
groupBoxConfig.Controls.Add(checkBoxWindows);
|
||||
groupBoxConfig.Controls.Add(checkBoxEntrance);
|
||||
groupBoxConfig.Controls.Add(checkBoxCompartment);
|
||||
groupBoxConfig.Controls.Add(numericUpDownWeight);
|
||||
groupBoxConfig.Controls.Add(numericUpDownSpeed);
|
||||
groupBoxConfig.Controls.Add(labelWeight);
|
||||
groupBoxConfig.Controls.Add(labelSpeed);
|
||||
groupBoxConfig.Controls.Add(labelModifiedObject);
|
||||
groupBoxConfig.Controls.Add(labelSimpleObject);
|
||||
groupBoxConfig.Dock = DockStyle.Left;
|
||||
groupBoxConfig.Location = new Point(0, 0);
|
||||
groupBoxConfig.Name = "groupBoxConfig";
|
||||
groupBoxConfig.Size = new Size(479, 208);
|
||||
groupBoxConfig.TabIndex = 0;
|
||||
groupBoxConfig.TabStop = false;
|
||||
groupBoxConfig.Text = "Параметры";
|
||||
//
|
||||
// groupBoxColors
|
||||
//
|
||||
groupBoxColors.Controls.Add(panelPurple);
|
||||
groupBoxColors.Controls.Add(panelBlack);
|
||||
groupBoxColors.Controls.Add(panelYellow);
|
||||
groupBoxColors.Controls.Add(panelBlue);
|
||||
groupBoxColors.Controls.Add(panelGreen);
|
||||
groupBoxColors.Controls.Add(panelWhite);
|
||||
groupBoxColors.Controls.Add(panelGray);
|
||||
groupBoxColors.Controls.Add(panelRed);
|
||||
groupBoxColors.Location = new Point(211, 22);
|
||||
groupBoxColors.Name = "groupBoxColors";
|
||||
groupBoxColors.Size = new Size(239, 130);
|
||||
groupBoxColors.TabIndex = 9;
|
||||
groupBoxColors.TabStop = false;
|
||||
groupBoxColors.Text = "Цвета";
|
||||
//
|
||||
// panelPurple
|
||||
//
|
||||
panelPurple.BackColor = Color.Purple;
|
||||
panelPurple.Location = new Point(180, 73);
|
||||
panelPurple.Name = "panelPurple";
|
||||
panelPurple.Size = new Size(38, 38);
|
||||
panelPurple.TabIndex = 1;
|
||||
//
|
||||
// panelBlack
|
||||
//
|
||||
panelBlack.BackColor = Color.Black;
|
||||
panelBlack.Location = new Point(123, 73);
|
||||
panelBlack.Name = "panelBlack";
|
||||
panelBlack.Size = new Size(38, 38);
|
||||
panelBlack.TabIndex = 1;
|
||||
//
|
||||
// panelYellow
|
||||
//
|
||||
panelYellow.BackColor = Color.Yellow;
|
||||
panelYellow.Location = new Point(180, 22);
|
||||
panelYellow.Name = "panelYellow";
|
||||
panelYellow.Size = new Size(38, 38);
|
||||
panelYellow.TabIndex = 1;
|
||||
//
|
||||
// panelBlue
|
||||
//
|
||||
panelBlue.BackColor = Color.Blue;
|
||||
panelBlue.Location = new Point(123, 22);
|
||||
panelBlue.Name = "panelBlue";
|
||||
panelBlue.Size = new Size(38, 38);
|
||||
panelBlue.TabIndex = 1;
|
||||
//
|
||||
// panelGreen
|
||||
//
|
||||
panelGreen.BackColor = Color.Green;
|
||||
panelGreen.Location = new Point(69, 22);
|
||||
panelGreen.Name = "panelGreen";
|
||||
panelGreen.Size = new Size(38, 38);
|
||||
panelGreen.TabIndex = 1;
|
||||
//
|
||||
// panelWhite
|
||||
//
|
||||
panelWhite.BackColor = Color.White;
|
||||
panelWhite.Location = new Point(13, 73);
|
||||
panelWhite.Name = "panelWhite";
|
||||
panelWhite.Size = new Size(38, 38);
|
||||
panelWhite.TabIndex = 1;
|
||||
//
|
||||
// panelGray
|
||||
//
|
||||
panelGray.BackColor = Color.Gray;
|
||||
panelGray.Location = new Point(69, 73);
|
||||
panelGray.Name = "panelGray";
|
||||
panelGray.Size = new Size(38, 38);
|
||||
panelGray.TabIndex = 1;
|
||||
//
|
||||
// panelRed
|
||||
//
|
||||
panelRed.BackColor = Color.Red;
|
||||
panelRed.Location = new Point(13, 22);
|
||||
panelRed.Name = "panelRed";
|
||||
panelRed.Size = new Size(38, 38);
|
||||
panelRed.TabIndex = 0;
|
||||
//
|
||||
// checkBoxWindows
|
||||
//
|
||||
checkBoxWindows.AutoSize = true;
|
||||
checkBoxWindows.Location = new Point(6, 155);
|
||||
checkBoxWindows.Name = "checkBoxWindows";
|
||||
checkBoxWindows.Size = new Size(153, 19);
|
||||
checkBoxWindows.TabIndex = 8;
|
||||
checkBoxWindows.Text = "Признак наличие окон";
|
||||
checkBoxWindows.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkBoxEntrance
|
||||
//
|
||||
checkBoxEntrance.AutoSize = true;
|
||||
checkBoxEntrance.Location = new Point(6, 120);
|
||||
checkBoxEntrance.Name = "checkBoxEntrance";
|
||||
checkBoxEntrance.Size = new Size(158, 19);
|
||||
checkBoxEntrance.TabIndex = 7;
|
||||
checkBoxEntrance.Text = "Признак наличие двери";
|
||||
checkBoxEntrance.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkBoxCompartment
|
||||
//
|
||||
checkBoxCompartment.AutoSize = true;
|
||||
checkBoxCompartment.Location = new Point(6, 86);
|
||||
checkBoxCompartment.Name = "checkBoxCompartment";
|
||||
checkBoxCompartment.Size = new Size(188, 19);
|
||||
checkBoxCompartment.TabIndex = 6;
|
||||
checkBoxCompartment.Text = "Признак наличие доп. отсека";
|
||||
checkBoxCompartment.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// numericUpDownWeight
|
||||
//
|
||||
numericUpDownWeight.Location = new Point(74, 46);
|
||||
numericUpDownWeight.Maximum = new decimal(new int[] { 1000, 0, 0, 0 });
|
||||
numericUpDownWeight.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
|
||||
numericUpDownWeight.Name = "numericUpDownWeight";
|
||||
numericUpDownWeight.Size = new Size(120, 23);
|
||||
numericUpDownWeight.TabIndex = 5;
|
||||
numericUpDownWeight.Value = new decimal(new int[] { 100, 0, 0, 0 });
|
||||
//
|
||||
// numericUpDownSpeed
|
||||
//
|
||||
numericUpDownSpeed.Location = new Point(74, 17);
|
||||
numericUpDownSpeed.Maximum = new decimal(new int[] { 1000, 0, 0, 0 });
|
||||
numericUpDownSpeed.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
|
||||
numericUpDownSpeed.Name = "numericUpDownSpeed";
|
||||
numericUpDownSpeed.Size = new Size(120, 23);
|
||||
numericUpDownSpeed.TabIndex = 4;
|
||||
numericUpDownSpeed.Value = new decimal(new int[] { 100, 0, 0, 0 });
|
||||
//
|
||||
// labelWeight
|
||||
//
|
||||
labelWeight.AutoSize = true;
|
||||
labelWeight.Location = new Point(6, 48);
|
||||
labelWeight.Name = "labelWeight";
|
||||
labelWeight.Size = new Size(29, 15);
|
||||
labelWeight.TabIndex = 3;
|
||||
labelWeight.Text = "Вес:";
|
||||
//
|
||||
// labelSpeed
|
||||
//
|
||||
labelSpeed.AutoSize = true;
|
||||
labelSpeed.Location = new Point(6, 19);
|
||||
labelSpeed.Name = "labelSpeed";
|
||||
labelSpeed.Size = new Size(62, 15);
|
||||
labelSpeed.TabIndex = 2;
|
||||
labelSpeed.Text = "Скорость:";
|
||||
//
|
||||
// labelModifiedObject
|
||||
//
|
||||
labelModifiedObject.AllowDrop = true;
|
||||
labelModifiedObject.BorderStyle = BorderStyle.FixedSingle;
|
||||
labelModifiedObject.Location = new Point(350, 165);
|
||||
labelModifiedObject.Name = "labelModifiedObject";
|
||||
labelModifiedObject.Size = new Size(100, 31);
|
||||
labelModifiedObject.TabIndex = 1;
|
||||
labelModifiedObject.Text = "Продвинутый";
|
||||
labelModifiedObject.TextAlign = ContentAlignment.MiddleCenter;
|
||||
labelModifiedObject.Click += buttonAdd_Click;
|
||||
labelModifiedObject.DragDrop += panelObject_DragDrop;
|
||||
labelModifiedObject.DragEnter += panelObjects_DragEnter;
|
||||
labelModifiedObject.MouseDown += labelObject_MouseDown;
|
||||
//
|
||||
// labelSimpleObject
|
||||
//
|
||||
labelSimpleObject.AllowDrop = true;
|
||||
labelSimpleObject.BorderStyle = BorderStyle.FixedSingle;
|
||||
labelSimpleObject.Location = new Point(224, 164);
|
||||
labelSimpleObject.Name = "labelSimpleObject";
|
||||
labelSimpleObject.Size = new Size(100, 32);
|
||||
labelSimpleObject.TabIndex = 0;
|
||||
labelSimpleObject.Text = "Простой";
|
||||
labelSimpleObject.TextAlign = ContentAlignment.MiddleCenter;
|
||||
labelSimpleObject.Click += buttonAdd_Click;
|
||||
labelSimpleObject.DragDrop += panelObject_DragDrop;
|
||||
labelSimpleObject.DragEnter += panelObjects_DragEnter;
|
||||
labelSimpleObject.MouseDown += labelObject_MouseDown;
|
||||
//
|
||||
// pictureBoxObject
|
||||
//
|
||||
pictureBoxObject.Location = new Point(19, 57);
|
||||
pictureBoxObject.Name = "pictureBoxObject";
|
||||
pictureBoxObject.Size = new Size(173, 95);
|
||||
pictureBoxObject.TabIndex = 1;
|
||||
pictureBoxObject.TabStop = false;
|
||||
pictureBoxObject.DragDrop += panelObject_DragDrop;
|
||||
pictureBoxObject.DragEnter += panelObjects_DragEnter;
|
||||
pictureBoxObject.MouseDown += panel_MouseDown;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.Location = new Point(504, 173);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Size = new Size(75, 23);
|
||||
buttonAdd.TabIndex = 2;
|
||||
buttonAdd.Text = "Добавить";
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += buttonAdd_Click;
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
buttonCancel.Location = new Point(602, 173);
|
||||
buttonCancel.Name = "buttonCancel";
|
||||
buttonCancel.Size = new Size(75, 23);
|
||||
buttonCancel.TabIndex = 3;
|
||||
buttonCancel.Text = "Отмена";
|
||||
buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// panelObjects
|
||||
//
|
||||
panelObjects.AllowDrop = true;
|
||||
panelObjects.Controls.Add(labelAdditionalColor);
|
||||
panelObjects.Controls.Add(labelBodyColor);
|
||||
panelObjects.Controls.Add(pictureBoxObject);
|
||||
panelObjects.Location = new Point(485, 0);
|
||||
panelObjects.Name = "panelObjects";
|
||||
panelObjects.Size = new Size(204, 167);
|
||||
panelObjects.TabIndex = 4;
|
||||
panelObjects.DragDrop += panelObject_DragDrop;
|
||||
panelObjects.DragEnter += panelObjects_DragEnter;
|
||||
panelObjects.MouseDown += panel_MouseDown;
|
||||
//
|
||||
// labelAdditionalColor
|
||||
//
|
||||
labelAdditionalColor.AllowDrop = true;
|
||||
labelAdditionalColor.BorderStyle = BorderStyle.FixedSingle;
|
||||
labelAdditionalColor.Location = new Point(117, 10);
|
||||
labelAdditionalColor.Name = "labelAdditionalColor";
|
||||
labelAdditionalColor.Size = new Size(75, 32);
|
||||
labelAdditionalColor.TabIndex = 3;
|
||||
labelAdditionalColor.Text = "Доп. цвет";
|
||||
labelAdditionalColor.TextAlign = ContentAlignment.MiddleCenter;
|
||||
labelAdditionalColor.DragDrop += labelAdditionalColor_DragDrop;
|
||||
labelAdditionalColor.DragEnter += labelAdditionalColor_DragEnter;
|
||||
//
|
||||
// labelBodyColor
|
||||
//
|
||||
labelBodyColor.AllowDrop = true;
|
||||
labelBodyColor.BorderStyle = BorderStyle.FixedSingle;
|
||||
labelBodyColor.Location = new Point(19, 10);
|
||||
labelBodyColor.Name = "labelBodyColor";
|
||||
labelBodyColor.Size = new Size(75, 32);
|
||||
labelBodyColor.TabIndex = 2;
|
||||
labelBodyColor.Text = "Цвет";
|
||||
labelBodyColor.TextAlign = ContentAlignment.MiddleCenter;
|
||||
labelBodyColor.Click += labelBodyColor_Click;
|
||||
labelBodyColor.DragDrop += labelBodyColor_DragDrop;
|
||||
labelBodyColor.DragEnter += labelBodyColor_DragEnter;
|
||||
//
|
||||
// FormBusConfig
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(689, 208);
|
||||
Controls.Add(panelObjects);
|
||||
Controls.Add(buttonAdd);
|
||||
Controls.Add(buttonCancel);
|
||||
Controls.Add(groupBoxConfig);
|
||||
Name = "FormBusConfig";
|
||||
Text = "Создание объекта";
|
||||
groupBoxConfig.ResumeLayout(false);
|
||||
groupBoxConfig.PerformLayout();
|
||||
groupBoxColors.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownWeight).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownSpeed).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxObject).EndInit();
|
||||
panelObjects.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private GroupBox groupBoxConfig;
|
||||
private Label labelModifiedObject;
|
||||
private Label labelSimpleObject;
|
||||
private NumericUpDown numericUpDownWeight;
|
||||
private NumericUpDown numericUpDownSpeed;
|
||||
private Label labelWeight;
|
||||
private Label labelSpeed;
|
||||
private CheckBox checkBoxCompartment;
|
||||
private CheckBox checkBoxEntrance;
|
||||
private CheckBox checkBoxWindows;
|
||||
private GroupBox groupBoxColors;
|
||||
private Panel panelPurple;
|
||||
private Panel panelBlack;
|
||||
private Panel panelYellow;
|
||||
private Panel panelBlue;
|
||||
private Panel panelGreen;
|
||||
private Panel panelWhite;
|
||||
private Panel panelGray;
|
||||
private Panel panelRed;
|
||||
private PictureBox pictureBoxObject;
|
||||
private Button buttonAdd;
|
||||
private Button buttonCancel;
|
||||
private Panel panelObjects;
|
||||
private Label labelAdditionalColor;
|
||||
private Label labelBodyColor;
|
||||
}
|
||||
}
|
@ -1,171 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using ProjectAccordionBus.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ProjectAccordionBus;
|
||||
|
||||
public partial class FormBusConfig : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// Объект прорисовки класса
|
||||
/// </summary>
|
||||
private DrawningBus? _bus;
|
||||
|
||||
private event BusDelegate? _busDelegate;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public FormBusConfig()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
panelRed.MouseDown += panel_MouseDown;
|
||||
panelGreen.MouseDown += panel_MouseDown;
|
||||
panelBlue.MouseDown += panel_MouseDown;
|
||||
panelWhite.MouseDown += panel_MouseDown;
|
||||
panelBlack.MouseDown += panel_MouseDown;
|
||||
panelGray.MouseDown += panel_MouseDown;
|
||||
panelPurple.MouseDown += panel_MouseDown;
|
||||
panelYellow.MouseDown += panel_MouseDown;
|
||||
|
||||
buttonCancel.Click += (sender, e) => Close();
|
||||
}
|
||||
|
||||
public void AddEvent(BusDelegate busDelegate)
|
||||
{
|
||||
_busDelegate += busDelegate;
|
||||
}
|
||||
|
||||
// <summary>
|
||||
/// Прорисовка объекта
|
||||
/// </summary>
|
||||
private void DrawObject()
|
||||
{
|
||||
Bitmap bmp = new(pictureBoxObject.Width, pictureBoxObject.Height);
|
||||
Graphics gr = Graphics.FromImage(bmp);
|
||||
_bus?.SetPictureSize(pictureBoxObject.Width, pictureBoxObject.Height);
|
||||
_bus?.SetPosition(15, 15);
|
||||
_bus?.DrawTransport(gr);
|
||||
pictureBoxObject.Image = bmp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Передаем информацию при нажатии на Label
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void labelObject_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
(sender as Label)?.DoDragDrop((sender as Label)?.Name ?? string.Empty, DragDropEffects.Move | DragDropEffects.Copy);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Проверка получаемой информации (ее типа на соответствие требуемому)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void panelObjects_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
e.Effect = e.Data?.GetDataPresent(DataFormats.Text) ?? false ? DragDropEffects.Copy : DragDropEffects.None;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Действия при приеме перетаскиваемой информации
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void panelObject_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
switch (e.Data?.GetData(DataFormats.Text)?.ToString())
|
||||
{
|
||||
case "labelSimpleObject":
|
||||
_bus = new DrawningBus((int)numericUpDownSpeed.Value,
|
||||
(double)numericUpDownWeight.Value, Color.White);
|
||||
break;
|
||||
case "labelModifiedObject":
|
||||
_bus = new
|
||||
DrawningAccordionBus((int)numericUpDownSpeed.Value, (double)numericUpDownWeight.Value,
|
||||
Color.White,
|
||||
Color.Black, checkBoxCompartment.Checked,
|
||||
checkBoxEntrance.Checked, checkBoxWindows.Checked);
|
||||
break;
|
||||
}
|
||||
labelBodyColor.BackColor = Color.Empty;
|
||||
labelAdditionalColor.BackColor = Color.Empty;
|
||||
DrawObject();
|
||||
}
|
||||
|
||||
private void panel_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
(sender as Control)?.DoDragDrop((sender as Control)?.BackColor ?? Color.Black, DragDropEffects.Move | DragDropEffects.Copy);
|
||||
}
|
||||
|
||||
private void buttonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_bus != null)
|
||||
{
|
||||
_busDelegate?.Invoke(_bus);
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void labelBodyColor_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(typeof(Color)))
|
||||
{
|
||||
e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effect = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
|
||||
private void labelBodyColor_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (_bus != null)
|
||||
{
|
||||
_bus.EntityBus.SetBodyColor((Color)e.Data.GetData(typeof(Color)));
|
||||
DrawObject();
|
||||
}
|
||||
}
|
||||
|
||||
private void labelAdditionalColor_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (_bus is DrawningBus)
|
||||
{
|
||||
if (e.Data.GetDataPresent(typeof(Color)))
|
||||
{
|
||||
e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effect = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void labelAdditionalColor_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (_bus?.EntityBus is EntityAccordionBus _accordionBus)
|
||||
{
|
||||
_accordionBus.SetAdditionalColor((Color)e.Data.GetData(typeof(Color)));
|
||||
}
|
||||
DrawObject();
|
||||
|
||||
}
|
||||
|
||||
private void labelBodyColor_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
@ -1,120 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@ -1,126 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
|
||||
public abstract class AbstractStrategy
|
||||
{
|
||||
/// <summary>
|
||||
/// Перемещаемый объект
|
||||
/// </summary>
|
||||
private IMoveableObject? _moveableObject;
|
||||
|
||||
/// <summary>
|
||||
/// Статус перемещения
|
||||
/// </summary>
|
||||
private StrategyStatus _state = StrategyStatus.NotInit;
|
||||
|
||||
/// <summary>
|
||||
/// Ширина поля
|
||||
/// </summary>
|
||||
protected int FieldWidth { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Высота поля
|
||||
/// </summary>
|
||||
protected int FieldHeight { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Статус перемещения
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public StrategyStatus GetStatus() { return _state; }
|
||||
|
||||
/// <summary>
|
||||
/// Установка данных
|
||||
/// </summary>
|
||||
/// <param name="moveableObject"></param>
|
||||
/// <param name="width"></param>
|
||||
/// <param name="height"></param>
|
||||
public void SetData(IMoveableObject moveableObject, int width, int height)
|
||||
{
|
||||
if (moveableObject == null)
|
||||
{
|
||||
_state = StrategyStatus.NotInit;
|
||||
return;
|
||||
}
|
||||
_state = StrategyStatus.InProgress;
|
||||
_moveableObject = moveableObject;
|
||||
FieldWidth = width;
|
||||
FieldHeight = height;
|
||||
}
|
||||
|
||||
public void MakeStep()
|
||||
{
|
||||
if (_state != StrategyStatus.InProgress)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsTargetDestination())
|
||||
{
|
||||
_state = StrategyStatus.Finish;
|
||||
return;
|
||||
}
|
||||
|
||||
MoveToTarget();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перемещение влево
|
||||
/// </summary>
|
||||
/// <returns>Результат перемещения (true - удалось переместится, false - неудача)</returns>
|
||||
protected bool MoveLeft() => MoveTo(MovementDirection.Left);
|
||||
|
||||
/// <summary>
|
||||
/// Перемещение вправо
|
||||
/// </summary>
|
||||
/// <returns>Результат перемещения (true - удалось переместится, false - неудача)</returns>
|
||||
protected bool MoveRight() => MoveTo(MovementDirection.Right);
|
||||
|
||||
/// <summary>
|
||||
/// Перемещение вверх
|
||||
/// </summary>
|
||||
/// <returns>Результат перемещения (true - удалось переместится, false - неудача)</returns>
|
||||
protected bool MoveUp() => MoveTo(MovementDirection.Up);
|
||||
|
||||
/// <summary>
|
||||
/// Перемещение вниз
|
||||
/// </summary>
|
||||
/// <returns>Результат перемещения (true - удалось переместится, false - неудача)</returns>
|
||||
protected bool MoveDown() => MoveTo(MovementDirection.Down);
|
||||
|
||||
/// <summary>
|
||||
/// Параметры объекта
|
||||
/// </summary>
|
||||
protected ObjectParameters? GetObjectParameters => _moveableObject?.GetObjectPosition;
|
||||
|
||||
protected int? GetStep()
|
||||
{
|
||||
if (_state != StrategyStatus.InProgress)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _moveableObject?.GetStep;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перемещение к цели
|
||||
/// </summary>
|
||||
protected abstract void MoveToTarget();
|
||||
|
||||
protected abstract bool IsTargetDestination();
|
||||
|
||||
protected bool MoveTo(MovementDirection movementDirection)
|
||||
{
|
||||
if (_state != StrategyStatus.InProgress)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return _moveableObject?.TryMoveObject(movementDirection) ?? false;
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
public interface IMoveableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Получение координаты объекта
|
||||
/// </summary>
|
||||
ObjectParameters? GetObjectPosition { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Шаг объекта
|
||||
/// </summary>
|
||||
int GetStep { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Попытка переместить объект в указанном направлении
|
||||
/// </summary>
|
||||
/// <param name="direction"></param>
|
||||
/// <returns></returns>
|
||||
bool TryMoveObject(MovementDirection direction);
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
|
||||
public class MoveToBorder : AbstractStrategy
|
||||
{
|
||||
protected override bool IsTargetDestination()
|
||||
{
|
||||
ObjectParameters? objParams = GetObjectParameters;
|
||||
if (objParams == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return objParams.RightBorder <= FieldWidth && objParams.RightBorder + GetStep() >= FieldWidth &&
|
||||
objParams.DownBorder <= FieldHeight &&
|
||||
objParams.DownBorder + GetStep() >= FieldHeight;
|
||||
}
|
||||
|
||||
protected override void MoveToTarget()
|
||||
{
|
||||
ObjectParameters? objParams = GetObjectParameters;
|
||||
if (objParams == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int diffX = objParams.RightBorder - FieldWidth;
|
||||
if (Math.Abs(diffX) > GetStep())
|
||||
{
|
||||
if (diffX > 0)
|
||||
{
|
||||
MoveLeft();
|
||||
}
|
||||
else
|
||||
{
|
||||
MoveRight();
|
||||
}
|
||||
}
|
||||
|
||||
int diffY = objParams.DownBorder - FieldHeight;
|
||||
if (Math.Abs(diffY) > GetStep())
|
||||
{
|
||||
if (diffY > 0)
|
||||
{
|
||||
MoveUp();
|
||||
}
|
||||
else
|
||||
{
|
||||
MoveDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
|
||||
public class MoveToCenter : AbstractStrategy
|
||||
{
|
||||
protected override bool IsTargetDestination()
|
||||
{
|
||||
ObjectParameters? objParams = GetObjectParameters;
|
||||
if (objParams == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return objParams.ObjectMiddleHorizontal - GetStep() <= FieldWidth / 2 && objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 &&
|
||||
objParams.ObjectMiddleVertical - GetStep() <= FieldHeight / 2 && objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2;
|
||||
}
|
||||
|
||||
protected override void MoveToTarget()
|
||||
{
|
||||
ObjectParameters? objParams = GetObjectParameters;
|
||||
if (objParams == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2;
|
||||
if (Math.Abs(diffX) > GetStep())
|
||||
{
|
||||
if (diffX > 0)
|
||||
{
|
||||
MoveLeft();
|
||||
}
|
||||
else
|
||||
{
|
||||
MoveRight();
|
||||
}
|
||||
}
|
||||
int diffY = objParams.ObjectMiddleVertical - FieldHeight / 2;
|
||||
if (Math.Abs(diffY) > GetStep())
|
||||
{
|
||||
if (diffY > 0)
|
||||
{
|
||||
MoveUp();
|
||||
}
|
||||
else
|
||||
{
|
||||
MoveDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using ProjectAccordionBus.Drawnings;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
|
||||
public class MoveableBus : IMoveableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Поле-объект класса DrawningBus или его наследника
|
||||
/// </summary>
|
||||
private readonly DrawningBus? _bus = null;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="bus">Объект класса DrawningBus</param>
|
||||
public MoveableBus(DrawningBus bus)
|
||||
{
|
||||
_bus = bus;
|
||||
}
|
||||
|
||||
public ObjectParameters? GetObjectPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_bus == null || _bus.EntityBus == null || !_bus.GetPosX.HasValue || !_bus.GetPosY.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new ObjectParameters(_bus.GetPosX.Value, _bus.GetPosY.Value, _bus.GetWidth, _bus.GetHight);
|
||||
}
|
||||
}
|
||||
|
||||
public int GetStep => (int)(_bus?.EntityBus?.Step ?? 0);
|
||||
|
||||
public bool TryMoveObject(MovementDirection direction)
|
||||
{
|
||||
if (_bus == null || _bus.EntityBus == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return _bus.MoveTransport(GetDirectionType(direction));
|
||||
}
|
||||
|
||||
private static DirectionType GetDirectionType(MovementDirection direction)
|
||||
{
|
||||
return direction switch
|
||||
{
|
||||
MovementDirection.Left => DirectionType.Left,
|
||||
MovementDirection.Right => DirectionType.Right,
|
||||
MovementDirection.Up => DirectionType.Up,
|
||||
MovementDirection.Down => DirectionType.Down,
|
||||
_ => DirectionType.Unknow,
|
||||
};
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
public enum MovementDirection
|
||||
{
|
||||
/// <summary>
|
||||
/// Вверх
|
||||
/// </summary>
|
||||
Up = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Вниз
|
||||
/// </summary>
|
||||
Down = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Влево
|
||||
/// </summary>
|
||||
Left = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Вправо
|
||||
/// </summary>
|
||||
Right = 4
|
||||
}
|
@ -1,67 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
public class ObjectParameters
|
||||
{
|
||||
/// <summary>
|
||||
/// Координата x
|
||||
/// </summary>
|
||||
private readonly int _x;
|
||||
|
||||
/// <summary>
|
||||
/// Координата y
|
||||
/// </summary>
|
||||
private readonly int _y;
|
||||
|
||||
/// <summary>
|
||||
/// Ширина объекта
|
||||
/// </summary>
|
||||
private readonly int _width;
|
||||
|
||||
/// <summary>
|
||||
/// Высота объекта
|
||||
/// </summary>
|
||||
private readonly int _height;
|
||||
|
||||
/// <summary>
|
||||
/// Левая граница
|
||||
/// </summary>
|
||||
public int LeftBorder => _x;
|
||||
|
||||
/// <summary>
|
||||
/// Верхняя граница
|
||||
/// </summary>
|
||||
public int TopBorder => _y;
|
||||
|
||||
/// <summary>
|
||||
/// Правая граница
|
||||
/// </summary>
|
||||
public int RightBorder => _x + _width;
|
||||
|
||||
/// <summary>
|
||||
/// Нижняя граница
|
||||
/// </summary>
|
||||
public int DownBorder => _y + _height;
|
||||
|
||||
/// <summary>
|
||||
/// Середина объекта
|
||||
/// </summary>
|
||||
public int ObjectMiddleHorizontal => _x + _width / 2;
|
||||
|
||||
/// <summary>
|
||||
/// Середина объекта
|
||||
/// </summary>
|
||||
public int ObjectMiddleVertical => _y + _height / 2;
|
||||
|
||||
public ObjectParameters(int x, int y, int width, int height)
|
||||
{
|
||||
_x = x;
|
||||
_y = y;
|
||||
_width = width;
|
||||
_height = height;
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectAccordionBus.MovementStrategy;
|
||||
public enum StrategyStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Все готово к началу
|
||||
NotInit,
|
||||
|
||||
/// <summary>
|
||||
/// Выполняется
|
||||
/// </summary>
|
||||
InProgress,
|
||||
|
||||
/// <summary>
|
||||
/// Завершено
|
||||
/// </summary>
|
||||
Finish
|
||||
}
|
||||
|
@ -1,40 +1,17 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Serilog;
|
||||
|
||||
namespace ProjectAccordionBus;
|
||||
|
||||
internal static class Program
|
||||
namespace ProjectAccordionBus
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
internal static class Program
|
||||
{
|
||||
// To customize application configuration such as set high DPI settings or default font,
|
||||
// see https://aka.ms/applicationconfiguration.
|
||||
ApplicationConfiguration.Initialize();
|
||||
|
||||
ServiceCollection services = new();
|
||||
ConfigureServices(services);
|
||||
using ServiceProvider serviceProvider = services.BuildServiceProvider();
|
||||
Application.Run(serviceProvider.GetRequiredService<FormBusCollection>());
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
// To customize application configuration such as set high DPI settings or default font,
|
||||
// see https://aka.ms/applicationconfiguration.
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
private static void ConfigureServices(ServiceCollection services)
|
||||
{
|
||||
services
|
||||
.AddSingleton<FormBusCollection>()
|
||||
.AddLogging(option =>
|
||||
{
|
||||
option.SetMinimumLevel(LogLevel.Information);
|
||||
var config = new ConfigurationBuilder()
|
||||
.AddJsonFile("serilogConfig.json", optional: false, reloadOnChange: true)
|
||||
.Build();
|
||||
option.AddSerilog(Log.Logger = new LoggerConfiguration()
|
||||
.ReadFrom.Configuration(config)
|
||||
.CreateLogger());
|
||||
});
|
||||
}
|
||||
}
|
@ -8,42 +8,4 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
|
||||
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.11" />
|
||||
<PackageReference Include="Serilog" Version="3.1.1" />
|
||||
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
|
||||
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
|
||||
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="nlog.config">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="serilogConfig.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,63 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ProjectAccordionBus.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
|
||||
/// </summary>
|
||||
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
|
||||
// с помощью такого средства, как ResGen или Visual Studio.
|
||||
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
|
||||
// с параметром /str или перестройте свой проект VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectAccordionBus.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
|
||||
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
autoReload="true" internalLogLevel="Info">
|
||||
|
||||
<targets>
|
||||
<target xsi:type="File" name="tofile" fileName="carlog-${shortdate}.log" />
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="*" minlevel="Debug" writeTo="tofile" />
|
||||
</rules>
|
||||
</nlog>
|
||||
</configuration>
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"Serilog": {
|
||||
"Using": [ "Serilog.Sinks.File" ],
|
||||
"MinimumLevel": "Information",
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "Logs/log_.log",
|
||||
"rollingInterval": "Day",
|
||||
"outputTemplate": "[{Timestamp:HH:mm:ss.fff}]{Level:u4}: {Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
|
||||
"Properties": {
|
||||
"Application": "Linkor"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user