74 lines
3.3 KiB
C#
74 lines
3.3 KiB
C#
|
using ServiceSourceBusinessLogic.OfficePackage.HelperEnums;
|
|||
|
using ServiceSourceBusinessLogic.OfficePackage.HelperModels;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace ServiceSourceBusinessLogic.OfficePackage {
|
|||
|
public abstract class AbstractSaveToWord {
|
|||
|
|
|||
|
public byte[]? CreateDoc(WordInfo 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,
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
foreach (var work_client in info.WorksClients) {
|
|||
|
CreateParagraph(new WordParagraph {
|
|||
|
Texts = new List<(string, WordTextProperties)> {($"Номера работы:{work_client.WorkId}/Дата:{work_client.Date}/" +
|
|||
|
$"Сумма:{work_client.Price}", new WordTextProperties {
|
|||
|
Bold = true, Size = "24"
|
|||
|
})},
|
|||
|
TextProperties = new WordTextProperties {
|
|||
|
Size = "24",
|
|||
|
JustificationType = WordJustificationType.Both
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
foreach (var client in work_client._Clients) {
|
|||
|
CreateParagraph(new WordParagraph {
|
|||
|
Texts = new List<(string, WordTextProperties)> {($"Номер клиента:{client.client_id}/ФИО клиента:{client.client_fio}",
|
|||
|
new WordTextProperties {
|
|||
|
Bold = false, Size = "24"
|
|||
|
})},
|
|||
|
TextProperties = new WordTextProperties {
|
|||
|
Size = "24",
|
|||
|
JustificationType = WordJustificationType.Both
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
CreateParagraph(new WordParagraph {
|
|||
|
Texts = new List<(string, WordTextProperties)> {
|
|||
|
($"Итого:{work_client.TotalCount}", new WordTextProperties {
|
|||
|
Bold = true,
|
|||
|
Size = "24"
|
|||
|
})
|
|||
|
},
|
|||
|
TextProperties = new WordTextProperties {
|
|||
|
Size = "24",
|
|||
|
JustificationType = WordJustificationType.Both
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
var doucment = SaveWord(info);
|
|||
|
return doucment;
|
|||
|
}
|
|||
|
|
|||
|
// Создание документа
|
|||
|
protected abstract void CreateWord(WordInfo info);
|
|||
|
|
|||
|
// Создание абзаца с текстом
|
|||
|
protected abstract void CreateParagraph(WordParagraph paragraph);
|
|||
|
|
|||
|
// Сохранение файла
|
|||
|
protected abstract byte[]? SaveWord(WordInfo info);
|
|||
|
}
|
|||
|
}
|