create LibraryUtils project

This commit is contained in:
Zakharov_Rostislav 2024-11-17 16:57:14 +04:00
parent c5b14425b0
commit 328b25c576
9 changed files with 102 additions and 72 deletions

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibraryWinFormsApp
namespace LibraryUtils.FileChooser
{
public enum DocType
{

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibraryUtils.FileChooser
{
public class FileChooser
{
private static string GetFileExtension(DocType type)
{
switch (type)
{
case DocType.Excel:
return ".xlsx";
case DocType.Word:
return ".docx";
case DocType.Pdf:
return ".pdf";
default:
return "";
}
}
public static string GetFileFullName(DocType type)
{
string extension = GetFileExtension(type);
if (string.IsNullOrEmpty(extension))
{
throw new Exception("Invalid file extension");
}
using SaveFileDialog fileDialog = new SaveFileDialog
{
Filter = $"Файлы|*{extension}"
};
if (fileDialog.ShowDialog() == DialogResult.OK)
{
return fileDialog.FileName;
}
return "";
}
}
}

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibraryUtils.ImageConverter
{
public class ImageConverter
{
public static Image StringToImage(string bytes)
{
byte[] arrayimg = Convert.FromBase64String(bytes);
Image imageStr = Image.FromStream(new MemoryStream(arrayimg));
return imageStr;
}
public static string ImageToString(Image image)
{
using (var ms = new MemoryStream())
{
image.Save(ms, image.RawFormat);
byte[] imageBytes = ms.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
public static byte[] StringToByteArray(string bytes)
{
return Convert.FromBase64String(bytes);
}
}
}

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibraryDataModels", "Librar
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibraryDatabase", "LibraryDatabase\LibraryDatabase.csproj", "{4F0EC406-67F6-49C1-97C8-F553455780FB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryUtils", "LibraryUtils\LibraryUtils.csproj", "{C2309DD0-4F3E-42C5-9727-793219E25E09}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -33,6 +35,10 @@ Global
{4F0EC406-67F6-49C1-97C8-F553455780FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F0EC406-67F6-49C1-97C8-F553455780FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F0EC406-67F6-49C1-97C8-F553455780FB}.Release|Any CPU.Build.0 = Release|Any CPU
{C2309DD0-4F3E-42C5-9727-793219E25E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C2309DD0-4F3E-42C5-9727-793219E25E09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2309DD0-4F3E-42C5-9727-793219E25E09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C2309DD0-4F3E-42C5-9727-793219E25E09}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -15,6 +15,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls.Primitives;
using System.Windows.Forms;
using static LibraryUtils.ImageConverter.ImageConverter;
namespace LibraryWinFormsApp
{
@ -25,7 +26,6 @@ namespace LibraryWinFormsApp
private BookView? _book = null;
private IBookStorage _bookStorage;
private IAuthorStorage _authorStorage;
private ImageConverter _imageConverter = new ImageConverter();
public FormBook(IBookStorage bookStorage, IAuthorStorage authorStorage)
{
InitializeComponent();
@ -65,7 +65,7 @@ namespace LibraryWinFormsApp
authorField.SelectedItem = _book.Author;
try
{
pictureBox.Image = _imageConverter.StringToImage(_cover);
pictureBox.Image = StringToImage(_cover);
}
catch
{
@ -168,7 +168,7 @@ namespace LibraryWinFormsApp
{
var image_new = new Bitmap(dialog.FileName);
pictureBox.Image = image_new;
_cover = _imageConverter.ImageToString(image_new);
_cover = ImageToString(image_new);
}
dialog.Dispose();

@ -5,6 +5,9 @@ using LibraryDataModels.Views;
using System.Windows.Forms;
using YunusovComponentsLibrary;
using YunusovComponentsLibrary.OfficePackage.HelperModels;
using LibraryUtils.FileChooser;
using static LibraryUtils.FileChooser.FileChooser;
using static LibraryUtils.ImageConverter.ImageConverter;
namespace LibraryWinFormsApp
{
@ -13,7 +16,6 @@ namespace LibraryWinFormsApp
private IBookStorage _bookStorage;
private IAuthorStorage _authorStorage;
private List<BookView> _books = new List<BookView>();
private ImageConverter _converter = new ImageConverter();
public FormBooks(IBookStorage bookStorage, IAuthorStorage authorStorage)
{
InitializeComponent();
@ -219,39 +221,6 @@ namespace LibraryWinFormsApp
}
}
private string GetFileExtension(DocType type)
{
switch (type)
{
case DocType.Excel:
return ".xlsx";
case DocType.Word:
return ".docx";
case DocType.Pdf:
return ".pdf";
default:
return "";
}
}
private string GetFileFullName(DocType type)
{
string extension = GetFileExtension(type);
if (string.IsNullOrEmpty(extension))
{
throw new Exception("Invalid file extension");
}
using SaveFileDialog fileDialog = new SaveFileDialog
{
Filter = $"Ôàéëû|*{extension}"
};
if (fileDialog.ShowDialog() == DialogResult.OK)
{
return fileDialog.FileName;
}
return "";
}
private void CreatePdf()
{
string fileName = GetFileFullName(DocType.Pdf);
@ -263,7 +232,7 @@ namespace LibraryWinFormsApp
List<byte[]> selectedImages = new List<byte[]>();
foreach (var book in _books)
{
selectedImages.Add(_converter.StringToByteArray(book.BookCover));
selectedImages.Add(StringToByteArray(book.BookCover));
}
var info = new PdfImageInfo
{

@ -1,33 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibraryWinFormsApp
{
internal class ImageConverter
{
public Image StringToImage(string bytes)
{
byte[] arrayimg = Convert.FromBase64String(bytes);
Image imageStr = Image.FromStream(new MemoryStream(arrayimg));
return imageStr;
}
public string ImageToString(Image image)
{
using (var ms = new MemoryStream())
{
image.Save(ms, image.RawFormat);
byte[] imageBytes = ms.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
public byte[] StringToByteArray(string bytes)
{
return Convert.FromBase64String(bytes);
}
}
}

@ -17,6 +17,7 @@
<ItemGroup>
<ProjectReference Include="..\LibraryDatabase\LibraryDatabase.csproj" />
<ProjectReference Include="..\LibraryUtils\LibraryUtils.csproj" />
</ItemGroup>
</Project>