Files
Backend-Api/CompanyManagment.Application/PersonnelCodeApplication.cs
2025-03-09 21:52:06 +03:30

84 lines
3.1 KiB
C#

using System.Collections.Generic;
using _0_Framework.Application;
using Company.Domain.PersonnelCodeAgg;
using Company.Domain.WorkshopAgg;
using CompanyManagment.App.Contracts.PersonnleCode;
namespace CompanyManagment.Application;
public class PersonnelCodeApplication : IPersonnelCodeApplication
{
private readonly IPersonnelCodeRepository _personnelCodeRepository;
private readonly IWorkshopRepository _workshopRepository;
public PersonnelCodeApplication(IPersonnelCodeRepository personnelCodeRepository, IWorkshopRepository workshopRepository)
{
_personnelCodeRepository = personnelCodeRepository;
_workshopRepository = workshopRepository;
}
public OperationResult Create(CreatePersonnelCode command)
{
var opration = new OperationResult();
if (_personnelCodeRepository.Exists(x =>
x.WorkshopId == command.WorkshopId && x.PersonnelCode == command.PersonnelCode))
{
var workshopObj = _workshopRepository.GetDetails(command.WorkshopId);
return opration.Failed(" کد پرسنلی در کارگاه "+ workshopObj.WorkshopFullName + " تکراری می باشد. ");
}
if ( command.PersonnelCode<=0)
{
var workshopObj = _workshopRepository.GetDetails(command.WorkshopId);
return opration.Failed(" کد پرسنلی در کارگاه " + workshopObj.WorkshopFullName + "نامعتبر است.");
}
var psCode = new PersonnelCodeDomain(command.WorkshopId, command.EmployeeId, command.PersonnelCode);
_personnelCodeRepository.Create(psCode);
_personnelCodeRepository.SaveChanges();
return opration.Succcedded();
}
public OperationResult Edit(EditPersonnelCode command)
{
var opration = new OperationResult();
var psCodeedit = _personnelCodeRepository.Get(command.Id);
if (psCodeedit == null)
opration.Failed("رکورد مورد نظر وجود ندارد");
if (_personnelCodeRepository.Exists(x => x.WorkshopId == command.WorkshopId && x.PersonnelCode == command.PersonnelCode && x.id != command.Id))
return opration.Failed(" ;کد وارد شده تکراری است");
psCodeedit.Edit(command.PersonnelCode);
_personnelCodeRepository.SaveChanges();
return opration.Succcedded();
}
public EditPersonnelCode GetDetails(long id)
{
return _personnelCodeRepository.GetDetails(id);
}
public List<PersonnelCodeViewModel> Search(PersonnelCodeSearchModel searchModel)
{
return _personnelCodeRepository.Search(searchModel);
}
public PersonnelCodeViewModel GetPersonnelCodeViewModel(PersonnelCodeSearchModel searchModel)
{
return _personnelCodeRepository.GetPersonnelCodeViewModel(searchModel);
}
public long GetEmployeeIdByPersonelCode(long personleCode, long workshopId)
{
return _personnelCodeRepository.GetEmployeeIdByPersonelCode(personleCode, workshopId);
}
public long GetLastPersonnelCodeByWorkshop(long workshopId)
{
return _personnelCodeRepository.GetLastPersonnelCodeByWorkshop(workshopId);
}
}