2024-05-05 18:15:37 +03:30
using Back.Services ;
2024-05-07 17:49:02 +03:30
using Back.Validations ;
2024-05-05 18:15:37 +03:30
using Microsoft.AspNetCore.Authorization ;
using Microsoft.AspNetCore.Mvc ;
using Shared.DTOs ;
namespace Back.Controllers
{
[Route("api/[controller] ")]
[Authorize]
[ApiController]
public class CustomerController : ControllerBase
{
private readonly CheckPermission _checkPermission ;
private readonly servUser _servUser ;
private readonly servCustomer _servCus ;
2024-05-07 17:49:02 +03:30
private readonly AddCustomerValidation _addCustomerValidation ;
public CustomerController ( CheckPermission checkPermission , servUser servUser
, servCustomer servCus , AddCustomerValidation addCustomerValidation )
2024-05-05 18:15:37 +03:30
{
2024-05-07 17:49:02 +03:30
_addCustomerValidation = addCustomerValidation ;
2024-05-05 18:15:37 +03:30
_checkPermission = checkPermission ;
_servUser = servUser ;
_servCus = servCus ;
}
[HttpPost("GetAll")]
public async Task < ActionResult < PagingDto < RCustomer > > > GetAll ( ItemSerchGetCustomer itemSerch )
{
var claim = HttpContext . User . Claims . First ( c = > c . Type = = "UserID" ) ;
var UserID = claim . Value ;
var user = await _servUser . GetUserByUserID ( Convert . ToInt32 ( UserID ) ) ;
if ( ! await _checkPermission . AllowSYSGetCustomer ( Convert . ToInt32 ( UserID ) , user . RolUsers . First ( ) . CompanyID ) ) return Forbid ( "شما دسترسی به خواندن اطلاعات مشتری را نداربد" ) ;
return Ok ( await _servCus . GetCustomers ( user . RolUsers . First ( ) . CompanyID , itemSerch ) ) ;
}
2024-05-07 17:49:02 +03:30
[HttpPost("Add")]
public async Task < ActionResult < bool > > Add ( RCustomer item )
{
var claim = HttpContext . User . Claims . First ( c = > c . Type = = "UserID" ) ;
var UserID = claim . Value ;
var user = await _servUser . GetUserByUserID ( Convert . ToInt32 ( UserID ) ) ;
var resultValidationmodel = await _addCustomerValidation . ValidateAsync ( Tuple . Create ( user . RolUsers . First ( ) . CompanyID , item ) ) ;
if ( ! resultValidationmodel . IsValid )
return BadRequest ( resultValidationmodel . Errors . Select ( s = > s . ErrorMessage ) . ToList ( ) ) ;
return Ok ( _servCus . AddCustomer ( new Data . Models . Customer
{
Address = item . Address ,
BranchID = item . BranchID ,
CompanyID = user . RolUsers . First ( ) . CompanyID ,
CustomerType = item . CustomerType ,
EconomicCode = item . EconomicCode ,
Email = item . Email ,
FullName = item . FullName ,
Info = item . Info ,
MeliCode = item . MeliCode ,
PassportNumber = item . PassportNumber ,
Phone = item . Phone ,
ZipCode = item . ZipCode ,
IsDeleted = false
} ) ) ;
}
2024-05-05 18:15:37 +03:30
}
}