ПИбд-22 Боровков М В 4 лабораторная работа #4

Closed
bekodeg wants to merge 23 commits from labWork4 into labWork3
9 changed files with 41 additions and 44 deletions
Showing only changes of commit 6c3ef830b4 - Show all commits

View File

@ -32,26 +32,23 @@ namespace SushiBarBusinessLogic.BusinessLogics
/// <returns></returns> /// <returns></returns>
public List<ReportSushiComponentViewModel> GetSushiComponent() public List<ReportSushiComponentViewModel> GetSushiComponent()
{ {
var components = _componentStorage.GetFullList();
var sushis = _sushiStorage.GetFullList(); var sushis = _sushiStorage.GetFullList();
var list = new List<ReportSushiComponentViewModel>(); var list = new List<ReportSushiComponentViewModel>();
foreach (var component in components) foreach (var sushi in sushis)
{ {
var record = new ReportSushiComponentViewModel var record = new ReportSushiComponentViewModel
{ {
ComponentName = component.ComponentName, SushiName = sushi.SushiName,
Sushis = new List<Tuple<string, int>>(), Components = new List<Tuple<string, int>>(),
TotalCount = 0 TotalCount = 0
}; };
foreach (var sushi in sushis) foreach (var component in sushi.SushiComponents)
{ {
if (sushi.SushiComponents.ContainsKey(component.Id)) record.Components.Add(new Tuple<string, int>(
{ component.Value.Item1.ComponentName,
record.Sushis.Add(new Tuple<string, component.Value.Item2
int>(sushi.SushiName, sushi.SushiComponents[component.Id].Item2)); ));
record.TotalCount += record.TotalCount += component.Value.Item2;
sushi.SushiComponents[component.Id].Item2;
}
} }
list.Add(record); list.Add(record);
} }
@ -66,8 +63,7 @@ namespace SushiBarBusinessLogic.BusinessLogics
{ {
return _orderStorage.GetFilteredList(new OrderSearchModel return _orderStorage.GetFilteredList(new OrderSearchModel
{ {
DateFrom DateFrom = model.DateFrom,
= model.DateFrom,
DateTo = model.DateTo DateTo = model.DateTo
}) })
.Select(x => new ReportOrdersViewModel .Select(x => new ReportOrdersViewModel
@ -75,6 +71,7 @@ namespace SushiBarBusinessLogic.BusinessLogics
Id = x.Id, Id = x.Id,
DateCreate = x.DateCreate, DateCreate = x.DateCreate,
SushiName = x.SushiName, SushiName = x.SushiName,
OrderStatus = x.Status.ToString(),
Sum = x.Sum Sum = x.Sum
}) })
.ToList(); .ToList();
@ -88,7 +85,7 @@ namespace SushiBarBusinessLogic.BusinessLogics
_saveToWord.CreateDoc(new WordInfo _saveToWord.CreateDoc(new WordInfo
{ {
FileName = model.FileName, FileName = model.FileName,
Title = "Список компонент", Title = "Список суши",
Sushis = _sushiStorage.GetFullList() Sushis = _sushiStorage.GetFullList()
}); });
} }
@ -101,7 +98,7 @@ namespace SushiBarBusinessLogic.BusinessLogics
_saveToExcel.CreateReport(new ExcelInfo _saveToExcel.CreateReport(new ExcelInfo
{ {
FileName = model.FileName, FileName = model.FileName,
Title = "Список компонент", Title = "Список суши",
SushiComponents = GetSushiComponent() SushiComponents = GetSushiComponent()
}); });
} }

View File

@ -25,35 +25,33 @@ namespace SushiBarBusinessLogic.OfficePackage
CellToName = "C1" CellToName = "C1"
}); });
uint rowIndex = 2; uint rowIndex = 2;
foreach (var pc in info.SushiComponents) foreach (var sc in info.SushiComponents)
{ {
InsertCellInWorksheet(new ExcelCellParameters InsertCellInWorksheet(new ExcelCellParameters
{ {
ColumnName = "A", ColumnName = "A",
RowIndex = rowIndex, RowIndex = rowIndex,
Text = pc.ComponentName, Text = sc.SushiName,
StyleInfo = ExcelStyleInfoType.Text StyleInfo = ExcelStyleInfoType.Text
}); });
rowIndex++; ++rowIndex;
foreach (var sushi in pc.Sushis) foreach (var sushi in sc.Components)
{ {
InsertCellInWorksheet(new ExcelCellParameters InsertCellInWorksheet(new ExcelCellParameters
{ {
ColumnName = "B", ColumnName = "B",
RowIndex = rowIndex, RowIndex = rowIndex,
Text = sushi.Item1, Text = sushi.Item1,
StyleInfo = StyleInfo = ExcelStyleInfoType.TextWithBroder
ExcelStyleInfoType.TextWithBroder
}); });
InsertCellInWorksheet(new ExcelCellParameters InsertCellInWorksheet(new ExcelCellParameters
{ {
ColumnName = "C", ColumnName = "C",
RowIndex = rowIndex, RowIndex = rowIndex,
Text = sushi.Item2.ToString(), Text = sushi.Item2.ToString(),
StyleInfo = StyleInfo = ExcelStyleInfoType.TextWithBroder
ExcelStyleInfoType.TextWithBroder
}); });
rowIndex++; ++rowIndex;
} }
InsertCellInWorksheet(new ExcelCellParameters InsertCellInWorksheet(new ExcelCellParameters
{ {
@ -66,10 +64,10 @@ namespace SushiBarBusinessLogic.OfficePackage
{ {
ColumnName = "C", ColumnName = "C",
RowIndex = rowIndex, RowIndex = rowIndex,
Text = pc.TotalCount.ToString(), Text = sc.TotalCount.ToString(),
StyleInfo = ExcelStyleInfoType.Text StyleInfo = ExcelStyleInfoType.Text
}); });
rowIndex++; ++rowIndex;
} }
SaveExcel(info); SaveExcel(info);
} }
@ -82,8 +80,7 @@ namespace SushiBarBusinessLogic.OfficePackage
/// Добавляем новую ячейку в лист /// Добавляем новую ячейку в лист
/// </summary> /// </summary>
/// <param name="cellParameters"></param> /// <param name="cellParameters"></param>
protected abstract void InsertCellInWorksheet(ExcelCellParameters protected abstract void InsertCellInWorksheet(ExcelCellParameters excelParams);
excelParams);
/// <summary> /// <summary>
/// Объединение ячеек /// Объединение ячеек
/// </summary> /// </summary>

View File

@ -25,10 +25,10 @@ namespace SushiBarBusinessLogic.OfficePackage
Style = "Normal", Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Center ParagraphAlignment = PdfParagraphAlignmentType.Center
}); });
CreateTable(new List<string> { "2cm", "3cm", "6cm", "3cm" }); CreateTable(new List<string> { "2cm", "3cm", "6cm", "3cm", "4cm" });
CreateRow(new PdfRowParameters CreateRow(new PdfRowParameters
{ {
Texts = new List<string> { "Номер", "Дата заказа", "Изделие", "Сумма" }, Texts = new List<string> { "Номер", "Дата заказа", "Изделие", "Статус" },
Style = "NormalTitle", Style = "NormalTitle",
ParagraphAlignment = PdfParagraphAlignmentType.Center ParagraphAlignment = PdfParagraphAlignmentType.Center
}); });
@ -40,7 +40,9 @@ namespace SushiBarBusinessLogic.OfficePackage
order.Id.ToString(), order.Id.ToString(),
order.DateCreate.ToShortDateString(), order.DateCreate.ToShortDateString(),
order.SushiName, order.SushiName,
order.Sum.ToString() }, order.Sum.ToString(),
order.OrderStatus.ToString()
},
Style = "Normal", Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Left ParagraphAlignment = PdfParagraphAlignmentType.Left
}); });

View File

@ -26,7 +26,8 @@ namespace SushiBarBusinessLogic.OfficePackage
CreateParagraph(new WordParagraph CreateParagraph(new WordParagraph
{ {
Texts = new List<(string, WordTextProperties)> { Texts = new List<(string, WordTextProperties)> {
(sushis.SushiName, new WordTextProperties { Size = "24", }) (sushis.SushiName, new WordTextProperties { Size = "24", Bold = true }),
(" - цена " + sushis.Price.ToString(), new WordTextProperties { Size = "24" })
}, },
TextProperties = new WordTextProperties TextProperties = new WordTextProperties
{ {

View File

@ -193,8 +193,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
} }
protected override void CreateExcel(ExcelInfo info) protected override void CreateExcel(ExcelInfo info)
{ {
_spreadsheetDocument = SpreadsheetDocument.Create(info.FileName, _spreadsheetDocument = SpreadsheetDocument.Create(info.FileName, SpreadsheetDocumentType.Workbook);
SpreadsheetDocumentType.Workbook);
// Создаем книгу (в ней хранятся листы) // Создаем книгу (в ней хранятся листы)
var workbookpart = _spreadsheetDocument.AddWorkbookPart(); var workbookpart = _spreadsheetDocument.AddWorkbookPart();
workbookpart.Workbook = new Workbook(); workbookpart.Workbook = new Workbook();
@ -266,7 +265,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
} }
var newCell = new Cell() var newCell = new Cell()
{ {
CellReference = excelParams.CellReference CellReference = excelParams.CellReference
}; };
row.InsertBefore(newCell, refCell); row.InsertBefore(newCell, refCell);
cell = newCell; cell = newCell;
@ -294,8 +293,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
mergeCells = new MergeCells(); mergeCells = new MergeCells();
if (_worksheet.Elements<CustomSheetView>().Any()) if (_worksheet.Elements<CustomSheetView>().Any())
{ {
_worksheet.InsertAfter(mergeCells, _worksheet.InsertAfter(mergeCells, _worksheet.Elements<CustomSheetView>().First());
_worksheet.Elements<CustomSheetView>().First());
} }
else else
{ {
@ -315,6 +313,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
return; return;
} }
_spreadsheetDocument.WorkbookPart!.Workbook.Save(); _spreadsheetDocument.WorkbookPart!.Workbook.Save();
_spreadsheetDocument.Dispose();
} }
} }
} }

View File

@ -48,8 +48,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
} }
var paragraph = _section.AddParagraph(pdfParagraph.Text); var paragraph = _section.AddParagraph(pdfParagraph.Text);
paragraph.Format.SpaceAfter = "1cm"; paragraph.Format.SpaceAfter = "1cm";
paragraph.Format.Alignment = paragraph.Format.Alignment = GetParagraphAlignment(pdfParagraph.ParagraphAlignment);
GetParagraphAlignment(pdfParagraph.ParagraphAlignment);
paragraph.Style = pdfParagraph.Style; paragraph.Style = pdfParagraph.Style;
} }
protected override void CreateTable(List<string> columns) protected override void CreateTable(List<string> columns)
@ -83,8 +82,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
row.Cells[i].Borders.Right.Width = borderWidth; row.Cells[i].Borders.Right.Width = borderWidth;
row.Cells[i].Borders.Top.Width = borderWidth; row.Cells[i].Borders.Top.Width = borderWidth;
row.Cells[i].Borders.Bottom.Width = borderWidth; row.Cells[i].Borders.Bottom.Width = borderWidth;
row.Cells[i].Format.Alignment = row.Cells[i].Format.Alignment = GetParagraphAlignment(rowParameters.ParagraphAlignment);
GetParagraphAlignment(rowParameters.ParagraphAlignment);
row.Cells[i].VerticalAlignment = VerticalAlignment.Center; row.Cells[i].VerticalAlignment = VerticalAlignment.Center;
} }
} }

View File

@ -58,6 +58,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
{ {
LineRule = LineSpacingRuleValues.Auto LineRule = LineSpacingRuleValues.Auto
}); });
properties.AppendChild(new Indentation()); properties.AppendChild(new Indentation());
var paragraphMarkRunProperties = new ParagraphMarkRunProperties(); var paragraphMarkRunProperties = new ParagraphMarkRunProperties();
if (!string.IsNullOrEmpty(paragraphProperties.Size)) if (!string.IsNullOrEmpty(paragraphProperties.Size))
@ -114,6 +115,7 @@ namespace SushiBarBusinessLogic.OfficePackage.Implements
} }
_docBody.AppendChild(CreateSectionProperties()); _docBody.AppendChild(CreateSectionProperties());
_wordDocument.MainDocumentPart!.Document.Save(); _wordDocument.MainDocumentPart!.Document.Save();
_wordDocument.Dispose();
} }
} }
} }

View File

@ -12,5 +12,6 @@ namespace SushiBarContracts.ViewModels
public DateTime DateCreate { get; set; } public DateTime DateCreate { get; set; }
public string SushiName { get; set; } = string.Empty; public string SushiName { get; set; } = string.Empty;
public double Sum { get; set; } public double Sum { get; set; }
public string OrderStatus { get; set; } = string.Empty;
} }
} }

View File

@ -8,8 +8,8 @@ namespace SushiBarContracts.ViewModels
{ {
public class ReportSushiComponentViewModel public class ReportSushiComponentViewModel
{ {
public string ComponentName { get; set; } = string.Empty; public string SushiName { get; set; } = string.Empty;
public int TotalCount { get; set; } public int TotalCount { get; set; }
public List<Tuple<string, int>> Sushis { get; set; } = new List<Tuple<string, int>>(); public List<Tuple<string, int>> Components { get; set; } = new();
} }
} }