69 lines
2.8 KiB
C#
69 lines
2.8 KiB
C#
using Back.Services;
|
|
using Back.Validations;
|
|
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;
|
|
private readonly AddCustomerValidation _addCustomerValidation;
|
|
public CustomerController(CheckPermission checkPermission, servUser servUser
|
|
, servCustomer servCus, AddCustomerValidation addCustomerValidation)
|
|
{
|
|
_addCustomerValidation = addCustomerValidation;
|
|
_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));
|
|
|
|
|
|
}
|
|
[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
|
|
})) ;
|
|
}
|
|
}
|
|
}
|