131 lines
3.9 KiB
C#
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,
|
|
});
|
|
}
|
|
}
|
|
}
|