CourseWork_BankYouBankrupt/BankYouBankrupt/BankYouBankruptBusinessLogic/OfficePackage/AbstractSaveToWord.cs

287 lines
8.4 KiB
C#
Raw Normal View History

2023-05-19 23:32:09 +04:00
using BankYouBankruptBusinessLogic.OfficePackage.HelperEnums;
using BankYouBankruptBusinessLogic.OfficePackage.HelperModels;
using BankYouBankruptDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankYouBankruptBusinessLogic.OfficePackage
{
public abstract class AbstractSaveToWord
{
//метод создания документа
public void CreateDoc(WordInfo info, OfficeOperationEnum operationEnum)
{
if (operationEnum == OfficeOperationEnum.Между_cчетами)
{
CreateMoneyTransferWord(info);
}
if (operationEnum == OfficeOperationEnum.Пополнениеарт)
{
CreateCreditingWord(info);
}
if (operationEnum == OfficeOperationEnum.Cнятие_сарты)
{
CreateDebitingWord(info);
}
if (operationEnum == OfficeOperationEnum.Дляассира)
{
CreateCashierWord(info);
}
}
private void CreateMoneyTransferWord(WordInfo 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
}
});
foreach (var transfer in info.MoneyTransfer)
{
List<List<(string, WordTextProperties)>> rowList = new()
{
new()
{
new("Номер счёта отправителя", new WordTextProperties { Bold = true, Size = "20" } ),
new("Номер счёта получателя", new WordTextProperties { Bold = true, Size = "20" } ),
new("Сумма операции", new WordTextProperties { Bold = true, Size = "20" } ),
new("Дата перевода", new WordTextProperties { Bold = true, Size = "20" } )
}
};
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ("Перевод №" + transfer.Id.ToString(), new WordTextProperties { Bold = true, Size = "24" }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
List<(string, WordTextProperties)> cellList = new()
{
new(transfer.AccountSenderNumber, new WordTextProperties { Size = "20" }),
new(transfer.AccountPayeeNumber, new WordTextProperties { Size = "20" }),
new(transfer.Sum.ToString(), new WordTextProperties { Size = "20"}),
new(transfer.DateOperation.ToString(), new WordTextProperties { Size = "20"}),
};
rowList.Add(cellList);
CreateTable(new WordParagraph
{
RowTexts = rowList,
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
}
SaveWord(info);
}
private void CreateCreditingWord(WordInfo 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
}
});
foreach (var crediting in info.Crediting)
{
List<List<(string, WordTextProperties)>> rowList = new()
{
new()
{
new("Номер карты", new WordTextProperties { Bold = true, Size = "24" } ),
new("Сумма пополнения", new WordTextProperties { Bold = true, Size = "24" } ),
new("Дата выполнения", new WordTextProperties { Bold = true, Size = "24" } )
}
};
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ("Пополнение №" + crediting.Id.ToString(), new WordTextProperties { Bold = true, Size = "24" }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
List<(string, WordTextProperties)> cellList = new()
{
new(crediting.CardNumber, new WordTextProperties { Size = "24" }),
new(crediting.Sum.ToString(), new WordTextProperties { Size = "24" }),
new(crediting.DateClose == null ? "В обработке" : crediting.DateClose.ToString(), new WordTextProperties { Size = "24" })
};
rowList.Add(cellList);
CreateTable(new WordParagraph
{
RowTexts = rowList,
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
}
SaveWord(info);
}
private void CreateDebitingWord(WordInfo 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
}
});
foreach (var crediting in info.Debiting)
{
List<List<(string, WordTextProperties)>> rowList = new()
{
new()
{
new("Номер карты", new WordTextProperties { Bold = true, Size = "24" } ),
new("Сумма снятия", new WordTextProperties { Bold = true, Size = "24" } ),
new("Дата выполнения", new WordTextProperties { Bold = true, Size = "24" } )
}
};
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ("Снятие №" + crediting.Id.ToString(), new WordTextProperties { Bold = true, Size = "24" }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
List<(string, WordTextProperties)> cellList = new()
{
new(crediting.CardNumber, new WordTextProperties { Size = "24" }),
new(crediting.Sum.ToString(), new WordTextProperties { Size = "24" }),
new(crediting.DateClose == null ? "В обработке" : crediting.DateClose.ToString(), new WordTextProperties { Size = "24" })
};
rowList.Add(cellList);
CreateTable(new WordParagraph
{
RowTexts = rowList,
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
}
SaveWord(info);
}
private void CreateCashierWord(WordInfo 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
}
});
foreach (var crediting in info.Debiting)
{
List<List<(string, WordTextProperties)>> rowList = new()
{
new()
{
new("Сумма заявки", new WordTextProperties { Bold = true, Size = "24" } ),
new("Дата открытия", new WordTextProperties { Bold = true, Size = "24" } ),
new("Статус", new WordTextProperties { Bold = true, Size = "24" } )
}
};
CreateParagraph(new WordParagraph
{
Texts = new List<(string, WordTextProperties)> { ("Заявка №" + crediting.Id.ToString(), new WordTextProperties { Bold = true, Size = "24" }) },
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
List<(string, WordTextProperties)> cellList = new()
{
new(crediting.Sum.ToString(), new WordTextProperties { Size = "24" }),
new(crediting.DateOpen.ToString(), new WordTextProperties { Size = "24" }),
new(crediting.Status.ToString(), new WordTextProperties { Size = "24" })
};
rowList.Add(cellList);
CreateTable(new WordParagraph
{
RowTexts = rowList,
TextProperties = new WordTextProperties
{
Size = "24",
JustificationType = WordJustificationType.Center
}
});
}
SaveWord(info);
}
// Создание doc-файла
protected abstract void CreateWord(WordInfo info);
// Создание абзаца с текстом
protected abstract void CreateParagraph(WordParagraph paragraph);
//Создание таблицы
protected abstract void CreateTable(WordParagraph paragraph);
// Сохранение файла
protected abstract void SaveWord(WordInfo info);
}
}