Files
Backend-Api/AccountManagement.Application/SubAccountPermissionSubtitleApplication.cs

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