119 lines
4.5 KiB
C#
119 lines
4.5 KiB
C#
using BankBusinessLogic.OfficePackage.HelperModels;
|
|
using BankBusinessLogic.OfficePackage;
|
|
using BankContracts.BindingModels;
|
|
using BankContracts.SearchModels;
|
|
using BankContracts.StoragesContracts;
|
|
using BankContracts.ViewModels;
|
|
using BankContracts.BusinessLogicsContracts;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BankBusinessLogic.BusinessLogics
|
|
{
|
|
public class ReportLogicHeadwaiter : IReportHeadwaiterLogic
|
|
{
|
|
private readonly IRoomStorage _roomStorage;
|
|
private readonly ICreditStorage _dinnerStorage;
|
|
private readonly IAdditionsPlanStorage _mealPlansStorage;
|
|
private readonly IConferenceBookingStorage _conferenceBookingStorage;
|
|
private readonly AbstractSaveToExcelClient _saveToExcel;
|
|
private readonly AbstractSaveToWordHeadwaitre _saveToWord;
|
|
private readonly AbstractSaveToPdfClient _saveToPdf;
|
|
public ReportLogicHeadwaiter(IRoomStorage roomStorage, ICreditStorage dinnerStorage, IAdditionsPlanStorage mealPlansStorage, IConferenceBookingStorage conferenceBookingStorage, AbstractSaveToExcelClient saveToExcel, AbstractSaveToWordHeadwaitre saveToWord, AbstractSaveToPdfClient saveToPdf)
|
|
{
|
|
_roomStorage = roomStorage;
|
|
_dinnerStorage = dinnerStorage;
|
|
_mealPlansStorage = mealPlansStorage;
|
|
_conferenceBookingStorage = conferenceBookingStorage;
|
|
_saveToExcel = saveToExcel;
|
|
_saveToWord = saveToWord;
|
|
_saveToPdf = saveToPdf;
|
|
}
|
|
public List<ReportMealPlanDinnerViewModel> GetMealPlanDinner()
|
|
{
|
|
var mealPlans = _mealPlansStorage.GetFullList();
|
|
var dinners = _dinnerStorage.GetFullList();
|
|
var list = new List<ReportMealPlanDinnerViewModel>();
|
|
foreach (var dinner in dinners)
|
|
{
|
|
var record = new ReportMealPlanDinnerViewModel
|
|
{
|
|
DinnerName = dinner.DinnerName,
|
|
MealPlans = new List<Tuple<string, DateTime>>()
|
|
};
|
|
foreach (var mealPlan in mealPlans)
|
|
{
|
|
if (mealPlan.MealPlanDinners.ContainsKey(dinner.Id))
|
|
{
|
|
record.MealPlans.Add(new Tuple<string, DateTime>(mealPlans.MealPlanName, mealPlans.StartDate));
|
|
}
|
|
}
|
|
list.Add(record);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public List<ReportConferenceBindingRoomsViewModel> GetConferenceBindingRooms(ReportHeadwaiterBindingModel model)
|
|
{
|
|
var listAll = new List<ReportConferenceBindingRoomsViewModel>();
|
|
|
|
var listConferenceBinding = _conferenceBookingStorage.GetFilteredList(new ConferenceBookingSearchModel
|
|
{
|
|
HeadwaiterId = model.HeadwaiterId,
|
|
DateFrom = model.DateFrom,
|
|
DateTo = model.DateTo
|
|
});
|
|
|
|
var listRooms = _roomStorage.GetFilteredList(new RoomSearchModel());
|
|
|
|
foreach (var room in listRooms)
|
|
{
|
|
listAll.Add(new ReportConferenceBindingRoomsViewModel
|
|
{
|
|
RoomName = room.RoomName,
|
|
RoomPrice = room.RoomPrice,
|
|
RoomFrame = room.RoomFrame
|
|
});
|
|
|
|
}
|
|
|
|
return listAll;
|
|
}
|
|
|
|
public void SaveMealPlanDinnerToExcelFile(ReportHeadwaiterBindingModel model)
|
|
{
|
|
_saveToExcel.CreateReport(new ExcelInfoClient
|
|
{
|
|
FileName = model.FileName,
|
|
Title = "Список изделий",
|
|
MealPlanDinner = GetMealPlanDinner()
|
|
});
|
|
}
|
|
|
|
public void SaveMealPlanDinnerToWordFile(ReportHeadwaiterBindingModel model)
|
|
{
|
|
_saveToWord.CreateDoc(new WordInfoClient
|
|
{
|
|
FileName = model.FileName,
|
|
Title = "Список участников",
|
|
MealPlanDinner = GetMealPlanDinner()
|
|
});
|
|
}
|
|
|
|
public void SaveConferenceBindingRoomsToPdfFile(ReportHeadwaiterBindingModel model)
|
|
{
|
|
_saveToPdf.CreateDoc(new PdfInfoClient
|
|
{
|
|
FileName = model.FileName,
|
|
Title = "Список участников",
|
|
DateFrom = model.DateFrom!.Value,
|
|
DateTo = model.DateTo!.Value,
|
|
ConferenceBindingRooms = GetConferenceBindingRooms(model)
|
|
});
|
|
}
|
|
}
|
|
}
|