196 lines
5.4 KiB
C#
196 lines
5.4 KiB
C#
using CompanyManagment.App.Contracts.Workshop;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using System.Security.Claims;
|
|
using _0_Framework.Application;
|
|
using _0_Framework.Infrastructure;
|
|
using AccountManagement.Application.Contracts.SubAccount;
|
|
using CompanyManagment.App.Contracts.Employee;
|
|
using CompanyManagment.App.Contracts.Error;
|
|
using CompanyManagment.App.Contracts.Reward;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
namespace ServiceHost.Areas.Client.Pages.Company.Reward
|
|
{
|
|
[Authorize]
|
|
[NeedsPermission(SubAccountPermissionHelper.RewardOperationsPermissionCode)]
|
|
public class IndexModel : PageModel
|
|
{
|
|
private readonly IPasswordHasher _passwordHasher;
|
|
private readonly IWorkshopApplication _workshopApplication;
|
|
private readonly IRewardApplication _rewardApplication;
|
|
private readonly IAuthHelper _authHelper;
|
|
private readonly IEmployeeApplication _employeeApplication;
|
|
private readonly ISubAccountApplication _subAccountApplication;
|
|
|
|
public string WorkshopFullName;
|
|
public int PageIndex = 0;
|
|
|
|
public IndexModel(IWorkshopApplication workshopApplication, IPasswordHasher passwordHasher, IRewardApplication rewardApplication, IAuthHelper authHelper, IEmployeeApplication employeeApplication, ISubAccountApplication subAccountApplication)
|
|
{
|
|
_workshopApplication = workshopApplication;
|
|
_passwordHasher = passwordHasher;
|
|
_rewardApplication = rewardApplication;
|
|
_authHelper = authHelper;
|
|
_employeeApplication = employeeApplication;
|
|
_subAccountApplication = subAccountApplication;
|
|
}
|
|
|
|
public IActionResult OnGet()
|
|
{
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
|
|
if (workshopId <= 0)
|
|
return BadRequest();
|
|
|
|
var workshopInfo = _workshopApplication.GetWorkshopInfo(workshopId);
|
|
WorkshopFullName = workshopInfo.WorkshopFullName;
|
|
|
|
return Page();
|
|
}
|
|
|
|
public IActionResult OnGetLoadDataAjax(RewardSearchModel searchViewModel)
|
|
{
|
|
var subAccId = _authHelper.CurrentSubAccountId();
|
|
if(subAccId>0)
|
|
{
|
|
var subAccountViewModel = _subAccountApplication.GetDetails(subAccId);
|
|
if (subAccountViewModel.SubAccountRoleId == 2)
|
|
{
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = new List<RewardViewModel>(),
|
|
pageIndex = 0,
|
|
});
|
|
}
|
|
}
|
|
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
|
|
if (workshopId <= 0)
|
|
return BadRequest();
|
|
|
|
searchViewModel.WorkshopId = workshopId;
|
|
|
|
var result = _rewardApplication.GetSearchList(searchViewModel);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = result,
|
|
pageIndex = result.Count()
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeeList()
|
|
{
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
if (workshopId <= 0)
|
|
return new JsonResult(new
|
|
{
|
|
success = false,
|
|
message = "کارگاه ای یافت نشد",
|
|
});
|
|
|
|
var employees = _employeeApplication.GetWorkingEmployeesByWorkshopId(workshopId);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = employees
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetCreate()
|
|
{
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
if (workshopId <= 0)
|
|
{
|
|
var resultError = new ErrorViewModel()
|
|
{
|
|
Message = "کارگاه شما یافت نشد"
|
|
};
|
|
return Partial("../Error/_ErrorModal", resultError);
|
|
}
|
|
|
|
var command = new CreateRewardViewModel();
|
|
return Partial("ModalCreateNewReward", command);
|
|
}
|
|
|
|
public IActionResult OnPostCreate(CreateRewardViewModel command)
|
|
{
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
if (workshopId <= 0)
|
|
return new JsonResult(new
|
|
{
|
|
IsSuccedded = false,
|
|
message = "کارگاه ای یافت نشد",
|
|
});
|
|
|
|
command.WorkshopId = workshopId;
|
|
command.RewardedByAccountId = _authHelper.CurrentAccountId();
|
|
var result = _rewardApplication.Create(command);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEdit(long id)
|
|
{
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
if (workshopId <= 0)
|
|
{
|
|
var resultError = new ErrorViewModel()
|
|
{
|
|
Message = "کارگاه شما یافت نشد"
|
|
};
|
|
return Partial("../Error/_ErrorModal", resultError);
|
|
}
|
|
|
|
var command = _rewardApplication.GetDetails(id);
|
|
|
|
return Partial("ModalEditReward", command);
|
|
}
|
|
|
|
public IActionResult OnPostEdit(EditRewardViewModel command)
|
|
{
|
|
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
|
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
if (workshopId <= 0)
|
|
return new JsonResult(new
|
|
{
|
|
IsSuccedded = false,
|
|
message = "کارگاه ای یافت نشد",
|
|
});
|
|
|
|
command.WorkshopId = workshopId;
|
|
var result = _rewardApplication.Edit(command);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostRemove(long id)
|
|
{
|
|
var result = _rewardApplication.Remove(id);
|
|
return new JsonResult(new
|
|
{
|
|
isSuccess = result.IsSuccedded,
|
|
message = result.Message,
|
|
});
|
|
}
|
|
}
|
|
}
|