Serialize converters were added

This commit is contained in:
Evgeny Redikultsev
2024-09-08 17:47:46 +05:00
parent 408e9f6999
commit 6e0b7b8070
60 changed files with 1713 additions and 443 deletions

View File

@@ -7,83 +7,83 @@ namespace StructureHelperLogics.Models.Storages
{
public class FileStorageManager
{
private readonly Dictionary<Guid, OpenedFile> _openedFiles = new Dictionary<Guid, OpenedFile>();
//public class FileStorageManager
//{
// private readonly Dictionary<Guid, OpenedFile> _openedFiles = new Dictionary<Guid, OpenedFile>();
public void OpenFile()
{
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
openFileDialog.Multiselect = true;
openFileDialog.Title = "Select Files";
// public void OpenFile()
// {
// using (OpenFileDialog openFileDialog = new OpenFileDialog())
// {
// openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
// openFileDialog.Multiselect = true;
// openFileDialog.Title = "Select Files";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
foreach (var filePath in openFileDialog.FileNames)
{
var fileId = Guid.NewGuid();
var openedFile = new OpenedFile(fileId, filePath);
// if (openFileDialog.ShowDialog() == DialogResult.OK)
// {
// foreach (var filePath in openFileDialog.FileNames)
// {
// var fileId = Guid.NewGuid();
// var openedFile = new OpenedFile(fileId, filePath);
_openedFiles[fileId] = openedFile;
// _openedFiles[fileId] = openedFile;
Console.WriteLine($"File '{openedFile.FilePath}' opened with ID: {fileId}");
}
}
}
}
// Console.WriteLine($"File '{openedFile.FilePath}' opened with ID: {fileId}");
// }
// }
// }
// }
public OpenedFile GetFile(Guid fileId)
{
if (_openedFiles.TryGetValue(fileId, out var openedFile))
{
return openedFile;
}
// public OpenedFile GetFile(Guid fileId)
// {
// if (_openedFiles.TryGetValue(fileId, out var openedFile))
// {
// return openedFile;
// }
throw new KeyNotFoundException("File not found.");
}
// throw new KeyNotFoundException("File not found.");
// }
public void CloseFile(Guid fileId)
{
if (_openedFiles.ContainsKey(fileId))
{
_openedFiles.Remove(fileId);
Console.WriteLine($"File with ID: {fileId} has been closed.");
}
else
{
throw new KeyNotFoundException("File not found.");
}
}
// public void CloseFile(Guid fileId)
// {
// if (_openedFiles.ContainsKey(fileId))
// {
// _openedFiles.Remove(fileId);
// Console.WriteLine($"File with ID: {fileId} has been closed.");
// }
// else
// {
// throw new KeyNotFoundException("File not found.");
// }
// }
public void AddRelatedObjectToFile(Guid fileId, FileRelatedObject relatedObject)
{
var openedFile = GetFile(fileId);
openedFile.AddRelatedObject(relatedObject);
Console.WriteLine($"Added related object to file ID: {fileId}, Related Object: {relatedObject}");
}
// //public void AddRelatedObjectToFile(Guid fileId, FileRelatedObject relatedObject)
// //{
// // var openedFile = GetFile(fileId);
// // openedFile.AddRelatedObject(relatedObject);
// // Console.WriteLine($"Added related object to file ID: {fileId}, Related Object: {relatedObject}");
// //}
public FileRelatedObject GetRelatedObjectFromFile(Guid fileId, Guid objectId)
{
var openedFile = GetFile(fileId);
return openedFile.GetRelatedObject(objectId);
}
// //public FileRelatedObject GetRelatedObjectFromFile(Guid fileId, Guid objectId)
// //{
// // var openedFile = GetFile(fileId);
// // return openedFile.GetRelatedObject(objectId);
// //}
public void RemoveRelatedObjectFromFile(Guid fileId, Guid objectId)
{
var openedFile = GetFile(fileId);
openedFile.RemoveRelatedObject(objectId);
Console.WriteLine($"Removed related object with ID: {objectId} from file ID: {fileId}");
}
// public void RemoveRelatedObjectFromFile(Guid fileId, Guid objectId)
// {
// var openedFile = GetFile(fileId);
// openedFile.RemoveRelatedObject(objectId);
// Console.WriteLine($"Removed related object with ID: {objectId} from file ID: {fileId}");
// }
public void ListOpenedFiles()
{
foreach (var file in _openedFiles.Values)
{
Console.WriteLine($"File ID: {file.Id}, Path: {file.FilePath}, Related Objects Count: {file.RelatedObjects.Count}");
}
}
}
// public void ListOpenedFiles()
// {
// foreach (var file in _openedFiles.Values)
// {
// Console.WriteLine($"File ID: {file.Id}, Path: {file.FilePath}, Related Objects Count: {file.RelatedObjects.Count}");
// }
// }
//}
}

View File

@@ -7,78 +7,78 @@ using System.Threading.Tasks;
namespace StructureHelperLogics.Models.Storages
{
public class OpenedFile
{
public Guid Id { get; }
public string FilePath { get; }
public List<ISaveable> RelatedObjects { get; } // List of related objects
//public class OpenedFile
//{
// public Guid Id { get; }
// public string FilePath { get; }
// public List<ISaveable> RelatedObjects { get; } // List of related objects
public OpenedFile(Guid id, string filePath)
{
Id = id;
FilePath = filePath;
RelatedObjects = new List<ISaveable>();
}
// public OpenedFile(Guid id, string filePath)
// {
// Id = id;
// FilePath = filePath;
// RelatedObjects = new List<ISaveable>();
// }
public void AddRelatedObject(ISaveable relatedObject)
{
RelatedObjects.Add(relatedObject);
}
// public void AddRelatedObject(ISaveable relatedObject)
// {
// RelatedObjects.Add(relatedObject);
// }
public void RemoveRelatedObject(Guid objectId)
{
RelatedObjects.RemoveAll(o => o.Id == objectId);
}
// public void RemoveRelatedObject(Guid objectId)
// {
// RelatedObjects.RemoveAll(o => o.Id == objectId);
// }
public ISaveable GetRelatedObject(Guid objectId)
{
return RelatedObjects.Find(o => o.Id == objectId);
}
}
// public ISaveable GetRelatedObject(Guid objectId)
// {
// return RelatedObjects.Find(o => o.Id == objectId);
// }
//}
class Program
{
[STAThread] // Required for OpenFileDialog
static void Main()
{
var fileStorageManager = new FileStorageManager();
//class Program
//{
// [STAThread] // Required for OpenFileDialog
// static void Main()
// {
// var fileStorageManager = new FileStorageManager();
// Open files and add them to the storage
fileStorageManager.OpenFile();
// // Open files and add them to the storage
// fileStorageManager.OpenFile();
// List all opened files
Console.WriteLine("\nOpened Files:");
fileStorageManager.ListOpenedFiles();
// // List all opened files
// Console.WriteLine("\nOpened Files:");
// fileStorageManager.ListOpenedFiles();
// Example: Adding related objects to the first opened file (if any)
var openedFiles = new List<Guid>(fileStorageManager._openedFiles.Keys);
if (openedFiles.Count > 0)
{
var firstFileId = openedFiles[0];
var relatedObject = new FileRelatedObject("Sample Object", "This is a sample description");
fileStorageManager.AddRelatedObjectToFile(firstFileId, relatedObject);
// // Example: Adding related objects to the first opened file (if any)
// var openedFiles = new List<Guid>(fileStorageManager._openedFiles.Keys);
// if (openedFiles.Count > 0)
// {
// var firstFileId = openedFiles[0];
// var relatedObject = new FileRelatedObject("Sample Object", "This is a sample description");
// fileStorageManager.AddRelatedObjectToFile(firstFileId, relatedObject);
Console.WriteLine("\nAfter Adding Related Object:");
fileStorageManager.ListOpenedFiles();
// Console.WriteLine("\nAfter Adding Related Object:");
// fileStorageManager.ListOpenedFiles();
// Retrieve related object
var retrievedObject = fileStorageManager.GetRelatedObjectFromFile(firstFileId, relatedObject.Id);
Console.WriteLine($"\nRetrieved Related Object: {retrievedObject}");
// // Retrieve related object
// var retrievedObject = fileStorageManager.GetRelatedObjectFromFile(firstFileId, relatedObject.Id);
// Console.WriteLine($"\nRetrieved Related Object: {retrievedObject}");
// Remove related object
fileStorageManager.RemoveRelatedObjectFromFile(firstFileId, relatedObject.Id);
// // Remove related object
// fileStorageManager.RemoveRelatedObjectFromFile(firstFileId, relatedObject.Id);
Console.WriteLine("\nAfter Removing Related Object:");
fileStorageManager.ListOpenedFiles();
}
// Console.WriteLine("\nAfter Removing Related Object:");
// fileStorageManager.ListOpenedFiles();
// }
// Close all files
foreach (var fileId in openedFiles)
{
fileStorageManager.CloseFile(fileId);
}
}
}
// // Close all files
// foreach (var fileId in openedFiles)
// {
// fileStorageManager.CloseFile(fileId);
// }
// }
//}
}