49 lines
2.0 KiB
C#
49 lines
2.0 KiB
C#
using Marco.Pms.Model.Dtos.Inventory;
|
|
using Marco.Pms.Services.Service.ServiceInterfaces;
|
|
using MarcoBMS.Services.Helpers;
|
|
using MarcoBMS.Services.Service;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Marco.Pms.Services.Controllers
|
|
{
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class InventoryController : ControllerBase
|
|
{
|
|
private readonly IInventoryService _inventoryService;
|
|
private readonly UserHelper _userHelper;
|
|
private readonly ILoggingService _logger;
|
|
private readonly Guid tenantId;
|
|
public InventoryController(IInventoryService inventoryService, UserHelper userHelper, ILoggingService logger)
|
|
{
|
|
_inventoryService = inventoryService;
|
|
_userHelper = userHelper;
|
|
_logger = logger;
|
|
tenantId = userHelper.GetTenantId();
|
|
}
|
|
|
|
#region =================================================================== Items APIs ===================================================================
|
|
[HttpGet("item/list")]
|
|
[HttpGet("item/details/{id}")]
|
|
[HttpPost("item/create")]
|
|
public async Task<IActionResult> CreateItem([FromBody] ItemDto model)
|
|
{
|
|
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
|
var response = await _inventoryService.CreateItemAsync(model, loggedInEmployee, tenantId);
|
|
return StatusCode(response.StatusCode, response);
|
|
|
|
}
|
|
[HttpPut("item/edit/{id}")]
|
|
[HttpDelete("item/delete/{id}")]
|
|
public async Task<IActionResult> SuspendItem(Guid id, [FromQuery] bool isActive = false)
|
|
{
|
|
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
|
var response = await _inventoryService.SuspendItemAsync(id, isActive, loggedInEmployee, tenantId);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
#endregion
|
|
}
|
|
}
|