1
This commit is contained in:
parent
ea5afbeaf6
commit
e5c8b35348
@ -1,138 +1,133 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using UniversityBusinessLogics.MailWorker;
|
||||
using UniversityBusinessLogics.OfficePackage;
|
||||
using UniversityContracts.BindingModels;
|
||||
using UniversityContracts.BusinessLogicContracts;
|
||||
using UniversityContracts.StoragesContracts;
|
||||
|
||||
namespace UniversityBusinessLogics.BusinessLogic
|
||||
namespace UniversityBusinessLogics.BusinessLogics;
|
||||
|
||||
public class ReportLogic : IReportLogic
|
||||
{
|
||||
public class ReportLogic : IReportLogic
|
||||
{
|
||||
private readonly AbstractSaveToWord _saveToWord;
|
||||
private readonly IPurchaseStorage _purchaseStorage;
|
||||
private readonly IOperationStorage _carStorage;
|
||||
private readonly AbstractSaveToExcel _saveToExcel;
|
||||
private readonly IPaymentStorage _paymentStorage;
|
||||
private readonly AbstractMailWorker _mailWorker;
|
||||
private readonly AbstractSaveToPdf _saveToPdf;
|
||||
private readonly AbstractSaveToWord _saveToWord;
|
||||
private readonly IPurchaseStorage _purchaseStorage;
|
||||
private readonly IOperationStorage _carStorage;
|
||||
private readonly AbstractSaveToExcel _saveToExcel;
|
||||
private readonly IPaymentStorage _paymentStorage;
|
||||
private readonly AbstractMailWorker _mailWorker;
|
||||
private readonly AbstractSaveToPdf _saveToPdf;
|
||||
|
||||
public ReportLogic(AbstractSaveToWord saveToWord, IPurchaseStorage purchaseStorage, AbstractSaveToExcel saveToExcel,
|
||||
AbstractMailWorker mailWorker, IPaymentStorage paymentStorage, AbstractSaveToPdf saveToPdf, IOperationStorage carStorage)
|
||||
{
|
||||
_mailWorker = mailWorker;
|
||||
_paymentStorage = paymentStorage;
|
||||
_saveToExcel = saveToExcel;
|
||||
_saveToWord = saveToWord;
|
||||
_purchaseStorage = purchaseStorage;
|
||||
_saveToPdf = saveToPdf;
|
||||
_carStorage = carStorage;
|
||||
}
|
||||
public ReportLogic(AbstractSaveToWord saveToWord, IPurchaseStorage purchaseStorage, AbstractSaveToExcel saveToExcel,
|
||||
AbstractMailWorker mailWorker, IPaymentStorage paymentStorage, AbstractSaveToPdf saveToPdf, IOperationStorage carStorage)
|
||||
{
|
||||
_mailWorker = mailWorker;
|
||||
_paymentStorage = paymentStorage;
|
||||
_saveToExcel = saveToExcel;
|
||||
_saveToWord = saveToWord;
|
||||
_purchaseStorage = purchaseStorage;
|
||||
_saveToPdf = saveToPdf;
|
||||
_carStorage = carStorage;
|
||||
}
|
||||
|
||||
public void SavePurchasesToWord(ReportBindingModel option)
|
||||
{
|
||||
_saveToWord.CreateDoc(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Title = "Список сделок вместе с операциями",
|
||||
ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
});
|
||||
}
|
||||
public void SavePurchasesToWord(ReportBindingModel option)
|
||||
{
|
||||
_saveToWord.CreateDoc(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Title = "Список сделок вместе с операциями",
|
||||
ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
});
|
||||
}
|
||||
|
||||
public void SavePurchasesToExcel(ReportBindingModel option)
|
||||
{
|
||||
_saveToExcel.CreateReportPurchase(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Title = "Список сделок вместе с операциями",
|
||||
ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
Headers = new() { "Сделка", "Дата сделки", }
|
||||
});
|
||||
}
|
||||
public void SavePurchasesToExcel(ReportBindingModel option)
|
||||
{
|
||||
_saveToExcel.CreateReportPurchase(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Title = "Список сделок вместе с операциями",
|
||||
ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
Headers = new() { "Сделка", "Дата сделки",}
|
||||
});
|
||||
}
|
||||
|
||||
public void SendPaymentsToEmail(ReportDateRangeBindingModel option, string email)
|
||||
{
|
||||
var payments = _paymentStorage.GetFilteredList(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
});
|
||||
option.Stream = new MemoryStream();
|
||||
_saveToPdf.CreateDocForPayments(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
Stream = option.Stream,
|
||||
Title = "Данные по операциям с оплатами за период",
|
||||
ReportObjects = payments.Select(x => (object)x).ToList()
|
||||
});
|
||||
public void SendPaymentsToEmail(ReportDateRangeBindingModel option, string email)
|
||||
{
|
||||
var payments = _paymentStorage.GetFilteredList(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
});
|
||||
option.Stream = new MemoryStream();
|
||||
_saveToPdf.CreateDocForPayments(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
Stream = option.Stream,
|
||||
Title = "Данные по операциям с оплатами за период",
|
||||
ReportObjects = payments.Select(x => (object)x).ToList()
|
||||
});
|
||||
|
||||
_mailWorker.MailSendAsync(new()
|
||||
{
|
||||
FilesStreams = new() { new(option.Stream, "report.pdf") },
|
||||
Subject = $"Отчет по оплатам за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}",
|
||||
MailAddress = email,
|
||||
});
|
||||
}
|
||||
_mailWorker.MailSendAsync(new()
|
||||
{
|
||||
FilesStreams = new() { new(option.Stream, "report.pdf") },
|
||||
Subject = $"Отчет по оплатам за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}",
|
||||
MailAddress = email,
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveOperationsToWord(ReportBindingModel option)
|
||||
{
|
||||
_saveToWord.CreateDoc(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Title = "Список операций вместе с сделками",
|
||||
ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
});
|
||||
}
|
||||
public void SaveOperationsToWord(ReportBindingModel option)
|
||||
{
|
||||
_saveToWord.CreateDoc(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Title = "Список операций вместе с сделками",
|
||||
ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveOperationsToExcel(ReportBindingModel option)
|
||||
{
|
||||
_saveToExcel.CreateReportOperations(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Ids = option.Ids.ToList(),
|
||||
Title = "Список операций вместе с сделками",
|
||||
ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
Headers = new() { "Вид", "Тип", "Дата" }
|
||||
});
|
||||
}
|
||||
public void SaveOperationsToExcel(ReportBindingModel option)
|
||||
{
|
||||
_saveToExcel.CreateReportOperations(new()
|
||||
{
|
||||
FileName = option.FileName,
|
||||
Stream = option.Stream,
|
||||
Ids = option.Ids.ToList(),
|
||||
Title = "Список операций вместе с сделками",
|
||||
ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() })
|
||||
.Select(x => (object)x).ToList(),
|
||||
Headers = new() { "Вид", "Тип", "Дата"}
|
||||
});
|
||||
}
|
||||
|
||||
public void SendCostsToEmail(ReportDateRangeBindingModel option, string email)
|
||||
{
|
||||
var purchaseVisit = _purchaseStorage.GetFilteredList(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
});
|
||||
option.Stream = new MemoryStream();
|
||||
_saveToPdf.CreateDocForPurchases(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
Stream = option.Stream,
|
||||
Title = "Данные по сделке со статьями затрат за период",
|
||||
ReportObjects = purchaseVisit.Select(x => (object)x).ToList()
|
||||
});
|
||||
public void SendCostsToEmail(ReportDateRangeBindingModel option, string email)
|
||||
{
|
||||
var purchaseVisit = _purchaseStorage.GetFilteredList(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
});
|
||||
option.Stream = new MemoryStream();
|
||||
_saveToPdf.CreateDocForPurchases(new()
|
||||
{
|
||||
DateFrom = option.DateFrom,
|
||||
DateTo = option.DateTo,
|
||||
Stream = option.Stream,
|
||||
Title = "Данные по сделке со статьями затрат за период",
|
||||
ReportObjects = purchaseVisit.Select(x => (object)x).ToList()
|
||||
});
|
||||
|
||||
_mailWorker.MailSendAsync(new()
|
||||
{
|
||||
FilesStreams = new() { new(option.Stream, "report.pdf") },
|
||||
Subject = $"Отчет по статьям затрат за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}",
|
||||
MailAddress = email,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_mailWorker.MailSendAsync(new()
|
||||
{
|
||||
FilesStreams = new() { new(option.Stream, "report.pdf") },
|
||||
Subject = $"Отчет по статьям затрат за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}",
|
||||
MailAddress = email,
|
||||
});
|
||||
}
|
||||
}
|
@ -188,17 +188,17 @@ namespace UniversityBusinessLogics.OfficePackage.Implements
|
||||
_shareStringPart.SharedStringTable = new SharedStringTable();
|
||||
}
|
||||
|
||||
// Создаем лист в книгу
|
||||
var worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
|
||||
worksheetPart.Worksheet = new Worksheet(new SheetData());
|
||||
// Create a new worksheet part
|
||||
var workbookPart = _spreadsheetDocument.AddWorkbookPart();
|
||||
workbookPart.Workbook = new Workbook();
|
||||
|
||||
// Добавляем лист в книгу
|
||||
var sheets = _spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets());
|
||||
var sheet = new Sheet()
|
||||
// Set the new worksheet as the active worksheet
|
||||
var sheets = workbookPart.Workbook.AppendChild(new Sheets());
|
||||
var sheet = new Sheet
|
||||
{
|
||||
Id = _spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart),
|
||||
SheetId = 1,
|
||||
Name = "Лист"
|
||||
SheetId = (uint)sheets.ChildElements.Count + 1,
|
||||
Name = "Sheet1" // You can change the name as needed
|
||||
};
|
||||
sheets.Append(sheet);
|
||||
|
||||
@ -290,10 +290,7 @@ namespace UniversityBusinessLogics.OfficePackage.Implements
|
||||
}
|
||||
}
|
||||
|
||||
var mergeCell = new MergeCell()
|
||||
{
|
||||
Reference = new StringValue(excelParams.Merge)
|
||||
};
|
||||
var mergeCell = new MergeCell { Reference = excelParams.Merge };
|
||||
mergeCells.Append(mergeCell);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
using Serilog;
|
||||
using UniversityBusinessLogics.BusinessLogic;
|
||||
using UniversityBusinessLogics.BusinessLogics;
|
||||
using UniversityBusinessLogics.MailWorker;
|
||||
using UniversityBusinessLogics.OfficePackage;
|
||||
using UniversityBusinessLogics.OfficePackage.Implements;
|
||||
|
Loading…
Reference in New Issue
Block a user