Files
Backend-Api/CompanyManagment.EFCore/Repository/EmployerRepository.cs

755 lines
28 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.EmployerAccountAgg;
using Company.Domain.empolyerAgg;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Employer;
using Microsoft.EntityFrameworkCore;
namespace CompanyManagment.EFCore.Repository;
public class EmployerRepository : RepositoryBase<long, Employer>, IEmployerRepository
{
private readonly CompanyContext _context;
private readonly IAuthHelper _authHelper;
public DateTime initial = new DateTime(1922, 01, 01, 00, 00, 00, 0000000);
public EmployerRepository(CompanyContext context, IAuthHelper authHelper) : base(context)
{
_context = context;
_authHelper = authHelper;
}
public List<EmployerViewModel> GetEmployers()
{
return _context.Employers.Where(x => x.IsActive == true).Select(x => new EmployerViewModel
{
Id = x.id,
FName = x.FName,
LName = x.LName,
FullName = x.FullName,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
IsLegal = x.IsLegal,
Phone = x.Phone,
AgentPhone = x.AgentPhone,
Address = x.Address
}).ToList();
}
public List<EmployerViewModel> GetEmployers(List<long> id)
{
return _context.Employers.Select(x => new EmployerViewModel()
{
Id = x.id,
IsActive = x.IsActive,
FName = x.FName,
LName = x.LName,
FullName = x.FullName,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
IsLegal = x.IsLegal,
Phone = x.Phone,
AgentPhone = x.AgentPhone,
Address = x.Address
}).Where(x => id.Contains(x.Id))
.Where(x => x.IsActive).ToList();
//var empList = new List<EmployerViewModel>();
//foreach (var item in id)
//{
// var e = _context.Employers.Where(x=>x.IsActive).Select(x => new EmployerViewModel
// {
// Id = x.id,
// FName = x.FName,
// LName = x.LName,
// FullName = x.FullName,
// Nationalcode = x.Nationalcode,
// IdNumber = x.IdNumber,
// RegisterId = x.RegisterId,
// NationalId = x.NationalId,
// IsLegal = x.IsLegal,
// Phone = x.Phone,
// AgentPhone = x.AgentPhone,
// Address = x.Address
// })
// .FirstOrDefault(x=>x.Id == item);
// empList.Add(e);
//}
//return empList;
}
public EditEmployer GetDetails(long id)
{
return _context.Employers.Select(x => new EditEmployer
{
Id = x.id,
FName = x.FName,
LName = x.LName,
ContractingPartyId = x.ContractingPartyId,
Gender = x.Gender,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
Nationality = x.Nationality,
FatherName = x.FatherName,
DateOfBirth = x.DateOfBirth == initial ? "" : x.DateOfBirth.ToFarsi(),
DateOfIssue = x.DateOfIssue == initial ? "" : x.DateOfIssue.ToFarsi(),
PlaceOfIssue = x.PlaceOfIssue,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
EmployerLName = x.EmployerLName,
IsLegal = x.IsLegal,
Phone = x.Phone,
AgentPhone = x.AgentPhone,
Address = x.Address,
MclsUserName = x.MclsUserName,
MclsPassword = x.MclsPassword,
EserviceUserName = x.EserviceUserName,
EservicePassword = x.EservicePassword,
TaxOfficeUserName = x.EservicePassword,
SanaUserName = x.SanaUserName,
SanaPassword = x.SanaPassword,
EmployerNo = x.EmployerNo,
FullName = x.FullName
})
.FirstOrDefault(x => x.Id == id);
}
public List<EmprViewModel> GetEmployerByWorkshopId(long workshopId)
{
var result = _context.WorkshopEmployers.Where(x => x.WorkshopId == workshopId).Include(x=>x.Employer)
.Select(x=> new EmprViewModel()
{
EmployerFullName = x.Employer.FName + " " + x.Employer.LName,
Id = x.Employer.id,
FName = x.Employer.FName,
EmployerLName = x.Employer.EmployerLName,
IsLegal = x.Employer.IsLegal,
LName = x.Employer.LName,
IsBlockContractingParty = _context.PersonalContractingParties
.Where(p => p.Employers.Any(e => e.id == x.Employer.id))
.Select(p => p.IsBlock)
.FirstOrDefault(),
});
//var employerlist = _context.Employers.Where(x => emps.Contains(x.id)).ToList();
//var employers = new List<EmprViewModel>();
//foreach (var element in employerlist)
//{
// var employer = new EmprViewModel()
// {
// EmployerFullName = element.FName + " " + element.LName,
// Id = element.id,
// FName = element.FName,
// EmployerLName = element.EmployerLName,
// IsLegal = element.IsLegal,
// LName = element.LName,
// IsBlockContractingParty = _context.PersonalContractingParties.FirstOrDefault(x => x.id == element.ContractingPartyId)?.IsBlock,
// };
// employers.Add(employer);
//}
return result.ToList();
}
public List<EmployerViewModel> GetEmployerByContracrtingPartyID(long contractingPartyId)
{
return _context.Employers.Select(x => new EmployerViewModel()
{
Id = x.id,
FName = x.FName,
LName = x.LName,
ContractingPartyID = x.ContractingPartyId,
EmployerNo = x.EmployerNo,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
Nationality = x.Nationality,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
EmployerLName = x.EmployerLName,
IsLegal = x.IsLegal,
FullName = x.FName + " " + x.LName,
}).Where(x => x.ContractingPartyID == contractingPartyId)
.ToList();
}
public List<EmployerViewModel> Search(EmployerSearchModel searchModel)
{
var workshopEmp = _context.WorkshopEmployers.Select(x => x.EmployerId);
var query = _context.Employers.Include(x => x.ContractingParty)
.Select(x => new EmployerViewModel
{
Id = x.id,
FName = x.FName,
ContractingPartyID = x.ContractingPartyId,
LName = x.LName,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
EmployerLName = x.EmployerLName,
IsLegal = x.IsLegal,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
ContractingParty = x.ContractingParty.LName,
IsActive = x.IsActive,
Address = x.Address,
EmployerNo = x.EmployerNo,
HasContractingParty = x.ContractingPartyId == 30428 && workshopEmp.Any(n => n == x.id),
HasBlockContractingParty = x.ContractingParty.IsBlock == "true",
});
if (searchModel.Id > 0)
query = query.Where(x => x.Id == searchModel.Id);
if (!string.IsNullOrWhiteSpace(searchModel.LName))
query = query.Where(x => x.LName.Contains(searchModel.FName) || x.FName.Contains(searchModel.LName));
if (!string.IsNullOrWhiteSpace(searchModel.Nationalcode) && searchModel.Nationalcode != "0")
query = query.Where(x => x.Nationalcode.Contains(searchModel.Nationalcode) || x.NationalId.Contains(searchModel.Nationalcode));
if (!string.IsNullOrWhiteSpace(searchModel.IdNumber) && searchModel.IdNumber != "0")
query = query.Where(x => x.IdNumber.Contains(searchModel.IdNumber) || x.RegisterId.Contains(searchModel.IdNumber));
if (!string.IsNullOrWhiteSpace(searchModel.EmployerLName))
query = query.Where(x => (x.IsLegal == "حقیقی" &&
((!string.IsNullOrWhiteSpace(x.FName) && x.FName.StartsWith(searchModel.EmployerLName)) ||
(!string.IsNullOrWhiteSpace(x.LName) && x.LName.StartsWith(searchModel.EmployerLName))))
|| (x.IsLegal == "حقوقی" && (!string.IsNullOrWhiteSpace(x.LName) && x.LName.Contains(searchModel.EmployerLName))));
if (!string.IsNullOrWhiteSpace(searchModel.IsLegal))
query = query.Where(x => x.IsLegal.Contains(searchModel.IsLegal));
if (!string.IsNullOrEmpty(searchModel.ContactingPartyName))
{
var personalContractingPIds = _context.PersonalContractingParties.Where(x => !string.IsNullOrEmpty(x.FName) && (x.FName + " " + x.LName).Contains(searchModel.ContactingPartyName)).Select(x => x.id).ToList();
query = query.Where(x => personalContractingPIds.Contains(x.ContractingPartyID));
}
if (searchModel.ContractingPartyID != 0)
query = query.Where(x => x.ContractingPartyID == searchModel.ContractingPartyID);
if (searchModel.Address == null)
{
query = query.Where(x => x.Address == "true");
}
if (searchModel.Address == "false")
{
query = query.Where(x => x.Address == "false");
}
else if (searchModel.Address == "both")
{
query = query.Where(x => x.Address == "false" || x.Address == "true");
}
return query.OrderByDescending(x => x.Id).ToList();
}
public List<EmprViewModel> GetEmployerByEmployerIds(List<long> employerIds)
{
return _context.Employers.Select(x => new EmprViewModel()
{
Id = x.id,
FName = x.FName,
LName = x.LName,
EmployerLName = x.EmployerLName,
IsLegal = x.IsLegal,
//FullName = x.FName + " " + x.LName,
}).Where(x => employerIds.Contains(x.Id))
.ToList();
}
///client
public bool Remove(long id)
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var employerAccountList = _context.EmployerAccounts.Where(x => x.EmployerId == id).ToList();
_context.EmployerAccounts.RemoveRange(employerAccountList);
var employer = _context.Employers.Where(x => x.id == id)?.FirstOrDefault();
_context.Employers.Remove(employer);
_context.SaveChanges();
transaction.Commit();
return true;
}
catch (Exception)
{
transaction.Rollback();
return false;
}
}
}
public bool CreateForClient(Employer command)
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
Create(command);
_context.SaveChanges();
var acountID = _authHelper.CurrentAccountId();
//خودش
var employerAccount = new EmployerAccount();
employerAccount.AccountId = acountID;
employerAccount.EmployerId = command.id;
_context.EmployerAccounts.Add(employerAccount);
if (acountID != 3) //آقای مصباح
{
employerAccount = new EmployerAccount();
employerAccount.AccountId = 3;
employerAccount.EmployerId = command.id;
_context.EmployerAccounts.Add(employerAccount);
}
if (acountID != 2) //آقای فرخی
{
employerAccount = new EmployerAccount();
employerAccount.AccountId = 2;
employerAccount.EmployerId = command.id;
_context.EmployerAccounts.Add(employerAccount);
}
_context.SaveChanges();
transaction.Commit();
return true;
}
catch (Exception)
{
transaction.Rollback();
return false;
}
}
}
public List<EmployerViewModel> SearchForClient(EmployerSearchModel searchModel)
{
var acountID = _authHelper.CurrentAccountId();
var employerIds = _context.EmployerAccounts.Where(x => x.AccountId == acountID).AsNoTracking().Select(x => x.EmployerId).ToList();
var query = _context.Employers.Where(x => employerIds.Contains(x.id)).Include(x => x.ContractingParty)
.Select(x => new EmployerViewModel
{
Id = x.id,
FName = x.FName,
ContractingPartyID = x.ContractingPartyId,
LName = x.LName,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
EmployerLName = x.EmployerLName,
IsLegal = x.IsLegal,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
ContractingParty = x.ContractingParty.LName,
IsActive = x.IsActive,
Address = x.Address,
EmployerNo = x.EmployerNo,
});
if (!string.IsNullOrWhiteSpace(searchModel.FName))
query = query.Where(x => x.FName.Contains(searchModel.FName));
if (!string.IsNullOrWhiteSpace(searchModel.LName))
query = query.Where(x => x.LName.Contains(searchModel.LName));
if (!string.IsNullOrWhiteSpace(searchModel.Nationalcode))
query = query.Where(x => x.Nationalcode.Contains(searchModel.Nationalcode));
if (!string.IsNullOrWhiteSpace(searchModel.IdNumber))
query = query.Where(x => x.IdNumber.Contains(searchModel.IdNumber));
if (!string.IsNullOrWhiteSpace(searchModel.RegisterId))
query = query.Where(x => x.RegisterId.Contains(searchModel.RegisterId));
if (!string.IsNullOrWhiteSpace(searchModel.NationalId))
query = query.Where(x => x.NationalId.Contains(searchModel.NationalId));
if (!string.IsNullOrWhiteSpace(searchModel.EmployerLName))
query = query.Where(x => x.EmployerLName.Contains(searchModel.EmployerLName));
if (!string.IsNullOrWhiteSpace(searchModel.IsLegal))
query = query.Where(x => x.IsLegal.Contains(searchModel.IsLegal));
if (searchModel.ContractingPartyID != 0)
query = query.Where(x => x.ContractingPartyID == searchModel.ContractingPartyID);
if (searchModel.Address == null)
{
query = query.Where(x => x.Address == "true");
}
if (searchModel.Address == "false")
{
query = query.Where(x => x.Address == "false");
}
else if (searchModel.Address == "both")
{
query = query.Where(x => x.Address == "false" || x.Address == "true");
}
return query.OrderByDescending(x => x.Id).ToList();
}
public List<EmployerViewModel> GetEmployersForClient(long acountID)
{
// var acountID = _authHelper.CurrentAccountId();
var employerIds = _context.EmployerAccounts.Where(x => x.AccountId == acountID).AsNoTracking().Select(x => x.EmployerId).ToList();
return _context.Employers.Where(x => employerIds.Contains(x.id) && x.IsActive == true).Select(x => new EmployerViewModel
{
Id = x.id,
FName = x.FName,
LName = x.LName,
FullName = x.FullName,
Nationalcode = x.Nationalcode,
IdNumber = x.IdNumber,
RegisterId = x.RegisterId,
NationalId = x.NationalId,
IsLegal = x.IsLegal,
Phone = x.Phone,
AgentPhone = x.AgentPhone,
Address = x.Address
}).ToList();
}
public bool CreateLegalsForClient(Employer legalEmployerData)
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
Create(legalEmployerData);
_context.SaveChanges();
var acountID = _authHelper.CurrentAccountId();
//خودش
var employerAccount = new EmployerAccount();
employerAccount.AccountId = acountID;
employerAccount.EmployerId = legalEmployerData.id;
_context.EmployerAccounts.Add(employerAccount);
_context.SaveChanges();
if (acountID != 3) //آقای مصباح
{
employerAccount = new EmployerAccount();
employerAccount.AccountId = 3;
employerAccount.EmployerId = legalEmployerData.id;
_context.EmployerAccounts.Add(employerAccount);
_context.SaveChanges();
}
if (acountID != 2) //آقای فرخی
{
employerAccount = new EmployerAccount();
employerAccount.AccountId = 2;
employerAccount.EmployerId = legalEmployerData.id;
_context.EmployerAccounts.Add(employerAccount);
_context.SaveChanges();
}
transaction.Commit();
return true;
}
catch (Exception ex)
{
transaction.Rollback();
return false;
}
}
}
public bool ExistsEmployerAccount(string commandNationalcode)
{
var acountID = _authHelper.CurrentAccountId();
var employerIdstList = _context.EmployerAccounts.Where(x => x.AccountId == acountID).Select(x => x.EmployerId).ToList();
if (employerIdstList != null && employerIdstList.Count > 0)
{
return _context.Employers.Any(x => employerIdstList.Contains(x.id) && x.Nationalcode == commandNationalcode);
}
else
return false;
}
public bool ExistsEmployerAccountNationalId(string commandNationalId)
{
var acountID = _authHelper.CurrentAccountId();
var employerIdstList = _context.EmployerAccounts.Where(x => x.AccountId == acountID).Select(x => x.EmployerId).ToList();
if (employerIdstList != null && employerIdstList.Count > 0)
{
return _context.Employers.Any(x => employerIdstList.Contains(x.id) && x.NationalId == commandNationalId);
}
else
return false;
}
public bool ExistsEmployerAccountById(string nationalcode, long commandId)
{
var acountID = _authHelper.CurrentAccountId();
var employerIdstList = _context.EmployerAccounts.Where(x => x.AccountId == acountID && x.EmployerId != commandId).Select(x => x.EmployerId).ToList();
if (employerIdstList != null && employerIdstList.Count > 0)
{
return _context.Employers.Any(x => employerIdstList.Contains(x.id) && x.Nationalcode == nationalcode);
}
else
return false;
}
public bool ExistsEmployerAccountNationalIdEmployerId(string nationalId, long commandId)
{
var acountID = _authHelper.CurrentAccountId();
var employerIdstList = _context.EmployerAccounts.Where(x => x.AccountId == acountID && x.EmployerId != commandId).Select(x => x.EmployerId).ToList();
if (employerIdstList != null && employerIdstList.Count > 0)
{
return _context.Employers.Any(x => employerIdstList.Contains(x.id) && x.NationalId == nationalId);
}
else
return false;
}
public bool ExistsEmployerAccountRegisterId(string commandRegisterId)
{
var acountID = _authHelper.CurrentAccountId();
var employerIdstList = _context.EmployerAccounts.Where(x => x.AccountId == acountID).Select(x => x.EmployerId).ToList();
if (employerIdstList != null && employerIdstList.Count > 0)
{
return _context.Employers.Any(x => employerIdstList.Contains(x.id) && x.RegisterId == commandRegisterId);
}
else
return false;
}
public bool ExistsEmployerAccountLName(string commandLName)
{
var acountID = _authHelper.CurrentAccountId();
var employerIdstList = _context.EmployerAccounts.Where(x => x.AccountId == acountID).Select(x => x.EmployerId).ToList();
if (employerIdstList != null && employerIdstList.Count > 0)
{
return _context.Employers.Any(x => employerIdstList.Contains(x.id) && x.LName == commandLName);
}
else
return false;
}
#region Mahan
public List<EmployerViewModel> GetEmployersHasWorkshop()
{
return _context.WorkshopEmployers.Include(x => x.Employer).Select(x =>
new EmployerViewModel()
{
FullName = x.Employer.FullName,
Id = x.Employer.id
}).ToList();
}
#endregion
#region NewByHeydari
public OperationResult DeleteEmployer(long id)
{
var op = new OperationResult();
try
{
var personalContractingParties = _context.Employers.Where(x => x.id == id)?.FirstOrDefault();
_context.Employers.Remove(personalContractingParties);
_context.SaveChanges();
return op.Succcedded(-1, "حذف با موفقیت انجام شد.");
}
catch (Exception)
{
return op.Failed("حذف با خطا مواجه شد.");
}
}
public List<EmployerViewModel> GetEmployerWithFNameOrLName(string searchText)
{
var result = _context.Employers.Where(x => (!string.IsNullOrEmpty(x.FName) && x.FName.StartsWith(searchText)) ||
(!string.IsNullOrEmpty(x.LName) && x.LName.StartsWith(searchText)) ||
(x.IsLegal == "حقیقی" && (!string.IsNullOrEmpty(x.FName) && !string.IsNullOrEmpty(x.LName)) &&
(x.FName + " " + x.LName).Contains(searchText)))
.Select(x => new EmployerViewModel
{
Id = x.id,
LName = (x.IsLegal == "حقیقی" ? x.FullName : x.LName),
}).Take(100).ToList();
return result;
}
public List<EmployerViewModel> GetEmployerWithIdNumberOrRegisterId(string searchText)
{
var result = _context.Employers.Where(x => (x.IsLegal == "حقیقی" && !string.IsNullOrEmpty(x.IdNumber) && x.IdNumber.StartsWith(searchText))
|| (x.IsLegal == "حقوقی" && !string.IsNullOrEmpty(x.RegisterId) && x.RegisterId.StartsWith(searchText)))
.Select(x => new EmployerViewModel
{
Id = x.id,
IdNumber = (x.IsLegal == "حقیقی" ? x.IdNumber : x.RegisterId),
}).Take(100).ToList();
return result;
}
public List<EmployerViewModel> GetEmployerWithNationalcodeOrNationalId(string searchText)
{
var result = _context.Employers.Where(x => (x.IsLegal == "حقیقی" && !string.IsNullOrEmpty(x.Nationalcode) && x.Nationalcode.StartsWith(searchText))
|| (x.IsLegal == "حقوقی" && !string.IsNullOrEmpty(x.NationalId) && x.NationalId.StartsWith(searchText)))
.Select(x => new EmployerViewModel
{
Id = x.id,
Nationalcode = (x.IsLegal == "حقیقی" ? x.Nationalcode : x.NationalId),
}).Take(100).ToList();
return result;
}
public OperationResult DeActiveAll(long id)
{
OperationResult result = new OperationResult();
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var employer = _context.Employers.FirstOrDefault(x => x.id == id);
employer.DeActive();
var workshopIds = _context.WorkshopEmployers.Where(x => x.EmployerId == id).Select(x => x.WorkshopId).ToList();
var workshops = _context.Workshops.Where(x => workshopIds.Contains(x.id)).ToList();
workshops.ForEach(x => x.DeActive(x.ArchiveCode));
var contracts = _context.Contracts.Where(x => workshopIds.Contains(x.WorkshopIds)).ToList();
contracts.ForEach(x => x.DeActive());
var contractIds = contracts.Select(x => x.id).ToList();
var checkouts = _context.CheckoutSet.Where(x => contractIds.Contains(x.ContractId)).ToList();
checkouts.ForEach(x => x.DeActive());
_context.SaveChanges();
transaction.Commit();
result.Failed("DeActive");
}
catch (Exception)
{
result.Failed("غیرفعال کردن کارفرما با خطا مواجه شد");
transaction.Rollback();
}
}
return result;
}
public OperationResult ActiveAll(long id)
{
OperationResult result = new OperationResult();
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var employer = _context.Employers.FirstOrDefault(x => x.id == id);
employer.Active();
var workshopIds = _context.WorkshopEmployers.Where(x => x.EmployerId == id).Select(x => x.WorkshopId).ToList();
var workshops = _context.Workshops.Where(x => workshopIds.Contains(x.id)).ToList();
workshops.ForEach(x => x.Active(x.ArchiveCode));
var contracts = _context.Contracts.Where(x => workshopIds.Contains(x.WorkshopIds)).ToList();
contracts.ForEach(x => x.Active());
var contractIds = contracts.Select(x => x.id).ToList();
var checkouts = _context.CheckoutSet.Where(x => contractIds.Contains(x.ContractId)).ToList();
checkouts.ForEach(x => x.Active());
_context.SaveChanges();
transaction.Commit();
result.Succcedded();
}
catch (Exception)
{
result.Failed("فعال کردن کارفرما با خطا مواجه شد");
transaction.Rollback();
}
}
return result;
}
public List<EmployerViewModel> GetAllEmployers()
{
return _context.Employers.Select(x => new EmployerViewModel
{
Id = x.id,
FName = x.FName,
LName = x.LName,
FullName = x.FullName,
Nationalcode = x.Nationalcode,
//IdNumber = x.IdNumber,
//RegisterId = x.RegisterId,
NationalId = x.NationalId,
IsLegal = x.IsLegal,
}).ToList();
}
#endregion
#region Insurance
/// <summary>
/// نام کارفرما
/// وضعیت حقیقی حقوقی
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
public (string employerName, bool isLegal) InsuranceEmployerByWorkshopId(long workshopId)
{
var res = _context.WorkshopEmployers.Where(x => x.WorkshopId == workshopId)
.Include(x => x.Employer).Select(x => new EmprViewModel
{
EmployerFullName = x.Employer.IsLegal == "حقوقی" ?
(x.Employer.EmployerLName != "#" ? x.Employer.FName + " " + x.Employer.EmployerLName: x.Employer.LName) : x.Employer.FullName,
IsLegal = x.Employer.IsLegal,
}).FirstOrDefault();
string employer = res.EmployerFullName;
bool isLegal = res.IsLegal == "حقوقی";
return (employer,isLegal);
}
#endregion
}