Files
Backend-Api/ServiceHost/Areas/Client/Pages/Company/EmployeesBankInfo/Index.cshtml.cs

252 lines
9.2 KiB
C#

using _0_Framework.Application;
using CompanyManagment.App.Contracts.Bank;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.EmployeeBankInformation;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Security.Claims;
using CompanyManagement.Infrastructure.Excel.EmployeeBankInfo;
using CompanyManagment.App.Contracts.Bank;
using CompanyManagement.Infrastructure.Excel.EmployeeBankInfo;
namespace ServiceHost.Areas.Client.Pages.Company.EmployeesBankInfo
{
[Authorize]
public class IndexModel : PageModel
{
private readonly IPasswordHasher _passwordHasher;
private readonly IWorkshopApplication _workshopApplication;
private readonly IEmployeeApplication _employeeApplication;
private readonly IEmployeeBankInformationApplication _employeeBankInformationApplication;
private readonly IBankApplication _bankApplication;
private readonly IHttpContextAccessor _contextAccessor;
private readonly IAuthHelper _authHelper;
private readonly long _workshopId;
public string WorkshopFullName;
public int PageIndex = 0;
private readonly IWebHostEnvironment _hostEnvironment;
public IndexModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication,
IHttpContextAccessor contextAccessor, IAuthHelper authHelper,
IEmployeeBankInformationApplication employeeBankInformationApplication,
IEmployeeApplication employeeApplication, IBankApplication bankApplication,
IWebHostEnvironment hostEnvironment)
{
_passwordHasher = passwordHasher;
_workshopApplication = workshopApplication;
_contextAccessor = contextAccessor;
_authHelper = authHelper;
_employeeBankInformationApplication = employeeBankInformationApplication;
_employeeApplication = employeeApplication;
_bankApplication = bankApplication;
_hostEnvironment = hostEnvironment;
var workshopHash = _contextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug");
_workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (_workshopId < 1)
throw new InvalidDataException("اختلال در کارگاه");
}
public void OnGet()
{
var workshop = _workshopApplication.GetWorkshopInfo(_workshopId);
WorkshopFullName = workshop.WorkshopFullName;
}
public async Task<IActionResult> OnGetEmployeeListAjax()
{
var resultData = await _employeeApplication.WorkedEmployeesInWorkshopSelectList(_workshopId);
return new JsonResult(new
{
success = true,
data = resultData,
});
}
public IActionResult OnGetEmployeeBankInfoListAjax(EmployeeBankInformationSearchModel searchModel)
{
var resultData = _employeeBankInformationApplication
.Search(_workshopId, searchModel);
return new JsonResult(new
{
success = true,
data = resultData,
});
}
public IActionResult OnGetBankListAjax()
{
var resultData = _bankApplication.Search("");
return new JsonResult(new
{
success = true,
data = resultData,
});
}
public IActionResult OnPostSetDefault(long bankId)
{
var result = _employeeBankInformationApplication.SetDefault(_workshopId, bankId);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
id = result.SendId
});
}
public IActionResult OnGetDetails(long employeeId)
{
var command = _employeeBankInformationApplication.GetByEmployeeId(_workshopId, employeeId);
return Partial("DetailsBankInfoModal", command);
//return Partial("DetailsBankInfoModal");
}
public IActionResult OnGetDetailsAjax(long employeeId)
{
var resultData = _employeeBankInformationApplication.GetByEmployeeId(_workshopId, employeeId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public IActionResult OnGetCreate()
{
var command = new CreateEmployeeInformation()
{
WorkshopId = _workshopId,
};
return Partial("CreateBankInfoModal", command);
}
public IActionResult OnPostCreate(CreateEmployeeInformation command)
{
command.WorkshopId = _workshopId;
if(!string.IsNullOrWhiteSpace(command.CardNumber))
command.CardNumber = command.CardNumber.Replace("-", "");
if (!string.IsNullOrWhiteSpace(command.ShebaNumber))
command.ShebaNumber = command.ShebaNumber.Replace("-", "");
var result = _employeeBankInformationApplication.Create(command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
id = result.SendId
});
}
public IActionResult OnPostGroupCreate(List<CreateEmployeeInformation> command)
{
var result = _employeeBankInformationApplication.GroupCreate(_workshopId, command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
id = result.SendId
});
}
//public IActionResult OnGetEdit(long id)
//{
// var dataBankInfo = _employeeBankInformationApplication.GetDetails(id);
// var command = new EditEmployeeInformation()
// {
// Id = dataBankInfo.Id,
// WorkshopId = _workshopId,
// EmployeeId = dataBankInfo.EmployeeId,
// EmployeeName = dataBankInfo.EmployeeName,
// BankAccountNumber = dataBankInfo.BankAccountNumber,
// CardNumber = dataBankInfo.CardNumber,
// ShebaNumber = dataBankInfo.ShebaNumber
// };
// return Partial("EditBankInfoModal", command);
//}
public IActionResult OnPostEdit(EditEmployeeInformation command)
{
command.WorkshopId = _workshopId;
if (!string.IsNullOrWhiteSpace(command.CardNumber))
command.CardNumber = command.CardNumber.Replace("-", "");
if (!string.IsNullOrWhiteSpace(command.ShebaNumber))
command.ShebaNumber = command.ShebaNumber.Replace("-", "");
var result = _employeeBankInformationApplication.Edit(command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnPostDeleteByEmployeeId(long employeeId)
{
var result = _employeeBankInformationApplication.RemoveByEmployeeId(_workshopId, employeeId);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnPostDelete(long id)
{
var result = _employeeBankInformationApplication.Remove(id);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnGetShowPicture(string filePath)
{
if (string.IsNullOrEmpty(filePath))
return NotFound();
var path = Path.Combine(_hostEnvironment.ContentRootPath, filePath);
if (!System.IO.File.Exists(path))
return NotFound();
var contentType = Tools.GetContentTypeImage(Path.GetExtension(path));
return PhysicalFile(path, contentType);
}
public IActionResult OnGetDownloadExcelAll(string idList)
{
var ids = idList.ExtractNumbers();
var employeeBankInformationViewModelForExcels = _employeeBankInformationApplication.SearchForExcel(_workshopId,
new EmployeeBankInformationSearchModel() { EmployeeBankInfoIds = ids });
var resultViewModel = employeeBankInformationViewModelForExcels.Select(x=>new EmployeeBankInfoExcelViewModel
{
Name = x.EmployeeName,
BankAccounts = x.BankInformationList.Select(b=>new BankInfoExcelViewModel()
{
IsDefault = b.IsDefault,
ShebaNumber = b.ShebaNumber,
AccountNumber = b.BankAccountNumber,
BankName = b.BankName,
CardNumber = b.CardNumber
}).ToList()
}).ToList();
var bytes = EmployeeBankInfoExcelGenerator.Generate(resultViewModel);
return File(bytes,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
$"اطلاعات بانکی پرسنل.xlsx");
}
}
}