using _0_Framework.Application; using CompanyManagment.App.Contracts.Fine; using CompanyManagment.App.Contracts.FineSubject; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Client.Controllers; public class FineController:ClientBaseController { private readonly IFineApplication _fineApplication; private readonly IFineSubjectApplication _fineSubjectApplication; private readonly long _workshopId; public FineController(IFineApplication fineApplication, IFineSubjectApplication fineSubjectApplication, IAuthHelper authHelper) { _fineApplication = fineApplication; _fineSubjectApplication = fineSubjectApplication; _workshopId = authHelper.GetWorkshopId(); } [HttpGet] public ActionResult GetList([FromQuery]FineSearchViewModel searchModel) { searchModel.WorkshopId = _workshopId; var res = _fineApplication.GetSearchListAsGrouped(searchModel); return res; } [HttpPost] public ActionResult Create([FromBody]CreateFineViewModel command) { command.WorkshopId = _workshopId; var res =_fineApplication.Create(command); return res; } [HttpPut] public ActionResult Edit([FromBody]EditFineViewModel command) { command.WorkshopId = _workshopId; var res = _fineApplication.Edit(command); return res; } [HttpGet("{id:long}")] public ActionResult Details(long id) { var res = _fineApplication.GetDetails(id); return res; } [HttpDelete(("{id:long}"))] public ActionResult Remove(long id) { var res = _fineApplication.Remove(id); return res; } #region FineSubject [HttpGet("subject")] public ActionResult> GetList() { var res = _fineSubjectApplication.GetAll(_workshopId); return res; } [HttpPost("subject/{id:long}")] public ActionResult CreateSubject(CreateFineSubjectViewModel command) { command.WorkshopId = _workshopId; var res = _fineSubjectApplication.Create(command); return res; } [HttpPut("subject/{id:long}")] public ActionResult EditSubject(EditFineSubjectViewModel command) { command.WorkshopId = _workshopId; var res = _fineSubjectApplication.Edit(command); return res; } [HttpDelete("subject/{id:long}")] public ActionResult RemoveSubject(long id) { var res = _fineSubjectApplication.Delete(id); return res; } #endregion }