using CarServiceContracts.BindingModels; using CarServiceContracts.BusinessLogicsContracts; using CarServiceWebApp.Models; using Microsoft.AspNetCore.Mvc; namespace CarServiceWebApp.Controllers { public class ReportController : Controller { private readonly IReportLogic _reportLogic; private readonly IWorkLogic _workLogic; private static List SelectedWorks = new(); private static ReportBindingModel PaymentsModel = new(); public ReportController(IReportLogic reportLogic, IWorkLogic workLogic) { _reportLogic = reportLogic; _workLogic = workLogic; } public IActionResult Index() { if (CurrentUser.UserId < 1) { return Redirect("~/Home/Enter"); } return View(); } public IActionResult ReportRequestsByWorks() { if (CurrentUser.UserId < 1) { return Redirect("~/Home/Enter"); } var requestsByWorks = _reportLogic.GetRequestsByWorks(new() { SelectedWorks = SelectedWorks } ); ViewBag.RequestsByWorks = requestsByWorks; return View(); } [HttpGet] public IActionResult WorksSelection() { if (CurrentUser.UserId < 1) { return Redirect("~/Home/Enter"); } var works = _workLogic.ReadList(new() { Id = CurrentUser.UserId}); ViewBag.Works = works; return View(); } [HttpPost] public IActionResult WorksSelection(List selwor) { SelectedWorks = selwor; return Redirect("~/Report/ReportRequestsByWorks"); } [HttpGet] public IActionResult DateSelection() { if (CurrentUser.UserId < 1) { return Redirect("~/Home/Enter"); } return View(); } [HttpPost] public IActionResult DateSelection(DateTime dateFrom, DateTime dateTo) { PaymentsModel = new() { DateFrom = dateFrom, DateTo = dateTo }; return Redirect("~/Report/ReportPayments"); } public IActionResult ReportPayments() { var payments = _reportLogic.GetPayments(PaymentsModel); ViewBag.Payments = payments; return View(); } } }