This commit is contained in:
mmrbnjd
2024-05-08 17:25:02 +03:30
parent d74f3dadf3
commit 716f02baa1
14 changed files with 376 additions and 179 deletions

View File

@@ -1,8 +1,12 @@
using Back.Services;
using Back.Common;
using Back.Services;
using Back.Validations;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Service;
using Shared.DTOs;
using System.Net;
using System.Reflection.Emit;
namespace Back.Controllers
{
@@ -14,11 +18,11 @@ namespace Back.Controllers
private readonly CheckPermission _checkPermission;
private readonly servUser _servUser;
private readonly servCustomer _servCus;
private readonly AddCustomerValidation _addCustomerValidation;
private readonly AddOrCustomerValidation _addorupdateCustomerValidation;
public CustomerController(CheckPermission checkPermission, servUser servUser
, servCustomer servCus, AddCustomerValidation addCustomerValidation)
, servCustomer servCus, AddOrCustomerValidation addorupdateCustomerValidation)
{
_addCustomerValidation = addCustomerValidation;
_addorupdateCustomerValidation = addorupdateCustomerValidation;
_checkPermission = checkPermission;
_servUser = servUser;
_servCus = servCus;
@@ -30,7 +34,7 @@ namespace Back.Controllers
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( "شما دسترسی به خواندن اطلاعات مشتری را نداربد");
if (!await _checkPermission.AllowSYSGetCustomer(Convert.ToInt32(UserID), user.RolUsers.First().CompanyID)) return Forbid("شما دسترسی به خواندن اطلاعات مشتری را نداربد");
return Ok(await _servCus.GetCustomers(user.RolUsers.First().CompanyID, itemSerch));
@@ -43,11 +47,11 @@ namespace Back.Controllers
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
var resultValidationmodel = await _addCustomerValidation.ValidateAsync(Tuple.Create(user.RolUsers.First().CompanyID,item));
var resultValidationmodel = await _addorupdateCustomerValidation.ValidateAsync(Tuple.Create(user.RolUsers.First().CompanyID, item, eActionValidation.add));
if (!resultValidationmodel.IsValid)
return BadRequest(resultValidationmodel.Errors.Select(s => s.ErrorMessage).ToList());
return Ok(_servCus.AddCustomer(new Data.Models.Customer
return Ok(await _servCus.AddOrUpdateCustomer(new Data.Models.Customer
{
Address = item.Address,
BranchID = item.BranchID,
@@ -62,7 +66,59 @@ namespace Back.Controllers
Phone = item.Phone,
ZipCode = item.ZipCode,
IsDeleted = false
})) ;
}));
}
[HttpPut("Update")]
public async Task<ActionResult<bool>> Update(RCustomer item)
{
//-----GetUserAndCompany
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
//-----Validaton
var resultValidationmodel = await _addorupdateCustomerValidation.ValidateAsync(Tuple.Create(user.RolUsers.First().CompanyID, item, eActionValidation.update));
if (!resultValidationmodel.IsValid)
return BadRequest(resultValidationmodel.Errors.Select(s => s.ErrorMessage).ToList());
//-----Get Cus
var cus = await _servCus.GetCustomerByCustomerID(item.ID.Value, user.RolUsers.First().CompanyID);
if (cus == null)
return BadRequest(new List<string> { "Cus notFound..." });
//-----change Cus
cus.Address = item.Address;
cus.BranchID = item.BranchID;
cus.CompanyID = user.RolUsers.First().CompanyID;
cus.CustomerType = item.CustomerType;
cus.EconomicCode = item.EconomicCode;
cus.Email = item.Email;
cus.FullName = item.FullName;
cus.Info = item.Info;
cus.MeliCode = item.MeliCode;
cus.PassportNumber = item.PassportNumber;
cus.Phone = item.Phone;
cus.ZipCode = item.ZipCode;
cus.IsDeleted = false;
//----Update and sendResult
return Ok(await _servCus.AddOrUpdateCustomer(cus));
}
[HttpDelete("Delete/{ID}")]
public async Task<ActionResult<bool>> Delete(int ID)
{
//-----GetUserAndCompany
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
//-----Get Cus
var cus = await _servCus.GetCustomerByCustomerID(ID, user.RolUsers.First().CompanyID);
if (cus == null)
return NotFound();
//----Update and sendResult
return Ok(await _servCus.DeleteCustomer(cus));
}
}
}