ISEbd-21_Melnikov_I.O._CarS.../CarService/CarServiceWebApp/Controllers/ReportController.cs

80 lines
1.9 KiB
C#

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<int> 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<int> 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();
}
}
}