Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Company/Task/Group.cshtml.cs
2024-07-10 20:25:54 +03:30

131 lines
3.9 KiB
C#

using _0_Framework.Application;
using AccountManagement.Application.Contracts.Account;
using AccountManagement.Application.Contracts.Position;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.CodeAnalysis.CSharp.Syntax;
namespace ServiceHost.Areas.AdminNew.Pages.Company.Task
{
public class GroupModel : PageModel
{
private readonly IPositionApplication _positionApplication;
private readonly IAccountApplication _accountApplication ;
private readonly IAuthHelper _authHelper;
public GroupModel(IPositionApplication positionApplication, IAccountApplication accountApplication, IAuthHelper authHelper)
{
_positionApplication = positionApplication;
_accountApplication = accountApplication;
_authHelper = authHelper;
}
public List<PositionViewModel> PositionViewModels { get; set; }
public IActionResult OnGet()
{
if (_authHelper.GetPermissions().Any(x=>x==902))
{
PositionViewModels = _positionApplication.GetPositions();
return Page();
}
else
{
return Forbid();
}
}
public IActionResult OnGetGroupAccountsAjax(long id)
{
return new JsonResult(new
{
accounts = _accountApplication.GetAccountsByPositionId(id)
});
}
public IActionResult OnGetShowCreateModal()
{
if (_authHelper.GetPermissions().Any(x=>x==90210))
{
var lastPositionValue = _positionApplication.GetLastPositionValue();
var unusedPositions = _positionApplication.GetUnUsedPositionValues();
var model = new CreatePositionModalViewModel()
{
LastPositionValue = lastPositionValue,
UnUsedPositionValue = unusedPositions
};
return Partial("GroupCreateModal", model);
}
else
{
return Forbid();
}
}
public IActionResult OnPostCreatePosition(CreatePosition command)
{
var res = _positionApplication.Create(command);
return new JsonResult(new
{
isSuccedded=res.IsSuccedded,
message=res.Message,
});
}
public IActionResult OnPostDeleteAccountFromPosition(List<long> accountIds,long positionId)
{
var res= _positionApplication.RemoveAccountListFromPosition(accountIds, positionId);
return new JsonResult(new
{
isSuccedded = res.IsSuccedded,
message = res.Message,
});
}
public IActionResult OnPostRemovePosition(long positionId)
{
var res = _positionApplication.Remove(positionId);
return new JsonResult(new
{
isSuccedded = res.IsSuccedded,
message = res.Message,
});
}
public IActionResult OnGetAccountPosition(long positionId)
{
var accounts = _positionApplication.GetNoPositionAccounts();
var model = new AddAccountToPositionPartialViewModel()
{
Accounts = accounts,
PositionId = positionId
};
return Partial("GroupAddMemberToGroup", model);
}
public IActionResult OnPostAddAccountToPosition(List<long> accounts, long positionId)
{
var res = _positionApplication.SaveAccountPosition(accounts, positionId);
var selfPositionValue = _authHelper.CurrentAccountInfo().PositionValue != null
? _authHelper.CurrentAccountInfo().PositionValue
: 0;
if (res.IsSuccedded&& selfPositionValue < 1)
{
_accountApplication.ReLogin();
}
return new JsonResult(new
{
isSuccedded = res.IsSuccedded,
message = res.Message,
});
}
}
}