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 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); } }