269 lines
12 KiB
C#
269 lines
12 KiB
C#
using _0_Framework.Application;
|
|
using AccountManagement.Application.Contracts.SubAccountPermissionSubtitle;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle1Agg;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle2Agg;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle3Agg;
|
|
using AccountManagement.Domain.SubAccountPermissionSubtitle4Agg;
|
|
using System.Collections.Generic;
|
|
|
|
namespace AccountManagement.Application
|
|
{
|
|
public class SubAccountPermissionSubtitleApplication : ISubAccountPermissionSubtitleApplication
|
|
{
|
|
private readonly ISubAccountPermissionSubtitle1Repository _subAccountPermissionSubtitle1Repository;
|
|
private readonly ISubAccountPermissionSubtitle2Repository _subAccountPermissionSubtitle2Repository;
|
|
private readonly ISubAccountPermissionSubtitle3Repository _subAccountPermissionSubtitle3Repository;
|
|
private readonly ISubAccountPermissionSubtitle4Repository _subAccountPermissionSubtitle4Repository;
|
|
|
|
public SubAccountPermissionSubtitleApplication(ISubAccountPermissionSubtitle4Repository subAccountPermissionSubtitle4Repository, ISubAccountPermissionSubtitle3Repository subAccountPermissionSubtitle3Repository, ISubAccountPermissionSubtitle2Repository subAccountPermissionSubtitle2Repository, ISubAccountPermissionSubtitle1Repository subAccountPermissionSubtitle1Repository)
|
|
{
|
|
_subAccountPermissionSubtitle4Repository = subAccountPermissionSubtitle4Repository;
|
|
_subAccountPermissionSubtitle3Repository = subAccountPermissionSubtitle3Repository;
|
|
_subAccountPermissionSubtitle2Repository = subAccountPermissionSubtitle2Repository;
|
|
_subAccountPermissionSubtitle1Repository = subAccountPermissionSubtitle1Repository;
|
|
}
|
|
|
|
public OperationResult Create(CreateSubAccountPermissionSubtitle1 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
if (_subAccountPermissionSubtitle1Repository.Exists(x => x.Title == command.Title))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
|
|
var entity = new SubAccountPermissionSubtitle1(command.Title, command.Code);
|
|
|
|
_subAccountPermissionSubtitle1Repository.Create(entity);
|
|
_subAccountPermissionSubtitle1Repository.SaveChanges();
|
|
return op.Succcedded(entity.id);
|
|
}
|
|
|
|
public OperationResult Create(CreateSubAccountPermissionSubtitle2 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
|
|
if (!_subAccountPermissionSubtitle1Repository.Exists(x => x.id == command.ParentId))
|
|
return op.Failed("خطای سیستمی");
|
|
|
|
if (_subAccountPermissionSubtitle2Repository.Exists(x => x.Title == command.Title))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
|
|
|
|
|
|
var entity = new SubAccountPermissionSubtitle2(command.Title, command.Code, command.ParentId);
|
|
|
|
_subAccountPermissionSubtitle2Repository.Create(entity);
|
|
_subAccountPermissionSubtitle2Repository.SaveChanges();
|
|
return op.Succcedded(entity.id);
|
|
}
|
|
|
|
public OperationResult Create(CreateSubAccountPermissionSubtitle3 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
|
|
if (!_subAccountPermissionSubtitle2Repository.Exists(x => x.id == command.ParentId))
|
|
return op.Failed("خطای سیستمی");
|
|
|
|
if (_subAccountPermissionSubtitle3Repository.Exists(x => x.Title == command.Title))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
|
|
|
|
var entity = new SubAccountPermissionSubtitle3(command.Title, command.Code, command.ParentId);
|
|
|
|
_subAccountPermissionSubtitle3Repository.Create(entity);
|
|
_subAccountPermissionSubtitle3Repository.SaveChanges();
|
|
return op.Succcedded(entity.id);
|
|
}
|
|
|
|
public OperationResult Create(CreateSubAccountPermissionSubtitle4 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
|
|
if (!_subAccountPermissionSubtitle3Repository.Exists(x => x.id == command.ParentId))
|
|
return op.Failed("خطای سیستمی");
|
|
|
|
if (_subAccountPermissionSubtitle4Repository.Exists(x => x.Title == command.Title))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
|
|
var entity = new SubAccountPermissionSubtitle4(command.Title, command.Code, command.ParentId);
|
|
|
|
_subAccountPermissionSubtitle4Repository.Create(entity);
|
|
_subAccountPermissionSubtitle4Repository.SaveChanges();
|
|
return op.Succcedded(entity.id);
|
|
}
|
|
|
|
public OperationResult DeleteSubtitle1(long id)
|
|
{
|
|
OperationResult op = new();
|
|
var entity = _subAccountPermissionSubtitle1Repository.Get(id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
if (_subAccountPermissionSubtitle2Repository.Exists(x => x.ParentId == entity.id))
|
|
return op.Failed("برای حذف کردن این نقش اول باید نقش های فرزند را حذف کنید");
|
|
_subAccountPermissionSubtitle1Repository.Remove(entity);
|
|
_subAccountPermissionSubtitle1Repository.SaveChanges();
|
|
return op.Succcedded(id);
|
|
}
|
|
|
|
public OperationResult DeleteSubtitle2(long id)
|
|
{
|
|
OperationResult op = new();
|
|
var entity = _subAccountPermissionSubtitle2Repository.Get(id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
if (_subAccountPermissionSubtitle3Repository.Exists(x => x.ParentId == entity.id))
|
|
return op.Failed("برای حذف کردن این نقش اول باید نقش های فرزند را حذف کنید");
|
|
_subAccountPermissionSubtitle2Repository.Remove(entity);
|
|
_subAccountPermissionSubtitle2Repository.SaveChanges();
|
|
return op.Succcedded(id);
|
|
}
|
|
|
|
public OperationResult DeleteSubtitle3(long id)
|
|
{
|
|
OperationResult op = new();
|
|
var entity = _subAccountPermissionSubtitle3Repository.Get(id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
if (_subAccountPermissionSubtitle4Repository.Exists(x => x.ParentId == entity.id))
|
|
return op.Failed("برای حذف کردن این نقش اول باید نقش های فرزند را حذف کنید");
|
|
_subAccountPermissionSubtitle3Repository.Remove(entity);
|
|
_subAccountPermissionSubtitle3Repository.SaveChanges();
|
|
return op.Succcedded(id);
|
|
}
|
|
|
|
public OperationResult DeleteSubtitle4(long id)
|
|
{
|
|
OperationResult op = new();
|
|
var entity = _subAccountPermissionSubtitle4Repository.Get(id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
_subAccountPermissionSubtitle4Repository.Remove(entity);
|
|
_subAccountPermissionSubtitle4Repository.SaveChanges();
|
|
return op.Succcedded(id);
|
|
}
|
|
|
|
public OperationResult Edit(EditSubAccountPermissionSubtitle1 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
var entity = _subAccountPermissionSubtitle1Repository.Get(command.Id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
|
|
if (_subAccountPermissionSubtitle1Repository.Exists(x => x.Title == command.Title && x.id != command.Id))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
entity.Edit(command.Title, command.Code);
|
|
_subAccountPermissionSubtitle1Repository.SaveChanges();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public OperationResult Edit(EditSubAccountPermissionSubtitle2 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
var entity = _subAccountPermissionSubtitle2Repository.Get(command.Id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
|
|
if (!_subAccountPermissionSubtitle1Repository.Exists(x => x.id == command.ParentId))
|
|
return op.Failed("خطای سیستمی");
|
|
|
|
|
|
if (_subAccountPermissionSubtitle2Repository.Exists(x => x.Title == command.Title && x.id != command.Id))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
entity.Edit(command.Title, command.Code, command.ParentId);
|
|
_subAccountPermissionSubtitle2Repository.SaveChanges();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public OperationResult Edit(EditSubAccountPermissionSubtitle3 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
var entity = _subAccountPermissionSubtitle3Repository.Get(command.Id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
|
|
if (!_subAccountPermissionSubtitle2Repository.Exists(x => x.id == command.ParentId))
|
|
return op.Failed("خطای سیستمی");
|
|
|
|
|
|
if (_subAccountPermissionSubtitle3Repository.Exists(x => x.Title == command.Title && x.id != command.Id))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
entity.Edit(command.Title, command.Code, command.ParentId);
|
|
_subAccountPermissionSubtitle3Repository.SaveChanges();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public OperationResult Edit(EditSubAccountPermissionSubtitle4 command)
|
|
{
|
|
OperationResult op = new();
|
|
|
|
command.Title = command.Title.Trim();
|
|
|
|
var entity = _subAccountPermissionSubtitle4Repository.Get(command.Id);
|
|
if (entity == null)
|
|
return op.Failed(ApplicationMessages.RecordNotFound);
|
|
|
|
if (!_subAccountPermissionSubtitle3Repository.Exists(x => x.id == command.ParentId))
|
|
return op.Failed("خطای سیستمی");
|
|
|
|
|
|
if (_subAccountPermissionSubtitle4Repository.Exists(x => x.Title == command.Title && x.id != command.Id))
|
|
return op.Failed(ApplicationMessages.DuplicatedRecord);
|
|
|
|
if (string.IsNullOrWhiteSpace(command.Title))
|
|
return op.Failed("عنوان نقش نمی تواند خالی باشند");
|
|
|
|
entity.Edit(command.Title, command.Code, command.ParentId);
|
|
_subAccountPermissionSubtitle4Repository.SaveChanges();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public List<SubAccountPermissionSubtitleViewModel> GetAllSubtitlesNested()
|
|
{
|
|
return _subAccountPermissionSubtitle1Repository.GetAllWithChildren();
|
|
}
|
|
}
|
|
}
|