Files
Backend-Api/CompanyManagment.Application/FileStateApplication.cs
2025-04-15 15:06:17 +03:30

134 lines
4.8 KiB
C#

using System;
using System.Collections.Generic;
using _0_Framework.Application;
using Company.Domain.FileState;
using CompanyManagment.App.Contracts.File1;
using CompanyManagment.App.Contracts.FileState;
namespace CompanyManagment.Application;
public class FileStateApplication : IFileStateApplication
{
private readonly IFileStateRepository _fileStateRepository;
public FileStateApplication(IFileStateRepository fileStateRepository)
{
_fileStateRepository = fileStateRepository;
}
public OperationResult Create(CreateFileState command)
{
var operation = new OperationResult();
//TODO if
//if(_BoardRepository.Exists(x=>x.Branch == command.Branch))
// operation.Failed("fail message")
var fileState = new FileState(command.State, command.FileTiming_Id, command.Title);
//_fileStateRepository.Create(fileState);
_fileStateRepository.SaveChanges();
return operation.Succcedded(fileState.id);
}
public OperationResult Edit(EditFileState command)
{
var operation = new OperationResult();
var fileState = _fileStateRepository.Get(command.Id);
//TODO
//if(_BoardRepository.Exists(x=>x.Branch == command.Branch))
// operation.Failed("fail message")
//fileState.Edit(command.State, command.Type);
_fileStateRepository.SaveChanges();
return operation.Succcedded(fileState.id);
}
//public OperationResult Remove(long id)
//{
// var operation = new OperationResult();
// _fileStateRepository.Remove(id);
// _fileStateRepository.SaveChanges();
// return operation.Succcedded("عنوان با موفقیت حذف شد");
//}
public FileStateViewModel GetDetails(long id)
{
return _fileStateRepository.GetDetails(id);
}
public List<EditFileState> Search(FileStateSearchModel searchModel)
{
return _fileStateRepository.Search(searchModel);
}
public int GetFileState(FileViewModel file)
{
//if (file.FileClass == null || (file.FileClass != null && file.DiagnosisBoard.DisputeResolutionPetitionDate == null))
if (file.FileClass == null)
return FileStateEnums.FILE_CLASS_NOT_REGISTERED;
//if (file.HasMandate != 2 || (file.HasMandate == 2 && file.DiagnosisBoard.DisputeResolutionPetitionDate == null))
if (file.HasMandate != 2)
return FileStateEnums.MANDATE_NOT_REGISTERED;
if (file.DiagnosisBoard.DisputeResolutionPetitionDate == null)
return FileStateEnums.NO_PETITION_DATE_ISSUED;
if (file.DiagnosisBoard.DisputeResolutionPetitionDate != null && file.DiagnosisPsCount == 0)
return FileStateEnums.NO_DIAGNOSIS_INVITATION_ISSUED;
if (file.DiagnosisPsCount != 0 && (file.DiagnosisPetition == null || file.DiagnosisPetition.Id == 0))
return FileStateEnums.NO_DIAGNOSIS_PETITION_ISSUED;
if ((file.DiagnosisPetition != null || file.DiagnosisPetition.Id != 0) && file.DisputeResolutionBoard.DisputeResolutionPetitionDate == null)
return FileStateEnums.PROTEST_NOT_REGISTERED;
if (file.DisputeResolutionBoard.DisputeResolutionPetitionDate != null && file.DisputeResolutionPsCount == 0)
return FileStateEnums.NO_DISPUTE_INVITATION_ISSUED;
if (file.DisputeResolutionPetition == null || file.DisputeResolutionPetition.Id == 0)
return FileStateEnums.NO_DISPUTE_PETITION_ISSUED;
return 0;
}
public DateTime? GetFileStateDate(FileViewModel file)
{
switch (file.State)
{
case FileStateEnums.FILE_CLASS_NOT_REGISTERED:
return file.ClientVisitDate.ToGeorgianDateTime();
case FileStateEnums.MANDATE_NOT_REGISTERED:
return file.ClientVisitDate.ToGeorgianDateTime();
case FileStateEnums.NO_PETITION_DATE_ISSUED:
return file.ClientVisitDate.ToGeorgianDateTime();
case FileStateEnums.NO_DIAGNOSIS_INVITATION_ISSUED:
return file.DiagnosisBoard.DisputeResolutionPetitionDate.ToGeorgianDateTime();
case FileStateEnums.NO_DIAGNOSIS_PETITION_ISSUED:
return file.LastDiagnosisPS.Date.ToGeorgianDateTime();
case FileStateEnums.PROTEST_NOT_REGISTERED:
return file.DiagnosisPetition.NotificationPetitionDate.ToGeorgianDateTime();
case FileStateEnums.NO_DISPUTE_INVITATION_ISSUED:
return file.DisputeResolutionBoard.DisputeResolutionPetitionDate.ToGeorgianDateTime();
case FileStateEnums.NO_DISPUTE_PETITION_ISSUED:
return file.LastDisputeResolutionPS.Date.ToGeorgianDateTime();
default:
return null;
}
}
}