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

84 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using _0_Framework.Application;
using Company.Domain.Petition;
using CompanyManagment.App.Contracts.Petition;
namespace CompanyManagment.Application;
public class PetitionApplication : IPetitionApplication
{
private readonly IPetitionRepository _petitionRepository;
public PetitionApplication(IPetitionRepository petitionRepository)
{
_petitionRepository = petitionRepository;
}
public OperationResult Create(CreatePetition command)
{
var operation = new OperationResult();
var petitionIssuanceDate = new DateTime?();
var notificationPetitionDate = new DateTime?();
if (command.PetitionIssuanceDate != null)
petitionIssuanceDate = command.PetitionIssuanceDate.ToGeorgianDateTime();
if (command.NotificationPetitionDate != null)
notificationPetitionDate = command.NotificationPetitionDate.ToGeorgianDateTime();
//TODO if
//if(_BoardRepository.Exists(x=>x.Branch == command.Branch))
// operation.Failed("fail message")
var petition = new Petition(command.PetitionNo, petitionIssuanceDate, notificationPetitionDate,
command.TotalPenalty, command.TotalPenaltyTitles, command.Description, command.WorkHistoryDescription, command.BoardType_Id, command.File_Id);
_petitionRepository.Create(petition);
_petitionRepository.SaveChanges();
return operation.Succcedded(petition.id);
}
public OperationResult Edit(EditPetition command)
{
var operation = new OperationResult();
var petition = _petitionRepository.Get(command.Id);
var petitionIssuanceDate = new DateTime?();
var notificationPetitionDate = new DateTime?();
if (command.PetitionIssuanceDate != null)
petitionIssuanceDate = command.PetitionIssuanceDate.ToGeorgianDateTime();
if (command.NotificationPetitionDate != null)
notificationPetitionDate = command.NotificationPetitionDate.ToGeorgianDateTime();
//TODO
//if(_BoardRepository.Exists(x=>x.Branch == command.Branch))
// operation.Failed("fail message")
petition.Edit(command.PetitionNo, petitionIssuanceDate, notificationPetitionDate,
command.TotalPenalty, command.TotalPenaltyTitles, command.Description, command.WorkHistoryDescription, command.BoardType_Id, command.File_Id);
_petitionRepository.SaveChanges();
return operation.Succcedded(petition.id);
}
public EditPetition GetDetails(long id)
{
return _petitionRepository.GetDetails(id);
}
public EditPetition GetDetails(long fileId, int boardTypeId)
{
return _petitionRepository.GetDetails(fileId, boardTypeId);
}
public List<EditPetition> Search(PetitionSearchModel searchModel)
{
return _petitionRepository.Search(searchModel);
}
}