CourseWorkElectronicsShop/ElectronicsShop/ElectronicsShopBusinessLogic/OfficePackage/AbstractSaveToWordClient.cs
2024-08-08 16:12:26 +04:00

93 lines
3.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using ElectronicsShopBusinessLogic.OfficePackage.HelperEnums;
using ElectronicsShopBusinessLogic.OfficePackage.HelperModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ElectronicsShopBusinessLogic.OfficePackage
{
public abstract class AbstractSaveToWordClient
{
public byte[]? CreateDoc(WordInfoClient info)
{
CreateWord(info);
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { (info.Title, new WordTextProperties { Bold = true, Size = "24", }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
List<int> PaymentsID = new List<int>();
foreach (var pr in info.Products)
{
int id = pr.PaymentID;
if (PaymentsID.Contains(id) == false)
{
PaymentsID.Add(id);
}
}
foreach (int id in PaymentsID)
{
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ($"Номер оплаты: {id}", new WordTextProperties { Bold = true, Size = "24", }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
double sum = 0;
foreach (var products in info.Products)
{
if (products.PaymentID == id)
{
sum += products.Price * products.count;
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ($"ID товара:{products.ID.ToString()}/Название:{products.ProductName.ToString()}/"
+ $"Стоимость:{products.Price * products.count}/Количество:{products.count.ToString()}/"
+ $"Статья_затрат:{products.CostItemName.ToString()}", new WordTextProperties { Bold = false, Size = "24", }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Both
}
});
}
}
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ($"Итого: {sum}\t", new WordTextProperties { Bold = false, Size = "24", }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Both
}
});
}
var document = SaveWord(info);
return document;
}
// Создание doc-файла
protected abstract void CreateWord(WordInfoClient info);
// Создание абзаца с текстом
protected abstract void CreateParagraph(WordParagraph paragraph);
// Сохранение файла
protected abstract byte[]? SaveWord(WordInfoClient info);
}
}